ephemeral "vault_kv_secret_v2" "zot_user" { mount = "secret" name = var.zot_vault_secret_path } locals { zot_secret_access_key = ephemeral.vault_kv_secret_v2.zot_user.data["secretAccessKey"] } resource "versitygw_user" "zot" { access_key_id = var.zot_principal secret_access_key = local.zot_secret_access_key role = "user" } resource "minio_s3_bucket" "zot" { bucket = var.zot_bucket_name } resource "minio_s3_bucket_policy" "zot" { bucket = minio_s3_bucket.zot.bucket depends_on = [ versitygw_user.zot, ] policy = jsonencode({ Version = "2012-10-17" Statement = [ { Sid = "ZotBucketAccess" Effect = "Allow" Principal = var.zot_principal Action = [ "s3:*", ] Resource = [ "arn:aws:s3:::${var.zot_bucket_name}", ] }, { Sid = "ZotObjectAccess" Effect = "Allow" Principal = var.zot_principal Action = [ "s3:*", ] Resource = [ "arn:aws:s3:::${var.zot_bucket_name}/*", ] }, ] }) }