CMEK 组织政策

Google Cloud 提供两种组织政策限制条件,以帮助确保 CMEK 用量:

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

CMEK 组织政策仅适用于 支持的 Google Cloud 服务

所需的角色

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

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

所需权限

创建资源时需要以下权限来检查组织政策:

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

您的管理员或许也能将每位用户 这些权限 使用自定义角色或 其他预定义角色

当组织政策处于有效状态时,orgpolicy.policies.check 权限 Google Cloud 控制台用户创建的是 由 CMEK 密钥保护。没有此权限的用户可以创建受 CMEK 保护 使用 Google Cloud 控制台管理资源,但可以选择 restrictCmekCryptoKeyProjects 限制条件不允许。当某个键 则资源创建最终会失败。

需要 CMEK 保护

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

作为列表限制条件,此限制条件可接受的值为 Google Cloud 服务名称(例如 sqladmin.googleapis.com)。使用此限制条件的依据 提供 Google Cloud 服务名称列表,并将限制条件设置为 拒绝。此配置会阻止在 (如果资源未受 CMEK 保护)。在 换句话说,在该服务中创建资源的请求 指定 Cloud KMS 密钥。此外,此限制条件会屏蔽 从这些服务的资源中移除 CMEK 保护。此限制条件仅适用于受支持的服务

限制将 Cloud KMS 密钥用于 CMEK

如需限制用于 CMEK 保护的 Cloud KMS 密钥,请执行以下操作: 配置 constraints/gcp.restrictCmekCryptoKeyProjects 限制条件。

作为列表限制条件,接受的值是资源层次结构指示器( 示例:projects/PROJECT_IDunder:folders/FOLDER_IDunder:organizations/ORGANIZATION_ID)。您可以通过配置 资源层次结构指示器的列表,并将限制条件设置为 Allow。 此配置会限制支持的服务,以便可以选择 CMEK 密钥 仅从列出的项目、文件夹和组织中导出。创建请求 配置的服务中受 CMEK 保护的资源在没有 来自某个允许的资源的 Cloud KMS 密钥。配置后 此限制条件适用于所有支持的服务

支持的服务

服务 需要 CMEK 时的限制条件值
Application Integration integrations.googleapis.com
Artifact Registry artifactregistry.googleapis.com
BigQuery bigquery.googleapis.com
Bigtable bigtable.googleapis.com
Cloud Composer composer.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Run run.googleapis.com
Cloud Run 函数 cloudfunctions.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Storage storage.googleapis.com
Cloud Workstations workstations.googleapis.com
Colab Enterprise aiplatform.googleapis.com
Compute Engine compute.googleapis.com
Dataflow dataflow.googleapis.com
Dataproc dataproc.googleapis.com
Document AI documentai.googleapis.com
Filestore file.googleapis.com
Firestore预览版firestore.googleapis.com
Google Kubernetes Engine预览版container.googleapis.com
Memorystore for Redis redis.googleapis.com
Pub/Sub pubsub.googleapis.com
Secret Manager secretmanager.googleapis.com
Secure Source Manager securesourcemanager.googleapis.com
Spanner spanner.googleapis.com
Vertex AI aiplatform.googleapis.com
Vertex AI Agent Builder discoveryengine.googleapis.com
Vertex AI Workbench 实例 notebooks.googleapis.com

CMEK 组织政策和 Storage Transfer Service

虽然存储转移服务没有与 CMEK 集成,但可以与 CMEK 组织政策搭配使用。如果您使用 Storage Transfer Service 并希望 确保存储在 Secret Manager 中的数据库凭据 则您必须同时添加 storagetransfer.googleapis.comsecretmanager.googleapis.comconstraints/gcp.restrictNonCmekServices 限制条件。如需了解详情,请参阅 Storage Transfer Service CMEK 文档

强制执行异常(按资源类型)

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

资源类型 强制执行例外情况
bigquery.googleapis.com/Dataset 对数据集的默认 Cloud KMS 密钥部分强制执行(仅限 gcp.restrictCmekCryptoKeyProjects
bigquery.googleapis.com/Job 仅限查询作业:对随查询提供的 Cloud KMS 密钥强制执行 或默认为结算项目;也可以参阅独立的项目配置 默认 Cloud KMS 密钥
bigquerydatatransfer.googleapis.com/TransferConfig 转移配置使用 Data Transfer Service 的服务名称 (bigquerydatatransfer.googleapis.com) 作为 CMEK 组织政策约束条件。
container.googleapis.com/Cluster 预览版) 对节点启动强制执行的 Cloud KMS 密钥 仅磁盘;不对应用层的 Secret 强制执行
logging.googleapis.com/LogBucket 对明确创建的日志存储分区强制执行;单独的配置 可确保内置日志存储分区的合规性
storage.googleapis.com/Bucket 对存储桶默认 Cloud KMS 密钥强制执行
storage.googleapis.com/Object 独立于存储桶强制执行;另请参阅单独的 存储桶默认 Cloud KMS 密钥的配置

配置示例

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

组织资源层次结构示意图

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

假设您希望对所有 Cloud Storage 资源启用 CMEK 保护 位于 projects/5 下,并确保只有来自 projects/4 的密钥可以 。

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

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

为了确保仅使用 projects/4 中的键,请使用以下配置:

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

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

或者,假设您打算添加其他 Cloud KMS folders/2 下的项目,并希望在更大范围内使用 CMEK folders/3内。在这种情况下,您需要 配置。

为新的 Cloud SQL 和 Cloud Storage 要求额外的 CMEK 保护 folders/3 下任意位置的资源:

  • 组织政策:constraints/gcp.restrictNonCmekServices
  • 绑定位置:folders/3
  • 政策类型:拒绝
  • 政策值:sqladmin.googleapis.comstorage.googleapis.com

为了确保只有 folders/2 下 Cloud KMS 项目中的密钥 已使用:

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

要求组织使用 CMEK

若要在组织中的所有地方(在受支持的服务中)要求使用 CMEK,请按以下步骤操作: 使用constraints/gcp.restrictNonCmekServices 以下设置:

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

限制

如果您使用 Google Cloud 控制台创建资源,可能会注意到 在出现以下情况时,不能使用 CMEK 以外的任何加密选项: 为项目配置了constraints/gcp.restrictNonCmekServices,并且 服务。CMEK 组织政策限制仅在 客户账号已被授予 orgpolicy.policy.get IAM 对项目的权限。

后续步骤

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

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