【问题标题】:Terraform - AWS permission boundary using IAM variables for multi accountTerraform - 多账户使用 IAM 变量的 AWS 权限边界
【发布时间】:2021-02-07 17:58:33
【问题描述】:

我正在尝试创建 AWS IAM 权限边界。 IAM 策略是必不可少的。这将部署到多个帐户。我不想硬编码所有账户 ID,所以我喜欢使用 IAM 变量。不幸的是,AWS 不支持账户 ID 的 IAM 变量。即 ${accountId}

有人可以就 Terraform 如何在不对帐户 ID 进行硬编码的情况下部署到多个帐户提出建议吗?我可以使用变量,但这仍然是对变量进行硬编码。

这是我的模板:

data "aws_iam_policy_document" "boundary" {
  statement {
    effect = "Deny"
    actions = [
      "cloudtrail:StopLogging"
    ]

    resources = [
      "arn:aws:iam:::${accountId}:polciy/POLICY-NAME",
    ]
  }
}

【问题讨论】:

    标签: amazon-web-services terraform


    【解决方案1】:

    您可以使用aws_caller_identity 获取当前帐户。例如:

    data "aws_caller_identity" "current" {}
    
    data "aws_iam_policy_document" "boundary" {
      statement {
        effect = "Deny"
        actions = [
          "cloudtrail:StopLogging"
        ]
    
        resources = [
          "arn:aws:iam:::${data.aws_caller_identity.current.account_id}:policy/POLICY-NAME",
        ]
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-22
      • 2020-03-10
      • 1970-01-01
      • 2021-01-22
      • 2023-02-02
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多