Google Cloud 提供两种组织政策限制条件,以强制执行整个组织范围内的 CMEK 使用情况:
constraints/gcp.restrictNonCmekServices用于要求 CMEK 保护。constraints/gcp.restrictCmekCryptoKeyProjects用于限制哪些 CMEK 密钥可用于保护。
CMEK 组织政策仅适用于支持的 Google Cloud 服务中新创建的资源。
如需详细了解此功能的工作原理,请参阅Google Cloud 资源层次结构和 CMEK 组织政策。
使用组织政策控制 CMEK 使用情况
NetApp Volumes 集成了 CMEK 组织政策限制条件,可让您指定组织中 NetApp Volumes 资源的加密合规性要求。
借助此集成,您可以执行以下操作:
所有 NetApp Volumes 资源都需要 CMEK
常见政策是要求使用 CMEK 来保护组织中的所有资源。您可以使用 constraints/gcp.restrictNonCmekServices 限制条件在 NetApp Volumes 中强制执行此政策。
如果设置,此组织政策会导致没有指定 Cloud KMS 密钥的所有资源创建请求失败。
设置此政策后,它仅适用于项目中的新资源。未设置 Cloud KMS 密钥的所有现有资源将继续存在,并且可以正常访问。
按照以下说明,使用 Google Cloud 控制台或 Google Cloud CLI 为 NetApp Volumes 资源强制执行 CMEK 使用。
控制台
打开组织政策页面。
在过滤条件字段中,输入
constraints/gcp.restrictNonCmekServices,然后点击限制哪些服务可以在没有 CMEK 的情况下创建资源。点击 管理政策。
在修改政策页面,选择覆盖父资源的政策。
选择添加规则。
在政策值下方,选择自定义。
在政策类型下,选择拒绝。
在自定义值字段中,输入
is:netapp.googleapis.com。点击完成,然后点击设置政策。
gcloud
创建临时文件
/tmp/policy.yaml以存储政策:name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices spec: rules: - values: deniedValues: - is:netapp.googleapis.com将 PROJECT_ID 替换为您要使用的项目的 ID。
运行
org-policies set-policy命令:gcloud org-policies set-policy /tmp/policy.yaml
如需验证政策是否已成功应用,您可以尝试在项目中创建存储池。除非您指定 Cloud KMS 密钥,否则该过程将失败。
为 NetApp Volumes 项目限制 Cloud KMS 密钥
您可以使用 constraints/gcp.restrictCmekCryptoKeyProjects 限制条件来限制可用于保护 NetApp Volumes 项目中的资源的 Cloud KMS 密钥。
您可以指定规则,例如“对于 projects/my-company-data-project 中的所有 NetApp Volumes 资源,此项目中使用的 Cloud KMS 密钥必须来自 projects/my-company-central-keys 或 projects/team-specific-keys”。
按照以下说明,使用 Google Cloud 控制台或 Google Cloud CLI 为 NetApp Volumes 项目强制使用 Cloud KMS 密钥。
控制台
打开组织政策页面。
在过滤条件字段中,输入
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 密钥创建存储池。该过程将失败。
限制
设置组织政策时存在以下限制。
现有资源
现有资源不受新创建的组织政策约束。例如,如果您创建了一项组织政策,要求您为每个 create 操作指定 CMEK,则该政策不会追溯应用于现有实例和备份链。这些资源在没有 CMEK 的情况下仍然可供访问。如果您想将政策应用于现有资源(例如存储池或备份保险库),则必须替换这些资源。
设置组织政策所需的权限
您需要在组织级层获授 Organization Policy Administrator 角色,才能出于测试目的设置或更新组织政策。
您仍然可以指定仅应用于特定项目或文件夹的政策。
Cloud KMS 密钥轮替的影响
卷
当与 NetApp 卷关联的 Cloud KMS 密钥轮替时,NetApp Volumes 不会自动轮替卷的加密密钥。
现有存储池中的所有数据都会继续受创建它们所使用的密钥版本的保护。
任何新创建的存储池在创建时都使用指定的主键版本。
轮替密钥时,使用先前的密钥版本加密的数据不会自动重新加密。如需使用最新密钥版本加密数据,您必须先从资源中解密旧密钥版本,然后使用新密钥版本重新加密同一资源。此外,轮替密钥不会自动停用或销毁任何现有密钥版本。
如需详细了解如何执行每项任务,请参阅以下指南:
备份保险柜
当与备份保险库关联的 Cloud KMS 密钥轮替时,NetApp Volumes 会自动轮替备份保险库的加密密钥。您可以查看每个启用 CMEK 的备份保险库的轮换操作状态。
NetApp Volumes 对 Cloud KMS 密钥的访问权限
如果符合以下条件,Cloud KMS 密钥会被视为可由 NetApp Volumes 使用和访问:
- 密钥已启用
- NetApp Volumes 服务账号拥有该密钥的加密和解密权限