本页面介绍了如何使用 Google Cloud 控制台配置 Binary Authorization 政策。作为替代方案,您可以使用 Google Cloud CLI 或 REST API 执行这些任务。这个步骤是设置 Binary Authorization 的一部分。
政策是一组规则,用于管理一个或多个容器映像的部署。
准备工作
- 为您的平台启用 Binary Authorization: - Google Kubernetes Engine (GKE) 用户:创建启用了 Binary Authorization 的集群。 
- Cloud Run 用户:在您的服务上启用 Binary Authorization。 
 
- 如果您打算使用证明,我们建议您先创建证明者,然后再配置政策。您可以使用Google Cloud 控制台或通过命令行工具来创建证明者。 
- 选择已启用 Binary Authorization 的项目的项目 ID。 
设置默认规则
本部分适用于 GKE、GKE Multi-Cloud、Distributed Cloud、Cloud Run 和 Cloud Service Mesh。
规则是政策的一部分,用于规定映像必须满足哪些限制条件才能部署。默认规则规定了适用于所有没有其自身集群专用规则的非豁免容器映像的限制条件。每项政策都有一条默认规则。
如需设置默认规则,请执行以下操作:
- 在 Google Cloud 控制台中,前往 Binary Authorization 页面。 
- 点击政策标签页。 
- 点击修改政策。 
- 为默认规则设置评估模式。 - 评估模式将指定 Binary Authorization 在部署时强制执行的限制条件类型。如需设置评估模式,请选择以下选项之一: - 允许所有映像:允许部署所有映像。
- 拒绝所有映像:禁止部署所有映像。
- 只允许已被以下证明者批准的映像:如果映像具有一个或多个可由您添加到此规则的所有证明者验证的证明,则允许部署该映像。如需了解如何创建证明者,请参阅创建证明者。
 - 如果您选择了只允许已被以下证明者批准的映像,请执行以下操作: - 获取证明者的名称或资源 ID。 - 在 Google Cloud 控制台中的证明者页面上,您可以查看现有的证明者或创建新的证明者。 
- 点击添加证明者。 
- 从下列选项中选择一项: - 根据项目和证明者名称添加 - 项目是指存储证明者的项目的项目 ID。证明者名称的一个示例是 - build-qa。
- 根据证明者资源 ID 添加 - 资源 ID 的格式如下: - projects/PROJECT_ID/attestors/ATTESTOR_NAME 
 
- 在证明者下方,为您选择的选项输入适当的值。 
- 如果您想添加其他证明者,请点击添加其他证明者。 
- 点击添加证明者以保存规则。 
 
如需启用试运行模式,请执行以下操作:
- 选中试运行模式。 
- 点击保存政策。 
设置针对集群的规则(可选)
本部分适用于 GKE、Distributed Cloud 和 Cloud Service Mesh。
一个政策还可以有一条或多条针对集群的规则。这种类型的规则只适用于要部署到特定 Google Kubernetes Engine (GKE) 集群的容器映像。针对集群的规则是政策的可选部分。
添加针对集群的规则 (GKE)
本部分适用于 GKE 和 Distributed Cloud。
如需为 GKE 集群添加针对集群的规则,请执行以下操作:
- 在 Google Cloud 控制台中,前往 Binary Authorization 页面。 
- 点击政策标签页。 
- 点击修改政策。 
- 展开 GKE 部署的其他设置部分。 
- 如果尚未设置专用规则类型,请点击创建专用规则。 - 要选择规则类型,请点击专用规则类型。 
- 要更改规则类型,请点击更改。 
 
- 点击添加专用规则。 
- 在集群资源 ID 字段中,输入集群的资源 ID。 - 集群的资源 ID 格式为 - LOCATION.NAME,例如- us-central1-a.test-cluster。
- 为默认规则设置评估模式。 - 评估模式将指定 Binary Authorization 在部署时强制执行的限制条件类型。如需设置评估模式,请选择以下选项之一: - 允许所有映像:允许部署所有映像。
- 拒绝所有映像:禁止部署所有映像。
- 只允许已被以下证明者批准的映像:如果映像具有一个或多个可由您添加到此规则的所有证明者验证的证明,则允许部署该映像。如需了解如何创建证明者,请参阅创建证明者。
 - 如果您选择了只允许已被以下证明者批准的映像,请执行以下操作: - 获取证明者的名称或资源 ID。 - 在 Google Cloud 控制台中的证明者页面上,您可以查看现有的证明者或创建新的证明者。 
