Skip to content

Commit 43d4333

Browse files
committed
add aws resources and outputs
1 parent 86b617e commit 43d4333

File tree

2 files changed

+124
-0
lines changed

2 files changed

+124
-0
lines changed

aws-resources.tf

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
#######################################
2+
### AWS KMS Key
3+
#######################################
4+
resource "aws_kms_key" "default" {
5+
count = var.create && var.encryption_enabled ? 1 : 0
6+
deletion_window_in_days = var.deletion_window_in_days
7+
enable_key_rotation = var.enable_key_rotation
8+
policy = var.policy
9+
description = var.description
10+
key_usage = var.key_usage
11+
customer_master_key_spec = var.customer_master_key_spec
12+
multi_region = var.multi_region
13+
tags = var.tags
14+
}
15+
16+
resource "aws_kms_alias" "default" {
17+
count = var.create && var.encryption_enabled ? 1 : 0
18+
name = var.alias
19+
#name = coalesce(var.alias, format("alias/%v", module.this.id))
20+
target_key_id = join("", aws_kms_key.default.*.id)
21+
}
22+
########################################
23+
### AWS Roles
24+
########################################
25+
resource "aws_iam_role_policy" "policy" {
26+
count = var.create && var.encryption_enabled ? 1 : 0
27+
name = "mongodb_atlas_setup_policy"
28+
role = aws_iam_role.role[0].id
29+
policy = <<-EOF
30+
{
31+
"Version": "2012-10-17",
32+
"Statement": [
33+
{
34+
"Effect": "Allow",
35+
"Action": "*",
36+
"Resource": "*"
37+
}
38+
]
39+
}
40+
EOF
41+
depends_on = [
42+
aws_iam_role.role
43+
]
44+
}
45+
46+
resource "aws_iam_role" "role" {
47+
count = var.create && var.encryption_enabled ? 1 : 0
48+
name = "mongodb_setup_role"
49+
50+
assume_role_policy = <<EOF
51+
{
52+
"Version": "2012-10-17",
53+
"Statement": [
54+
{
55+
"Effect": "Allow",
56+
"Principal": {
57+
"AWS": "${mongodbatlas_cloud_provider_access_setup.setup_only[0].aws_config[0].atlas_aws_account_arn}"
58+
},
59+
"Action": "sts:AssumeRole",
60+
"Condition": {
61+
"StringEquals": {
62+
"sts:ExternalId": "${mongodbatlas_cloud_provider_access_setup.setup_only[0].aws_config[0].atlas_assumed_role_external_id}"
63+
}
64+
}
65+
}
66+
]
67+
}
68+
EOF
69+
}
70+
########################################################
71+
### Mongdb atlas and AWS VPC Private Link
72+
########################################################
73+
resource "mongodbatlas_privatelink_endpoint" "default" {
74+
count = local.free_tier == false && var.create && var.create_privatelink_endpoint == true ? 1 : 0
75+
project_id = mongodbatlas_project.project[0].id
76+
provider_name = local.cloud_provider
77+
region = var.region
78+
}
79+
80+
resource "aws_vpc_endpoint" "ptfe_service" {
81+
count = local.free_tier == false && var.create && var.create_privatelink_endpoint == true ? 1 : 0
82+
vpc_id = var.vpc_id
83+
service_name = mongodbatlas_privatelink_endpoint.default[0].endpoint_service_name
84+
vpc_endpoint_type = var.vpc_endpoint_type
85+
subnet_ids = var.subnet_ids
86+
security_group_ids = var.security_group_ids
87+
88+
depends_on = [
89+
mongodbatlas_privatelink_endpoint.default
90+
]
91+
}
92+
93+
resource "mongodbatlas_privatelink_endpoint_service" "test" {
94+
count = local.free_tier == false && var.create && var.create_privatelink_endpoint == true ? 1 : 0
95+
project_id = mongodbatlas_project.project[0].id
96+
private_link_id = mongodbatlas_privatelink_endpoint.default[0].private_link_id
97+
endpoint_service_id = aws_vpc_endpoint.ptfe_service[0].id
98+
provider_name = "AWS"
99+
100+
depends_on = [
101+
mongodbatlas_privatelink_endpoint.default,
102+
aws_vpc_endpoint.ptfe_service
103+
]
104+
105+
}

outputs.tf

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
output "key_arn" {
2+
value = join("", aws_kms_key.default.*.arn)
3+
description = "Key ARN"
4+
}
5+
6+
output "key_id" {
7+
value = join("", aws_kms_key.default.*.key_id)
8+
description = "Key ID"
9+
}
10+
11+
output "alias_arn" {
12+
value = join("", aws_kms_alias.default.*.arn)
13+
description = "Alias ARN"
14+
}
15+
16+
output "alias_name" {
17+
value = join("", aws_kms_alias.default.*.name)
18+
description = "Alias name"
19+
}

0 commit comments

Comments
 (0)