我尝试根据 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?