本页面介绍了如何使用如下方式强制执行基于证书的访问权限 (CBA): 基于用户群组的情境感知访问权限政策。
您可以绑定 向您要限制其访问权限的用户群组授予 CBA 访问权限级别。这个 限制适用于所有调用 Google Cloud 代码 API。这些应用包括由 Google 构建的第一方应用、 (例如 Google Cloud 控制台和 Google Cloud CLI)以及第三方应用。 您也可以选择将限制应用于特定的客户端应用 特定应用除外。
准备工作
确保您已创建 CBA 访问权限级别 在确定对资源的访问权限时需要证书。
创建用户群组
创建用户群组,其中包含 应根据 CBA 访问权限级别为其授予访问权限的成员。
分配 Cloud Access Binding Admin 角色
分配 Cloud Access Binding Admin 授予用户角色。
请确保您拥有足够的权限来添加 组织级别的 IAM 权限。您至少需要 Organization Admin 以及 Cloud Access Binding Admin 角色。
控制台
在控制台中,打开 IAM 页面。
在权限标签页上,点击授予访问权限,然后配置 以下:
- 新的主账号:指定要向其授予该账号的群组 角色。
- 在选择角色选项中,选择 Access Context Manager > Cloud Access Binding Admin。
- 点击保存。
gcloud
登录:
gcloud auth login
通过运行以下命令来分配
GcpAccessAdmin
角色:gcloud organizations add-iam-policy-binding ORG_ID \ --member=user:EMAIL \ --role=roles/accesscontextmanager.gcpAccessAdmin
ORG_ID
是您组织的 ID。如果您不知道组织 ID,可使用以下命令进行查找:gcloud organizations list
EMAIL
是此人的电子邮件地址或 授予此角色的群组。
将 CBA 访问权限级别绑定到用户群组
在此绑定选项中,CBA 访问权限级别会应用于 指定用户群组的应用
在控制台中,前往 Chrome Enterprise Premium 页面。
选择一个组织,然后点击选择。
点击管理访问权限,选择应该拥有访问权限的用户群组。
点击添加,然后配置以下内容:
- 成员群组:指定要向其授予访问权限的群组。您 只能选择尚未绑定到访问权限级别的群组。
- 选择访问权限级别:选择要应用于该群组的 CBA 访问权限级别。
- 点击保存。
将 CBA 访问权限级别绑定到用户群组和特定应用
在某些使用场景(例如,支持客户端证书的应用)下, 将 CBA 访问权限级别绑定到用户群组可能 广泛匹配。您可以使用此选项将 CBA 访问权限级别应用于符合以下条件的应用: 支持客户端证书。
以下示例将 CBA 访问权限级别绑定到 Google Cloud 控制台。 gcloud CLI 和用户的 OAuth 应用。
登录 gcloud CLI。
$ gcloud auth application-default login
创建
policy_file.json
文件。您可以使用 OAuth 客户端 ID 指定应用。要指定 Google 请使用应用名称,例如
Cloud Console
表示 Google Cloud 控制台。仅 Google Cloud 控制台和 Google Cloud SDK 支持 Google 应用。{ "groupKey": "{GROUP_KEY}", "restricted_client_applications": [ {"name": "Cloud Console"}, {"name": "Google Cloud SDK"}, {"client_id": "{CLIENT_ID}"} ], "accessLevels": [ "{LEVEL}" ], }
创建 CBA 访问权限级别绑定。
curl -X POST \ -H "Authorization: Bearer `gcloud auth application-default print-access-token`" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project:PROJECT_ID" \ -d @policy_file.json \ https://accesscontextmanager.googleapis.com/v1/organizations/ORG-ID/gcpUserAccessBindings
其中,PROJECT_ID 是 Google Cloud 项目 ID, ORG-ID 是您的组织 ID。
(可选)更新现有的访问权限级别绑定。
$ curl -X PATCH \ -H "Authorization: Bearer `gcloud auth application-default print-access-token`" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project:PROJECT_ID" \ -d @policy_file.json \ https://accesscontextmanager.googleapis.com/v1/POLICY_NAME?update_mask=restricted_client_applications
其中,PROJECT_ID 是 Google Cloud 项目 ID, POLICY_NAME 是您的访问权限政策的名称。
从绑定豁免应用
在不屏蔽客户端应用的情况下应用 CBA 访问权限级别的另一种方法 那就是让这些应用免于进入 政策。
以下步骤假定您之前已 创建了 CBA 访问权限级别 在确定对资源的访问权限时需要证书。
使用以下方法之一创建豁免访问权限级别。
- 自定义访问权限级别:
在 CEL 表达式条件中提供
true
作为值。 - 基本访问权限级别:
创建
基于 IP 范围的访问权限级别
并提供
0.0.0.0/0
作为 IP 子网的值。
- 自定义访问权限级别:
在 CEL 表达式条件中提供
创建
exemption_file.json
文件。您选择的组必须与 将 CBA 访问权限级别绑定到用户群组选项, 因为一个组只能应用一个绑定
{ "groupKey": "{GROUP_KEY}", "restricted_client_applications": [ {"client_id": "{CLIENT_ID}"} ], "accessLevels": [ "{LEVEL}" ], }
创建豁免绑定政策。
$ curl -X POST \ -H "Authorization: Bearer `gcloud auth application-default print-access-token`" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project:PROJECT_ID" \ -d @exemption_file.json \ https://accesscontextmanager.googleapis.com/v1/organizations/ORG-ID/gcpUserAccessBindings
其中,PROJECT_ID 是 Google Cloud 项目 ID, ORG-ID 是您的组织 ID。