繁体   English   中英

使用 Terraform 创建 StringLike 条件

[英]Creating a StringLike condition with Terraform

我正在尝试为 aws IAM 策略生成一些 terraform。 政策中的条件看起来像这样

"StringLike": {
 "kms:EncryptionContext:aws:cloudtrail:arn": [
 "arn:aws:cloudtrail:*:aws-account-id:trail/*"
 ]

我正在查看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/*"
        ]
    }

你好埃文你的逻辑是正确的只是添加:

每个文档配置可能有一个或多个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/*"
     ]
    }
}

每个策略语句可能有零个或多个条件块,每个条件块接受以下 arguments:

  • test (必需)要评估的 IAM 条件运算符的名称。
  • variable (必需)要应用条件的上下文变量的名称。 上下文变量可以是以 aws: 开头的标准 AWS 变量,也可以是以服务名称为前缀的特定于服务的变量。
  • values (必需)用于评估条件的值。 如果提供了多个值,则如果其中至少一个适用,则条件匹配。 (即测试与“或”boolean 操作相结合。)

当提供多个条件块时,它们必须全部评估为真才能应用策略语句。 (换句话说,条件与“AND” boolean 运算相结合。)

这是来自terraform的 REF

除了从您创建的文档创建策略外,您还可以像这样使用它:

resource "aws_iam_policy" "example" {
  policy = data.aws_iam_policy_document.example.json
}

这是来自Hashicorp的参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM