CMEK 组织政策

Cloud de Confiance by S3NS 提供两种组织政策限制条件,以帮助确保在整个组织范围内使用 CMEK:

  • constraints/gcp.restrictNonCmekServices 用于要求 CMEK 保护。
  • constraints/gcp.restrictCmekCryptoKeyProjects 用于限制哪些 Cloud KMS 密钥可用于 CMEK 保护。

CMEK 组织政策仅适用于支持的 Cloud de Confiance 服务中新创建的资源。

所需的角色

如需确保每个用户都拥有在创建资源时检查组织政策所需的权限,请让您的管理员为组织中的每个用户授予 Organization Policy Viewer (roles/orgpolicy.policyViewer) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

此预定义角色包含在创建资源时检查组织政策所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

在创建资源时,需要拥有以下权限才能检查组织政策:

  • 如需查看完整的组织政策详情,请执行以下操作: orgpolicy.policy.get
  • 在创建资源时检查组织政策:orgpolicy.policies.check

您的管理员也可以使用自定义角色或其他预定义角色向每个用户授予这些权限。

组织政策处于有效状态时,对于创建受 CMEK 密钥保护的资源的 Cloud de Confiance 控制台用户,需要拥有 orgpolicy.policies.check 权限。没有此权限的用户可以使用 Cloud de Confiance 控制台创建受 CMEK 保护的资源,但他们可以选择 restrictCmekCryptoKeyProjects 限制条件不允许的 CMEK 密钥。如果选择不符合此限制条件的密钥,资源创建最终会失败。

要求 CMEK 保护

如需为您的组织要求 CMEK 保护,请配置 constraints/gcp.restrictNonCmekServices 组织政策。

作为列表限制条件,此限制条件接受的值是 Cloud de Confiance by S3NS服务名称(例如 bigquery.googleapis.com)。要使用此限制条件,请提供 Cloud de Confiance by S3NS 服务名称列表并将限制条件设置为拒绝。如果资源不受 CMEK 保护,此配置会阻止在这些服务中创建资源。换句话说,如果不指定 Cloud KMS 密钥,则在服务中创建资源的请求将无法成功。此外,此限制条件还会阻止从这些服务中的资源中移除 CMEK 保护。此限制条件只能应用于受支持的服务。

限制使用 Cloud KMS 密钥进行 CMEK 保护

如需限制哪些 Cloud KMS 密钥可用于 CMEK 保护,请配置 constraints/gcp.restrictCmekCryptoKeyProjects 约束条件。

作为列表限制条件,它接受的值是资源层次结构指示符(例如 projects/PROJECT_ID、under:folders/FOLDER_ID 和 under:organizations/ORGANIZATION_ID)。要使用此限制条件,请配置资源层次结构指示符列表并将限制条件设置为允许。此配置会限制支持的服务,以便仅从列出的项目、文件夹和组织中选择 CMEK 密钥。如果没有来自允许资源之一的 Cloud KMS 密钥,则无法在已配置的服务中成功创建受 CMEK 保护的资源。配置后,此限制条件适用于所有受支持的服务。

支持的服务

服务 要求使用 CMEK 时的限制条件值
Cloud Storage storage.googleapis.com

违规处置例外情况(按资源类型)

在创建新资源或更改现有资源上的 Cloud KMS 密钥(如果支持)时,系统会强制执行 CMEK 组织政策限制条件。通常,它们会在服务的所有支持 CMEK 的资源类型上强制执行,并且仅基于资源的配置。下面总结了一些值得注意的例外情况:

资源类型 违规处置例外情况
storage.googleapis.com/Bucket 对存储桶默认 Cloud KMS 密钥强制执行
storage.googleapis.com/Object 独立于存储桶强制执行;另请参阅 存储桶默认 Cloud KMS 密钥的单独配置

配置示例

在配置示例中,假设示例组织具有以下资源层次结构:

组织资源层次结构图

要求使用 CMEK 并限制项目的密钥

假设您希望要求对 projects/5 下的所有 Cloud Storage 资源进行 CMEK 保护,并确保只能使用来自 projects/4 的密钥。

如需要求对所有新的 Cloud Storage 资源进行 CMEK 保护,请使用以下组织政策设置:

  • 组织政策:constraints/gcp.restrictNonCmekServices
  • 绑定时间:projects/5
  • 政策类型:拒绝
  • 政策值:storage.googleapis.com

为确保仅使用来自 projects/4 的密钥,请使用以下配置:

  • 组织政策:constraints/gcp.restrictCmekCryptoKeyProjects
  • 绑定时间:projects/5
  • 政策类型:允许
  • 政策值:projects/4

要求使用 CMEK 并将密钥限制在文件夹中

或者,假设您预计将来会在 folders/2 下添加更多 Cloud KMS 项目,并希望在 folders/3 中更广泛地要求使用 CMEK。对于此场景,您需要略有不同的配置。

如需在 folders/3 下的任何位置为新的 Cloud SQL 和 Cloud Storage 资源要求额外的 CMEK 保护,请执行以下操作:

  • 组织政策:constraints/gcp.restrictNonCmekServices
  • 绑定时间:folders/3
  • 政策类型:拒绝
  • 政策值:sqladmin.googleapis.com、storage.googleapis.com

如需确保仅使用 folders/2 下的 Cloud KMS 项目中的密钥,请执行以下操作:

  • 组织政策:constraints/gcp.restrictCmekCryptoKeyProjects
  • 绑定时间:folders/3
  • 政策类型:允许
  • 政策值:under:folders/2

要求组织使用 CMEK

如需在组织中的所有位置(在受支持的服务中)要求使用 CMEK,请使用以下设置配置 constraints/gcp.restrictNonCmekServices 限制条件:

  • 组织政策:constraints/gcp.restrictNonCmekServices
  • 绑定时间:organizations/1
  • 政策类型:拒绝
  • 政策值:(所有受支持的服务)

限制

如果您使用 Cloud de Confiance 控制台创建资源,可能会注意到,在为项目和服务配置 constraints/gcp.restrictNonCmekServices 时,您无法使用 CMEK 以外的任何加密选项。只有在客户账号已被授予项目的 orgpolicy.policy.get IAM 权限时,CMEK 组织政策限制条件才可见。

后续步骤

请参阅组织政策服务简介,详细了解组织政策的优势和常见应用场景。

如需查看有关创建具有特定限制条件的组织政策的更多示例,请参阅使用限制条件。