quorate/terraform/internal/versitygw/pg-backup.tf

57 lines
1.4 KiB
Terraform
Raw Permalink Normal View History

ephemeral "vault_kv_secret_v2" "pg_backup" {
mount = "secret"
name = "versitygw/users/pg-backup"
}
resource "versitygw_user" "pg_backup" {
access_key_id = "********"
secret_access_key = ephemeral.vault_kv_secret_v2.pg_backup.data["secret_access_key"]
role = "user"
}
resource "minio_s3_bucket" "pg_backup" {
bucket = "pg-backup"
}
resource "minio_s3_bucket_policy" "pg_backup" {
bucket = minio_s3_bucket.pg_backup.bucket
depends_on = [versitygw_user.pg_backup]
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Sid = "PostgresBackupList"
Effect = "Allow"
Principal = "pg-backup"
Action = [
"s3:GetBucketLocation",
"s3:ListBucket",
]
Resource = ["arn:aws:s3:::pg-backup"]
},
{
Sid = "PostgresBackupData"
Effect = "Allow"
Principal = "pg-backup"
Action = [
"s3:AbortMultipartUpload",
"s3:GetObject",
"s3:PutObject",
]
Resource = ["arn:aws:s3:::pg-backup/*"]
},
{
Sid = "PostgresBackupDelete"
Effect = "Allow"
Principal = "pg-backup"
Action = ["s3:DeleteObject"]
Resource = [
"arn:aws:s3:::pg-backup",
"arn:aws:s3:::pg-backup/*",
]
},
]
})
}