- 点击添加证明者。 
- 从下列选项中选择一项: - 根据项目和证明者名称添加 - 项目是指存储证明者的项目的项目 ID。证明者名称的一个示例是 - build-qa。
- 根据证明者资源 ID 添加 - 资源 ID 的格式如下: - projects/PROJECT_ID/attestors/ATTESTOR_NAME 
 
- 在证明者下方,为您选择的选项输入适当的值。 
- 如果您想添加其他证明者,请点击添加其他证明者。 
- 点击添加证明者以保存规则。 
 
- 点击添加以添加针对集群的规则。 - 系统可能会向您显示一条消息,“此集群似乎不存在。如果此集群日后在 GKE 中变为可用,此规则将仍发挥作用。”如果是这样,请再次点击添加以保存此规则。 
- 如需启用试运行模式,请选择试运行模式。 
- 点击保存政策。 
添加针对集群的规则(GKE Multi-Cloud、Distributed Cloud)
本部分适用于 Distributed Cloud。
如需为 GKE 集群添加针对集群的规则,请执行以下操作:
- 在 Google Cloud 控制台中,前往 Binary Authorization 页面。 
- 点击政策标签页。 
- 点击修改政策。 
- 展开 GKE 部署的其他设置部分。 
- 如果尚未设置专用规则类型,请点击创建专用规则。 - 要选择规则类型,请点击专用规则类型。 
- 要更新规则类型,请点击更改。 
 
- 点击添加专用规则。 
- 在集群资源 ID 字段中,输入集群的资源 ID。 - 对于 GKE 关联集群和 GKE on AWS,格式为 CLUSTER_LOCATION.CLUSTER_NAME- 例如us-central1-a.test-cluster。
- 对于 Google Distributed Cloud 和 Google Distributed Cloud,格式为 FLEET_MEMBERSHIP_LOCATION.FLEET_MEMBERSHIP_ID,例如global.test-membership。
 
- 对于 GKE 关联集群和 GKE on AWS,格式为 
- 为默认规则设置评估模式。 - 评估模式将指定 Binary Authorization 在部署时强制执行的限制条件类型。如需设置评估模式,请选择以下选项之一: - 允许所有映像:允许部署所有映像。
- 拒绝所有映像:禁止部署所有映像。
- 只允许已被以下证明者批准的映像:如果映像具有一个或多个可由您添加到此规则的所有证明者验证的证明,则允许部署该映像。如需了解如何创建证明者,请参阅创建证明者。
 - 如果您选择了只允许已被以下证明者批准的映像,请执行以下操作: - 获取证明者的名称或资源 ID。 - 在 Google Cloud 控制台中的证明者页面上,您可以查看现有的证明者或创建新的证明者。 
- 点击添加证明者。 
- 从下列选项中选择一项: - 根据项目和证明者名称添加 - 项目是指存储证明者的项目的项目 ID。证明者名称的一个示例是 - build-qa。
- 根据证明者资源 ID 添加 - 资源 ID 的格式如下: - projects/PROJECT_ID/attestors/ATTESTOR_NAME 
 
- 在证明者下方,为您选择的选项输入适当的值。 
- 如果您想添加其他证明者,请点击添加其他证明者。 
- 点击添加证明者以保存规则。 
 
- 点击添加以保存此规则。 - 系统可能会向您显示一条消息,“此集群似乎不存在。如果指定集群日后在 GKE 中变为可用,此规则将仍发挥作用。”在这种情况下,请再次点击添加以保存此规则。 
- 如需启用试运行模式,请选择试运行模式。 
- 点击保存政策。 
添加专用规则
您可以创建范围限定为网格服务身份、Kubernetes 服务账号或 Kubernetes 命名空间的规则。您可以添加或修改专用规则,如下所示:
- 在 Google Cloud 控制台中,前往 Binary Authorization 页面。 
- 点击政策标签页。 
- 点击修改政策。 
- 展开 GKE 和 Anthos 部署的其他设置部分。 
- 如果尚未设置专用规则类型,请点击创建专用规则。 - 点击专用规则类型以选择规则类型。 
- 点击更改以更新规则类型。 
 
