gpt4 book ai didi

encryption - 加密存储在远程后端(如 GCS 存储桶)上的 Terraform 状态是否有用?

转载 作者:行者123 更新时间:2023-12-04 17:43:03 24 4
gpt4 key购买 nike

我正在使用 Terraform 来管理 Google Cloud Platform (GCP) 资源。我用 Google Cloud Storage backend存储状态文件。 GCP 提供托管 Key Management Service ,因此可以管理 key 并使用这些 key 轻松地在存储桶上启用加密。所以我使用以下内容来加密我的后端存储桶(test-terraform-state,此存储桶将仅包含 Terraform 状态)。

variable my-project {}
variable my-region {}

provider "google" {
project = "${var.my-project}"
region = "${var.my-region}"
version = "1.19.1"
}

resource "google_kms_key_ring" "test-terraform-state" {
name = "test-terraform-state"
location = "${var.my-region}"
}

resource "google_kms_crypto_key" "test-terraform-state-bucket" {
name = "test-terraform-state-bucket"
key_ring = "${google_kms_key_ring.test-terraform-state.self_link}"
rotation_period = "86400s"

lifecycle {
prevent_destroy = true
}
}

resource "google_storage_bucket" "test-terraform-state" {
name = "test-terraform-state"

location = "${var.my-region}"
storage_class = "REGIONAL"

versioning {
enabled = true
}

encryption {
default_kms_key_name = "${google_kms_crypto_key.test-terraform-state-bucket.self_link}"
}
}

所以我的问题是:存储桶内容(此处为 Terraform 状态)可以加密,但它真的有用吗?如果桶上有策略,比如“只有一些用户可以访问它(读/写)”,添加加密有好处吗?我在这里只看到一个额外的安全层(必要吗?),因为人们需要访问此存储桶 + 角色 roles/cloudkms.cryptoKeyEncrypterDecrypter 才能访问内容。但我认为我缺少一些证明 Terraform 状态加密合理的用例。

最佳答案

我对 GCP 知之甚少,但在 AWS 中,给许多用户的非特权用户/角色提供相当广泛的读取权限是很典型的,因为 AWS 管理的 ReadOnly 策略允许读取所有内容,包括从每个桶中获取对象。

使用非特权用户无法获得解密访问权限的特定 KMS key 加密状态文件,提供了一种额外的方式来控制对状态文件及其中潜在敏感信息的访问。

即使在 GCP 中不是这种情况,它仍然提供另一层安全性,以防万一情况发生变化,并且没有特权的人意外获得对您的状态文件存储桶的广泛读取权限。

作为额外的 AWS 特定事物,存储桶在默认情况下不会静态加密(这不是 Google Cloud Storage 的问题,因为它是 encrypted at rest by default)所以从技术上讲,不正确处理的磁盘可能会读取数据它包括任何国家文件 secret 。

关于encryption - 加密存储在远程后端(如 GCS 存储桶)上的 Terraform 状态是否有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53558637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com