ephemeral "vault_kv_secret_v2" "canary_user" { mount = "secret" name = var.canary_vault_secret_path } locals { canary_secret_access_key = ephemeral.vault_kv_secret_v2.canary_user.data["secretAccessKey"] } resource "versitygw_user" "canary" { access_key_id = var.canary_principal secret_access_key = local.canary_secret_access_key role = "user" } resource "minio_s3_bucket" "canary" { bucket = var.canary_bucket_name } resource "minio_s3_bucket_policy" "canary" { bucket = minio_s3_bucket.canary.bucket depends_on = [ versitygw_user.canary, ] policy = jsonencode({ Version = "2012-10-17" Statement = [ { Sid = "CanaryBucketReadWrite" Effect = "Allow" Principal = var.canary_principal Action = [ "s3:ListBucket", ] Resource = [ "arn:aws:s3:::${var.canary_bucket_name}", ] }, { Sid = "CanaryObjectReadWrite" Effect = "Allow" Principal = var.canary_principal Action = [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", ] Resource = [ "arn:aws:s3:::${var.canary_bucket_name}/*", ] }, ] }) }