应用 CMEK 组织政策

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 密钥的所有现有资源将继续存在,并且可以正常访问。

控制台

  1. 打开组织政策页面。

    转到组织政策

  2. 过滤条件字段中,输入 constraints/gcp.restrictNonCmekServices,然后点击限制哪些服务可以在没有 CMEK 的情况下创建资源

  3. 点击 管理政策

  4. 修改政策页面,选择覆盖父资源的政策

  5. 选择添加规则

  6. 政策值下方,选择自定义

  7. 政策类型下,选择拒绝

  8. 自定义值字段中,输入 is:file.googleapis.com

  9. 点击完成,然后点击设置政策

gcloud

  1. 创建临时文件 /tmp/policy.yaml 以存储政策:

      name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices
      spec:
        rules:
        - values:
            deniedValues:
            - is:file.googleapis.com
    

    PROJECT_ID 替换为您要使用的项目的项目 ID。

  2. 运行 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”。

控制台

  1. 打开组织政策页面。

    转到组织政策

  2. 过滤条件字段中,输入 constraints/gcp.restrictCmekCryptoKeyProjects,然后点击限制哪些项目可以为 CMEK 提供 KMS CryptoKey

  3. 点击 管理政策

  4. 修改政策页面,选择覆盖父资源的政策

  5. 选择添加规则

  6. 政策值下方,选择自定义

  7. 政策类型下,选择拒绝

  8. 自定义值字段中,输入以下内容:

    under:projects/KMS_PROJECT_ID
    

    KMS_PROJECT_ID 替换为您要使用的 Cloud KMS 密钥所在的项目 ID。

    例如 under:projects/my-kms-project

  9. 点击完成,然后点击设置政策

gcloud

  1. 创建临时文件 /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 密钥的位置。
  2. 运行 org-policies set-policy 命令:

      gcloud org-policies set-policy /tmp/policy.yaml
    

如需验证政策是否已成功应用,您可以尝试创建一个 实例或备份。该过程将失败。

限制

设置组织政策时,存在以下限制。

CMEK 可用性

请注意,基本 HDD 和基本 SSD 服务层级不支持 CMEK。鉴于这些限制的定义方式,如果您将 组织政策要求使用 CMEK,然后尝试创建 基本层级实例或备份,用于创建操作 失败。

现有资源

现有资源不受新创建的组织政策约束。例如,如果您创建的组织政策要求您指定 CMEK 的每次 create 操作时,此政策不会追溯应用于 现有实例和备份链即使没有 CMEK,您仍然可以访问这些资源。如果您想将该政策应用于现有资源(无论是实例还是备份链),则必须替换这些资源。

设置组织政策所需的权限

出于测试目的,可能难以获取设置或更新组织政策的权限。必须具有 Organization Policy Administrator 角色,该角色只能在组织级层授予。

虽然该角色必须在组织级层授予,但仍然可以指定仅应用于特定项目或文件夹的政策。

Cloud KMS 密钥轮替的影响

Filestore 不会自动轮替资源的加密密钥 在轮替与 Cloud KMS 密钥关联的 Cloud KMS 密钥时触发。

  • 现有实例和备份中的所有数据将继续受到 创建密钥时使用的密钥版本。

  • 任何新创建的实例或备份在创建时都使用指定的主键版本。

轮替密钥时,使用先前密钥版本加密的数据不会 系统会自动重新加密如需使用最新的密钥版本加密数据,您必须解密资源中的旧密钥版本,然后使用新密钥版本重新加密同一资源。此外,轮替密钥不会自动停用或销毁任何现有密钥版本。

有关如何执行上述各项任务的详细说明,请参阅 以下指南:

Filestore 对 Cloud KMS 密钥的访问权限

Cloud KMS 密钥会被视为可供 Filestore:

  • 密钥已启用
  • Filestore 服务账号拥有该密钥的加密和解密权限

后续步骤