Amazon web services 使用terraform和apex将单个IAM策略附加到两个不同区域(同一帐户)的两个单独角色

Amazon web services 使用terraform和apex将单个IAM策略附加到两个不同区域(同一帐户)的两个单独角色,amazon-web-services,terraform,amazon-iam,Amazon Web Services,Terraform,Amazon Iam,我有一个terraform基础设施设置,其中一个模块在不同的环境中使用(相同的帐户,不同的区域)。我遇到的问题是,对于每个环境,我需要将策略附加到该环境中的某个角色。因此,每次我尝试使用apex infra-e apply更新基础结构时,以前附加到策略的角色都会被新环境中的角色覆盖 TerraformV0.12.13 Apex版本1.0.0-rc2 有没有办法告诉terraform,将角色添加到当前附加到策略的角色列表中? data "aws_iam_policy" "ecsPolicy" {

我有一个terraform基础设施设置,其中一个模块在不同的环境中使用(相同的帐户,不同的区域)。我遇到的问题是,对于每个环境,我需要将策略附加到该环境中的某个角色。因此,每次我尝试使用
apex infra-e apply
更新基础结构时,以前附加到策略的角色都会被新环境中的角色覆盖

TerraformV0.12.13

Apex版本1.0.0-rc2

有没有办法告诉terraform,将角色添加到当前附加到策略的角色列表中?

data "aws_iam_policy" "ecsPolicy" {
  arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
}

resource "aws_iam_policy_attachment" "ecs_task_attach" {
  name       = "${var.apex_environment}_ecsTaskExec"
  roles      = [aws_iam_role.ecs_task_executor_role.name]
  policy_arn = data.aws_iam_policy.ecsPolicy.arn
}   

创建单独的策略以附加到不同的用户将是我最后一次

aws_iam_policy_attachment
创建iam策略的独占附件,并覆盖附加到iam角色的任何现有策略

如果要将多个策略附加到单个IAM角色,请尝试使用
aws_IAM_Role_policy_attachment
()。这些资源应该能帮助你实现你的目标


希望这有帮助

很高兴听到:)