Eva*_*tis -1 amazon-web-services terraform
我正在尝试为 aws IAM 策略生成一些 terraform。政策中的条件如下所示
"StringLike": {
"kms:EncryptionContext:aws:cloudtrail:arn": [
"arn:aws:cloudtrail:*:aws-account-id:trail/*"
]
Run Code Online (Sandbox Code Playgroud)
我正在查看以下文档aws_iam_policy_document:https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document,但我不清楚如何在 terraform 中编写此文档。任何帮助将不胜感激。这是我的尝试
condition {
test = "StringLike"
variable = "kms:EncryptionContext:aws:cloudtrail:arn"
values = [
"arn:aws:cloudtrail:*:aws-account-id:trail/*"
]
}
Run Code Online (Sandbox Code Playgroud)
你好,埃文,你的逻辑是正确的,只需添加:
每个文档配置可能有一个或多个statement
data "aws_iam_policy_document" "example" {
statement {
actions = [
"*", *//specify your actions here*
]
resources = [
"*", *//specify your resources here*
]
condition {
test = "StringLike"
variable = "kms:EncryptionContext:aws:cloudtrail:arn"
values = [
"arn:aws:cloudtrail:*:aws-account-id:trail/*"
]
}
}
Run Code Online (Sandbox Code Playgroud)
每个策略语句可以有零个或多个条件块,每个条件块接受以下参数:
test(必需)要评估的 IAM 条件运算符的名称。variable(必需)要应用条件的上下文变量的名称。上下文变量可以是以 aws: 开头的标准 AWS 变量,也可以是以服务名称为前缀的特定于服务的变量。values(必需)评估条件所依据的值。如果提供了多个值,则如果至少其中一个值适用,则条件匹配。(也就是说,测试与“OR”布尔运算相结合。)当提供多个条件块时,它们必须全部评估为 true 才能应用策略声明。(换句话说,条件是通过“AND”布尔运算组合起来的。)
这是terraform的 REF
除了从您创建的文档创建策略之外,您还可以像这样使用它:
resource "aws_iam_policy" "example" {
policy = data.aws_iam_policy_document.example.json
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5642 次 |
| 最近记录: |