ce7cb702218693d08ea6d83464d2457c9250027c

This commit is contained in:
ms2k 2026-11-12 20:46:28 +09:00
commit 34c5f8963c

View file

@ -0,0 +1,55 @@
ephemeral "vault_kv_secret_v2" "terraform_state_user" {
mount = "secret"
name = var.terraform_state_vault_secret_path
}
locals {
terraform_state_secret_access_key = ephemeral.vault_kv_secret_v2.terraform_state_user.data["secretAccessKey"]
}
resource "versitygw_user" "terraform_state" {
access_key_id = var.terraform_state_principal
secret_access_key = local.terraform_state_secret_access_key
role = "user"
}
resource "minio_s3_bucket" "terraform_state" {
bucket = var.terraform_state_bucket_name
}
resource "minio_s3_bucket_policy" "terraform_state" {
bucket = minio_s3_bucket.terraform_state.bucket
depends_on = [
versitygw_user.terraform_state,
]
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Sid = "TerraformStateBucketList"
Effect = "Allow"
Principal = var.terraform_state_principal
Action = [
"s3:ListBucket",
]
Resource = [
"arn:aws:s3:::${var.terraform_state_bucket_name}",
]
},
{
Sid = "TerraformStateObjectReadWrite"
Effect = "Allow"
Principal = var.terraform_state_principal
Action = [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
]
Resource = [
"arn:aws:s3:::${var.terraform_state_bucket_name}/*",
]
},
]
})
}