mirror of
https://gitlab.sarex.io/infra/terraform-contour-mirror.git
synced 2026-08-05 18:31:00 +03:00
50 lines
1.9 KiB
HCL
50 lines
1.9 KiB
HCL
# Универсальный модуль для создания S3 бакета
|
||
# Не знает про конкретные сущности
|
||
|
||
# Создание сервисного аккаунта для S3
|
||
resource "yandex_iam_service_account" "sa" {
|
||
name = "${var.bucket_name}-sa"
|
||
description = "Service account for ${var.bucket_name} bucket"
|
||
}
|
||
|
||
# Назначение роли storage.editor сервисному аккаунту
|
||
resource "yandex_resourcemanager_folder_iam_member" "storage_editor" {
|
||
folder_id = var.folder_id
|
||
role = "storage.editor"
|
||
member = "serviceAccount:${yandex_iam_service_account.sa.id}"
|
||
}
|
||
|
||
# Создание статического ключа доступа
|
||
resource "yandex_iam_service_account_static_access_key" "sa_key" {
|
||
service_account_id = yandex_iam_service_account.sa.id
|
||
description = "Static access key for ${var.bucket_name} bucket"
|
||
}
|
||
|
||
# Создание S3 бакета
|
||
# Bucket создается от имени текущего пользователя (YC_TOKEN), не сервисного аккаунта
|
||
# Ключи сервисного аккаунта используются только для доступа к bucket после создания
|
||
resource "yandex_storage_bucket" "this" {
|
||
bucket = var.bucket_name
|
||
acl = var.acl
|
||
|
||
# Версионирование объектов
|
||
dynamic "versioning" {
|
||
for_each = var.versioning_enabled ? [1] : []
|
||
content {
|
||
enabled = true
|
||
}
|
||
}
|
||
|
||
# Настройка CORS
|
||
dynamic "cors_rule" {
|
||
for_each = var.cors_enabled ? [1] : []
|
||
content {
|
||
allowed_headers = var.cors_config.allowed_headers
|
||
allowed_methods = var.cors_config.allowed_methods
|
||
allowed_origins = var.cors_config.allowed_origins
|
||
expose_headers = try(var.cors_config.expose_headers, [])
|
||
max_age_seconds = try(var.cors_config.max_age_seconds, 3600)
|
||
}
|
||
}
|
||
}
|