【发布时间】:2021-04-06 16:34:58
【问题描述】:
我正在尝试根据 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"]
}
}
}
这个 terraform 脚本的问题是,如果我的帐户中不存在 myrole,它将失败。我们有多个 AWS 账户,其中只有一部分有这个myrole。我们的 CI 将为所有帐户运行相同的脚本。有没有办法仅在myrole 存在时应用此语句?
【问题讨论】:
-
myrole是由 terraform 管理,还是完全独立于您在每个帐户中使用的 terraform 配置? -
感谢@Marcin 的评论。它由一组不同的 terraform 脚本管理。这些脚本在不同的 CI 下单独运行。话虽如此,我不确定是否可以在这两组脚本之间共享存在状态。
标签: amazon-web-services terraform amazon-iam amazon-kms