Итак, я действительно смог добиться этого, определив нового поставщика в модуле, который предполагает OrganizationAccountAccessRole внутри вновь созданной учетной записи.
Вот пример:
// Define new account
resource "aws_organizations_account" "my_new_account" {
name = "my_new_account"
email = "john@doe.org"
}
provider "aws" {
/* other provider config */
assume_role {
// Assume the organization access role
role_arn = "arn:aws:iam::${aws_organizations_account.my_new_account.id}:role/OrganizationAccountAccessRole"
}
alias = "my_new_account"
}
resource "aws_config_config_rule" "s3_versioning" {
// Tell resource to use the new provider
provider = aws.my_new_account
name = "my-config-rule"
description = "Verify versioning is enabled on S3 Buckets."
source {
owner = "AWS"
source_identifier = "S3_BUCKET_VERSIONING_ENABLED"
}
scope {
compliance_resource_types = ["AWS::S3::Bucket"]
}
}
Однако следует отметить, что определение провайдера внутри модуля приводит к нескольким странностям, особенно после того, как вы запустите этот модуль , вы не сможете удалить этот модуль . Если вы это сделаете, вы получите Error: Provider configuration not present
, так как вы также удалили определение провайдера.
Но, если вы не планируете удалять эти учетные записи (или можете делать это вручную, когда это необходимо), тогда это должно быть хорошо!