小编Cal*_*ang的帖子

根据 Terraform 中是否存在特定资源有条件地设置 IAM 策略

我尝试根据 IAM 角色是否存在来设置 KMS 密钥策略。yaml 文件如下所示。

data "aws_iam_policy_document" "key_policy" {
  statement {
    sid = "Give Access to the my Role"

    actions = [
      "kms:GenerateDateKey",
      "kms:Decrypt"
    ]

    resources = ["*"]

    principals {
      type        = "AWS"
      identifiers = ["arn:aws:iam::${var.account_id}:role/myrole"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

此 terraform 脚本的问题是,如果myrole我的帐户中不存在该脚本,它将失败。我们有多个 AWS 账户,但其中只有一部分有这个myrole。我们的 CI 将为所有帐户运行相同的脚本。有没有办法仅在存在时应用此语句myrole

amazon-web-services amazon-iam terraform amazon-kms

1
推荐指数
1
解决办法
3018
查看次数