quorate/terraform/internal/versitygw/canary.tf

55 lines
1.2 KiB
Terraform
Raw Normal View History

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}/*",
]
},
]
})
}