- 如果已存在专用规则类型,则您可以点击修改类型来更改规则类型。 
- 如需添加专用规则,请点击添加专用规则。根据您选择的规则类型,您可以按照以下步骤输入 ID: - ASM 服务身份:输入以下 ASM 服务身份:PROJECT_ID.svc.id.goog/ns/NAMESPACE/sa/SERVICE_ACCOUNT
- Kubernetes 服务账号:输入您的 Kubernetes 服务账号,其格式如下:NAMESPACE:SERVICE_ACCOUNT。
- Kubernetes 命名空间:输入您的 Kubernetes 命名空间,其格式如下:NAMESPACE
 - 根据规则类型替换以下内容(如果需要): - PROJECT_ID:您在其中定义 Kubernetes 资源的项目的 ID。
- NAMESPACE:Kubernetes 命名空间。
- SERVICE_ACCOUNT:服务账号。
 
- 为默认规则设置评估模式。 - 评估模式将指定 Binary Authorization 在部署时强制执行的限制条件类型。如需设置评估模式,请选择以下选项之一: - 允许所有映像:允许部署所有映像。
- 拒绝所有映像:禁止部署所有映像。
- 只允许已被以下证明者批准的映像:如果映像具有一个或多个可由您添加到此规则的所有证明者验证的证明,则允许部署该映像。如需了解如何创建证明者,请参阅创建证明者。
 - 如果您选择了只允许已被以下证明者批准的映像,请执行以下操作: - 获取证明者的名称或资源 ID。 - 在 Google Cloud 控制台中的证明者页面上,您可以查看现有的证明者或创建新的证明者。 
- 点击添加证明者。 
- 从下列选项中选择一项: - 根据项目和证明者名称添加 - 项目是指存储证明者的项目的项目 ID。证明者名称的一个示例是 - build-qa。
- 根据证明者资源 ID 添加 - 资源 ID 的格式如下: - projects/PROJECT_ID/attestors/ATTESTOR_NAME 
 
- 在证明者下方,为您选择的选项输入适当的值。 
- 如果您想添加其他证明者,请点击添加其他证明者。 
- 点击添加证明者以保存规则。 
 
- 点击试运行模式以启用试运行模式。 
- 点击添加以保存专用规则。 
- 点击保存政策。 
管理豁免映像
本部分适用于 GKE、Distributed Cloud、Cloud Run 和 Cloud Service Mesh。
豁免映像是由路径指定的映像,不受政策规则限制。Binary Authorization 始终允许部署豁免映像。
此路径可以指定 Container Registry 中或另一个容器映像注册表中的位置。
Cloud Run
本部分适用于 Cloud Run。
您无法直接指定包含标记的映像名称。例如,您不能指定 IMAGE_PATH:latest。
如果要指定包含标记的映像名称,则必须按如下方式使用通配符来指定映像名称:
- 对于单个映像的所有版本,使用 *;例如us-docker.pkg.dev/myproject/container/hello@*
- 对于项目中的所有映像,使用 **;例如us-docker.pkg.dev/myproject/**
您可以使用路径名称指定 IMAGE_PATH@DIGEST 格式的摘要。
启用系统政策
本部分适用于 GKE 和 Distributed Cloud。
信任 Google 提供的所有系统映像是一项用于启用 Binary Authorization 系统政策的政策设置。在部署时启用此设置后,Binary Authorization 将不对 GKE 所需的一系列 Google 维护的系统映像进行进一步政策评估。系统会在评估您的任何其他政策设置之前,先对系统政策进行评估。
如需启用系统政策,请执行以下操作:
- 前往 Google Cloud 控制台中的 Binary Authorization 页面。 
- 点击修改政策。 
- 展开 GKE 和 Anthos 部署的其他设置部分。 
- 在 Google 系统映像豁免部分中,选择信任 Google 提供的所有系统映像。 - 如需查看受系统政策豁免的映像,请点击查看详情。 
- 如需手动指定其他豁免映像,请展开不受此政策约束的映像下的自定义豁免规则部分。 - 然后,点击添加映像路径,并输入要豁免的任何其他映像的注册表路径。 
- 点击保存政策。 
后续步骤
- 使用 built-by-cloud-build证明者仅部署由 Cloud Build 构建的映像(预览版)。
- 使用证明。
- 部署 GKE 映像。
- 查看 Cloud Audit Logs 事件。
- 使用持续验证。
- 使用旧版持续验证(已弃用)来检查政策合规性。