Google Cloud 提供了两种组织政策限制条件,以帮助确保在整个组织范围内使用 CMEK:
constraints/gcp.restrictNonCmekServices用于要求 CMEK 保护。constraints/gcp.restrictCmekCryptoKeyProjects用于限制哪些 Filestore 密钥可用于 CMEK 保护。
CMEK 组织政策仅适用于 受支持 Google Cloud 服务中新创建的资源。
如需详细了解其工作原理,请参阅 Google Cloud 资源层次结构 和 CMEK 组织政策。
使用组织政策控制 CMEK 使用情况
Filestore 集成了 CMEK 组织政策限制条件 ,可让您指定组织中 Filestore 资源的加密合规性要求。
借助此集成,您可以执行以下操作:
以下部分介绍了这两项任务。
要求所有 Filestore 资源都使用 CMEK
一项常见政策是要求使用 CMEK 来保护组织中的所有资源。您可以使用 constraints/gcp.restrictNonCmekServices 限制条件在 Filestore 中强制执行此政策。
如果设置,此组织政策会导致没有指定 Cloud KMS 密钥的所有资源创建请求失败。
设置此政策后,它仅适用于项目中的新资源。未设置 Cloud KMS 密钥的所有现有资源将继续存在,并且可以正常访问。
控制台
打开组织政策页面。
在过滤条件 字段中,输入
constraints/gcp.restrictNonCmekServices,然后点击 限制哪些服务可以在没有 CMEK 的情况下创建资源。点击 管理政策。
在修改政策 页面,选择覆盖父资源的政策 。
选择添加规则 。
对于政策值,选择自定义。
对于政策类型 ,请选择拒绝 。
在自定义值 字段中,输入
is:file.googleapis.com。点击完成 ,然后点击设置政策 。
gcloud
创建临时文件
/tmp/policy.yaml以存储政策:name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices spec: rules: - values: deniedValues: - is:file.googleapis.com将 PROJECT_ID 替换为要使用的项目的项目 ID。
运行
org-policies set-policy命令:gcloud org-policies set-policy /tmp/policy.yaml
如需验证政策是否已成功应用,您可以尝试在项目中创建实例或备份。除非您指定 Cloud KMS 密钥,否则该过程会失败。
限制 Filestore 项目的 Cloud KMS 密钥
您可以使用 constraints/gcp.restrictCmekCryptoKeyProjects 限制条件来限制可用于保护 Filestore 项目中的资源的 Cloud KMS 密钥。
您可以指定规则,例如“对于 projects/my-company-data-project 中的所有 Filestore 资源,此项目中使用的 Cloud KMS 密钥必须来自 projects/my-company-central-keys 或 projects/team-specific-keys”。
控制台
打开组织政策页面。
在过滤条件 字段中,输入
constraints/gcp.restrictCmekCryptoKeyProjects,然后点击限制哪些项目可以为 CMEK 提供 KMS CryptoKey 。点击 管理政策。
在修改政策 页面,选择覆盖父资源的政策 。
选择添加规则 。
对于政策值,选择自定义。
对于政策类型,选择允许。
在自定义值 字段中,输入以下内容:
under:projects/KMS_PROJECT_ID将 KMS_PROJECT_ID 替换为您要使用的 Cloud KMS 密钥所在的项目 ID。
例如
under:projects/my-kms-project。点击完成,然后点击设置政策。
gcloud
创建临时文件
/tmp/policy.yaml以存储政策:name: projects/PROJECT_ID/policies/gcp.restrictCmekCryptoKeyProjects spec: rules: - values: allowedValues: - under:projects/KMS_PROJECT_ID其中:
- PROJECT_ID 是要使用的项目的项目 ID。
- KMS_PROJECT_ID 是您要使用的 Cloud KMS 密钥所在的项目 ID。
运行 org-policies set-policy 命令:
gcloud org-policies set-policy /tmp/policy.yaml
如需验证政策是否已成功应用,您可以尝试使用其他项目中的 Cloud KMS 密钥创建实例或备份。该过程会失败。
限制
设置组织政策时,请注意以下限制。
CMEK 可用性
提醒一下,基本 HDD 和基本 SSD 服务层级不支持 CMEK。鉴于这些限制条件的定义方式,如果您应用要求使用 CMEK 的组织政策,然后尝试在关联的项目中创建基本层级实例或备份,这些创建操作会失败。
现有资源
现有资源不受新创建的组织政策约束。
例如,如果您创建的组织政策要求您为每个 create 操作指定 CMEK,则该政策不会以追溯方式应用于现有实例和备份链。这些资源仍然可以在没有 CMEK 的情况下访问。如果您想将该政策应用于现有资源(无论是实例还是备份链),则必须替换这些资源。
设置组织政策所需的权限
出于测试目的,可能难以获取设置或更新组织政策的权限。必须具有 Organization Policy Administrator 管理员角色, 该角色只能在组织级层授予。
虽然该角色必须在组织级层授予,但仍然可以指定仅应用于特定项目或文件夹的政策。
Cloud KMS 密钥轮替的影响
当与资源关联的 Cloud KMS 密钥轮替时,Filestore 不会自动轮替资源的加密密钥。
现有实例和备份中的所有数据都会继续受创建它们所使用的密钥版本的保护。
任何新创建的实例或备份在创建时都使用指定的主密钥版本。
轮替密钥时,使用先前的密钥版本加密的数据不会自动重新加密。如需使用最新的密钥版本加密数据,您必须从资源中解密旧密钥版本,然后使用新密钥版本重新加密同一资源。此外,轮替密钥不会自动停用或销毁任何现有密钥版本。
如需详细了解如何执行每项任务,请参阅以下指南:
Filestore 对 Cloud KMS 密钥的访问权限
在以下情况下,Filestore 会将 Cloud KMS 密钥视为可用且可访问:
- 密钥已启用
- Filestore 服务帐号拥有该密钥的加密和解密权限
后续步骤
- 了解如何加密 Filestore 实例或备份。
- 了解 CMEK。
- 了解 中的传输加密 Google Cloud。
- 了解组织政策。
- 了解 CMEK 组织政策。