Skip to content

Commit 9695ea9

Browse files
committed
Move S3 IAM policy creation to S3 module and create output for policy ARN usage outside module
1 parent f63b4eb commit 9695ea9

File tree

7 files changed

+41
-20
lines changed

7 files changed

+41
-20
lines changed

main.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,14 @@ module "vpc" {
5353
module "comet_ec2" {
5454
source = "./modules/comet_ec2"
5555
count = var.enable_ec2 ? 1 : 0
56-
57-
s3_enabled = var.enable_s3
5856

5957
vpc_id = module.vpc.vpc_id
6058
comet_ec2_ami = "ami-05842f1afbf311a43"
6159
comet_ec2_subnet = module.vpc.public_subnets[count.index % length(module.vpc.public_subnets)]
6260

61+
s3_enabled = var.enable_s3
6362
comet_ml_s3_bucket = var.s3_bucket_name
63+
comet_ec2_s3_iam_policy = module.comet_s3[0].comet_s3_iam_policy_arn
6464
}
6565

6666
module "comet_eks" {
@@ -109,5 +109,5 @@ module "comet_s3" {
109109
source = "./modules/comet_s3"
110110
count = var.enable_s3 ? 1 : 0
111111

112-
comet_ml_s3_bucket = var.s3_bucket_name
112+
comet_s3_bucket = var.s3_bucket_name
113113
}

modules/comet_ec2/main.tf

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ resource "aws_iam_instance_profile" "comet-ec2-instance-profile" {
100100
role = aws_iam_role.comet-ec2-s3-access-role.name
101101
}
102102

103+
/*
103104
resource "aws_iam_policy" "comet-ml-s3-policy" {
104105
count = var.s3_enabled ? 1 : 0
105106
name = "comet-s3-access-policy"
@@ -118,9 +119,11 @@ resource "aws_iam_policy" "comet-ml-s3-policy" {
118119
]
119120
})
120121
}
122+
*/
121123

122124
resource "aws_iam_role_policy_attachment" "comet-ml-s3-access-attachment" {
123125
count = var.s3_enabled ? 1 : 0
124126
role = aws_iam_role.comet-ec2-s3-access-role.name
125-
policy_arn = aws_iam_policy.comet-ml-s3-policy[0].arn
127+
#policy_arn = aws_iam_policy.comet-ml-s3-policy[0].arn
128+
policy_arn = var.comet_ec2_s3_iam_policy
126129
}

modules/comet_ec2/variables.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,8 @@ variable "comet_ml_s3_bucket" {
6262
description = "Name of the S3 bucket provisioned for Comet"
6363
type = string
6464
default = null
65+
}
66+
67+
variable "comet_ec2_s3_iam_policy" {
68+
description = "Policy granting access to Comet S3 bucket"
6569
}

modules/comet_s3/main.tf

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,28 @@ locals {
55
}
66
}
77

8-
resource "aws_s3_bucket" "s3-comet-ml" {
9-
bucket = var.comet_ml_s3_bucket
10-
11-
# server_side_encryption_configuration {
12-
# rule {
13-
# apply_server_side_encryption_by_default {
14-
# sse_algorithm = "aws:kms"
15-
# }
16-
# }
17-
# }
8+
resource "aws_s3_bucket" "comet_s3_bucket" {
9+
bucket = var.comet_s3_bucket
1810

1911
tags = merge(local.tags, {
20-
Name = var.comet_ml_s3_bucket
12+
Name = var.comet_s3_bucket
13+
})
14+
}
15+
16+
resource "aws_iam_policy" "comet_s3_iam_policy" {
17+
name = "comet-s3-access-policy"
18+
description = "comet-s3-access-policy"
19+
policy = jsonencode({
20+
"Version": "2012-10-17",
21+
"Statement": [
22+
{
23+
"Effect": "Allow",
24+
"Action": "s3:*",
25+
"Resource": [
26+
"arn:aws:s3:::${var.comet_s3_bucket}",
27+
"arn:aws:s3:::${var.comet_s3_bucket}/*"
28+
]
29+
}
30+
]
2131
})
2232
}

modules/comet_s3/outputs.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
output "comet_s3_iam_policy_arn" {
2+
description = "ARN of the IAM policy granting access to the provisioned bucket"
3+
value = aws_iam_policy.comet_s3_iam_policy.arn
4+
}

modules/comet_s3/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ variable "environment" {
44
default = "dev"
55
}
66

7-
variable "comet_ml_s3_bucket" {
7+
variable "comet_s3_bucket" {
88
description = "Name of S3 bucket"
99
type = string
1010
}

terraform.tfvars

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
enable_ec2 = false
1+
enable_ec2 = true
22

3-
enable_eks = true
3+
enable_eks = false
44

55
enable_elasticache = true
66

77
enable_rds = false
88

9-
enable_s3 = false
9+
enable_s3 = true
1010

11-
s3_bucket_name = ""
11+
s3_bucket_name = "cometeoteoitheoihiahg"

0 commit comments

Comments
 (0)