【问题标题】:Protect myself from losing access to bucket when setting iam permissions with terraform?使用 terraform 设置 iam 权限时,保护自己免于失去对存储桶的访问权限?
【发布时间】:2021-12-10 03:03:04
【问题描述】:

我正在使用 terraform 管理对谷歌云存储桶的访问:

data "google_iam_policy" "default" {
  binding {
    role = "roles/storage.admin"
    members = var.isProd ? [
      ...
    ] : [
      ...
    ]
  }
}

resource "google_storage_bucket_iam_policy" "policy" {
  bucket = var.bucket
  policy_data = data.google_iam_policy.default.policy_data
}

运行后有点可怕 - 我无法访问我个人帐户上的存储桶,即使它是我创建的。这在我阅读文档时有所预料,但现在它引出了一个问题,如果我的服务帐户被删除,我如何保护自己不完全失去对存储桶的访问权限?

我有没有办法进行设置,以便帐户继承对谷歌云资源的默认访问权限,从而保护我免受灾难性的影响,例如以某种方式失去对生产 terraform 状态的访问权限?

【问题讨论】:

    标签: google-cloud-platform terraform google-cloud-storage terraform-provider-gcp


    【解决方案1】:

    您应该 (!) 能够授予自己项目的 storageAdmin 权限,然后不能通过向项目的存储桶应用权限来取消自己的权限。

    在牺牲项目和存储桶上对此进行测试,以证明其有效。

    他们的项目的 org| 文件夹相同。

    IAM 继承在 Google Cloud 上是聚合的;权限是 OR'd 而不是 AND'ed,因此您可以给予但不能带走(一旦给予父母)。

    如果 GCP 的 Terraform 提供程序中存在这些策略命令,请考虑使用添加绑定到策略命令。

    如果您确实想要覆盖资源的策略,您可以继续使用 set,但更多情况下,您希望添加或删除对策略的绑定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-01
      • 2017-01-01
      • 2013-10-31
      • 1970-01-01
      • 2020-08-22
      • 2017-04-30
      • 2022-01-11
      • 2017-11-01
      相关资源
      最近更新 更多