【发布时间】:2021-09-14 07:31:36
【问题描述】:
我的请求看起来很简单,但我无法使用 Terraform 实现它。
我想创建一个基于SecurityAudit 托管策略的新AWS 策略,我想向其中添加条件
"Condition": {
"StringNotEquals": {
"aws:TagKeys/MyTag": "disabled"
}
}
我尝试使用aws_iam_policy_document 功能,然后将我的策略附加到我的角色
data "aws_iam_policy_document" "security-audit-policy-override" {
statement {
principals {
type = "Federated"
identifiers = ["arn:aws:iam::aws:policy/SecurityAudit"]
}
condition {
test = "StringNotEquals"
values = ["aws:TagKeys/MyTag"]
variable = "disabled"
}
}
}
resource "aws_iam_role_policy" "security-audit-override" {
policy = data.aws_iam_policy_document.security-audit-policy-override.json
role = aws_iam_role.my_role.name
}
但是当我执行terraform apply 命令时出现以下错误:
Error: Error putting IAM role policy terraform-XXXXXXXXX: MalformedPolicyDocument: Policy document should not specify a principal.
那么,您知道如何覆盖现有的托管 AWS IAM 策略吗?
【问题讨论】:
-
进展如何?是否仍然不清楚为什么您不能这样做?
标签: amazon-web-services terraform amazon-iam terraform-provider-aws