Refactor Terraform AWS IAC config to include bucket policies

This commit is contained in:
2024-10-20 22:19:36 +02:00
parent a13f59e616
commit b6885228fa
4 changed files with 91 additions and 12 deletions
+71
View File
@@ -39,7 +39,42 @@ resource "scaleway_object_bucket" "backup" {
days = local.cloud_backup_retention_days
}
}
}
resource "scaleway_object_bucket_policy" "backup" {
bucket = scaleway_object_bucket.backup.name
policy = jsonencode({
Version = "2023-04-17",
Id = "AllowAccess",
Statement = [
{
Effect = "Allow"
Action = [
"s3:*",
]
Principal = {
SCW = "user_id:${var.scaleway_user_id}"
}
Resource = [
scaleway_object_bucket.backup.name,
"${scaleway_object_bucket.backup.name}/*",
]
},
{
Effect = "Allow"
Action = [
"s3:*",
]
Principal = {
SCW = "application_id:${scaleway_iam_application.backup_app.id}"
}
Resource = [
scaleway_object_bucket.backup.name,
"${scaleway_object_bucket.backup.name}/*",
]
},
]
})
}
resource "scaleway_object_bucket" "nextcloud" {
@@ -47,3 +82,39 @@ resource "scaleway_object_bucket" "nextcloud" {
project_id = var.scaleway_project_id
region = "fr-par"
}
resource "scaleway_object_bucket_policy" "nextcloud" {
bucket = scaleway_object_bucket.nextcloud.name
policy = jsonencode({
Version = "2023-04-17",
Id = "AllowAccess",
Statement = [
{
Effect = "Allow"
Action = [
"s3:*",
]
Principal = {
SCW = "user_id:${var.scaleway_user_id}"
}
Resource = [
scaleway_object_bucket.nextcloud.name,
"${scaleway_object_bucket.nextcloud.name}/*",
]
},
{
Effect = "Allow"
Action = [
"s3:*",
]
Principal = {
SCW = "application_id:${scaleway_iam_application.nextcloud_app.id}"
}
Resource = [
scaleway_object_bucket.nextcloud.name,
"${scaleway_object_bucket.nextcloud.name}/*",
]
},
]
})
}