Мне нужны рекомендации и помощь в решении проблемы, с которой я сталкиваюсь при настройке и управлении сегментом и созданием политики сегмента для нескольких сред и нескольких регионов в одной среде.
У меня 4 AWS учетные записи (dev, stg, prod1, prod2, который является копией prod1). В prod1 у нас есть два кластера кубернетов aws -us-prod1 и aws -eu-prod1. Эти два кластера полностью независимы друг от друга и просто обслуживают клиентов в этих регионах.
У меня есть приложения, работающие в этих двух разных кластерах (aws -us-prod1 и aws -eu-prod1 ), которым необходимо записывать контент в корзину S3. Но эти два кластера имеют общую учетную запись AWS (prod1).
Я пытаюсь написать некоторую автоматизацию ресурсов терраформирования, чтобы управлять этим, и у меня не было возможности по-разному контролировать, в какой регион помещается корзина дюйм. последний do c показывает, что есть атрибут region , но он не работает из-за того, как поставщик был реализован с поставщиком aws атрибут региона .
Я хотел бы сделать что-то вроде этого:
variable "buckets" {
type = map(string) # e.g. buckets='{"a-us-prod1": "us-west-2", "a-eu-prod1":"eu-west-2"}'
}
resource "aws_s3_bucket" "my_buckets" {
for_each = var.buckets
bucket = each.key
region = each.value
}
resource "aws_s3_bucket_policy" "my_buckets_policy" {
for_each = aws_s3_bucket.my_buckets
bucket = each.value.id
policy = ...
}
Я пробовал использовать несколько провайдеров с псевдонимами , но вы не можете программно использовать поставщика на основе значения переменной, которую вы повторяете. Как правильно организовать этот проект и ресурсы для достижения sh этого?
Эти проблемы, с которыми я столкнулся, связаны с этим: https://github.com/hashicorp/terraform/issues/3656 https://github.com/terraform-providers/terraform-provider-aws/issues/5999