2

在cloud.google.com 上有关秘密管理的此页面上,有一段内容如下:

使用 Cloud KMS 中的密钥使用应用层加密。使用此选项,您可以使用存储在 Cloud KMS 中的密钥在现有 Google 加密之上对 Cloud Storage 中的对象或存储分区实施加密。这是推荐的选项。

在此之下,下一段指出 Google Cloud Storage 默认加密静态数据:

使用 Cloud Storage 存储分区中内置的默认加密。GCP 使用一种或多种加密机制对静态存储的客户内容进行加密。顾名思义,默认情况下可以使用此加密,您无需执行任何其他操作。

对于外行,为什么这里推荐应用层加密?如果存储您的对象的 GCS 存储桶受 IAM 保护,并且 GCS 已经加密了该数据,那么可以获得什么好处?

4

1 回答 1

4

关键在于控制密钥、数据何时加密、数据在何处加密以及对数据进行加密。

仅使用 GCS,您的数据将使用 Google 存储和管理的密钥进行静态加密。您无法在此处撤消 Google 的密钥。此外,数据仅在静态和传输中受到 TLS 的保护(但任何能够终止 TLS 的人或应用程序都会以明文形式看到秘密)。

使用 GCS + KMS(通常称为“客户管理的加密密钥”CMEK),数据在写入 GCS 之前会被加密。GCS 仅存储加密数据(然后使用 Google 管理的密钥再次加密)。作为客户,您可以完全控制这些加密密钥的轮换和撤销。您还可以将 HSM 支持的密钥与 Cloud HSM 结合使用。此外,在遵循最佳实践时,数据在传输过程中受到保护。即使有人终止了 TLS,秘密仍然保持加密状态,直到具有 IAM 权限来解密该值的东西这样做。

如果您正在寻找一种在 GCP 上存储机密的固执方式,请查看berglas

于 2019-10-02T19:25:54.927 回答