quorate/terraform/internal/versitygw/backups.tf

39 lines
1 KiB
HCL

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