@@ -40,17 +40,50 @@ resource "aws_s3_bucket" "mlflow-bucket" {
40
40
tags = local. tags
41
41
}
42
42
43
- resource "aws_s3_bucket_acl" "mlflow" {
44
- count = length (aws_s3_bucket. mlflow-bucket ) > 0 ? 1 : 0
43
+ # block public access to the bucket
44
+ resource "aws_s3_bucket_public_access_block" "mlflow" {
45
+ count = (var. enable_experiment_tracker_mlflow && var. mlflow_bucket == " " ) ? 1 : 0
45
46
bucket = aws_s3_bucket. mlflow-bucket [0 ]. id
46
- acl = " private"
47
+
48
+ block_public_acls = true
49
+ block_public_policy = true
50
+ ignore_public_acls = false
51
+ restrict_public_buckets = false
47
52
}
48
53
49
- # block public access to the bucket
50
- resource "aws_s3_bucket_public_access_block" "mlflow" {
51
- count = length (aws_s3_bucket. mlflow-bucket ) > 0 ? 1 : 0
54
+ resource "aws_s3_bucket_policy" "allow_access_from_another_account_mlflow" {
55
+ count = (var. enable_experiment_tracker_mlflow && var. mlflow_bucket == " " ) ? 1 : 0
52
56
bucket = aws_s3_bucket. mlflow-bucket [0 ]. id
57
+ policy = data. aws_iam_policy_document . allow_access_from_another_account_mlflow [0 ]. json
58
+ }
59
+
60
+ data "aws_iam_policy_document" "allow_access_from_another_account_mlflow" {
61
+ count = (var. enable_experiment_tracker_mlflow && var. mlflow_bucket == " " ) ? 1 : 0
62
+ statement {
63
+ principals {
64
+ type = " AWS"
65
+ identifiers = [aws_iam_role . ng [0 ]. arn ]
66
+ }
67
+ actions = [
68
+ " s3:*" ,
69
+ ]
70
+ resources = [
71
+ aws_s3_bucket . mlflow-bucket [0 ]. arn ,
72
+ " ${ aws_s3_bucket . mlflow-bucket [0 ]. arn } /*" ,
73
+ ]
74
+ }
75
+ }
76
+
77
+ # allow the mlflow kubernetes SA to assume the IAM role
78
+ resource "null_resource" "mlflow-iam-access" {
79
+
80
+ count = var. enable_experiment_tracker_mlflow ? 1 : 0
53
81
54
- block_public_acls = true
55
- block_public_policy = true
82
+ provisioner "local-exec" {
83
+ command = " kubectl annotate serviceaccount -n mlflow mlflow-tracking eks.amazonaws.com/role-arn=${ aws_iam_role . ng [0 ]. arn } "
84
+ }
85
+
86
+ depends_on = [
87
+ module . mlflow ,
88
+ ]
56
89
}
0 commit comments