本文档介绍了如何保护对 Google Cloud 控制台的访问以及 使用基于上下文的规则来配置 Google Cloud API。
针对 Google Cloud 控制台和 Google Cloud API 的情境感知访问权限 会限制对 Google Cloud 控制台和 Google Cloud API 的访问 使用基于上下文的规则。它是 Chrome Enterprise Premium 的一部分,有助于: 确保贵组织中的个人和群组满足 访问 Google Cloud 控制台和 Google Cloud API(包括通过 Google Cloud CLI 进行访问)。
如需保护 Google Cloud 控制台和 Google Cloud API,请完成以下步骤:
- [可选] 将端点验证部署到组织中的设备。
- 在 Access Context Manager 中创建访问权限级别。
- 创建一组受情境感知限制约束的用户。
- 获取所需的 Identity and Access Management 权限。
- 创建强制执行情境感知规则的访问权限绑定 适用于 Google Cloud 控制台和 Google Cloud API。
[可选] 部署端点验证
如果您想保护对 Google Cloud 控制台的访问 使用设备属性部署 Google Cloud API 端点验证,适用于您 组织。
端点验证可作为 Chrome 扩展程序在台式机和笔记本电脑上运行,供用户使用 MacOS、Windows 和 Linux一个 让管理员可以部署 组织的公司自有设备,请通过 Google 管理控制台或 组织成员可以 自行安装。
创建访问权限级别
您需要定义一个访问权限级别,以便在确定访问权限时使用 Google Cloud 控制台和 Google Cloud API 创建基本访问权限级别 Access Context Manager 中的资源。
创建用户群组
创建一组应受情境感知限制约束的用户。此 同时是贵组织成员的群组必须满足访问权限级别要求 访问 Google Cloud 控制台和 Google Cloud API。
授予所需的 IAM 权限
在组织级层授予创建 Access Context Manager 访问权限绑定所需的 IAM 权限。
控制台
转到 Google Cloud 控制台中的 IAM 和管理页面。
点击添加并配置以下内容:
- 新成员:指定要授予权限的用户或群组。
- 选择角色:选择 Access Context Manager > Cloud Access Binding Admin。
点击保存。
gcloud
确保您已经过身份验证并拥有在组织级层添加 IAM 权限的足够权限。您至少需要具有 Organization Admin 角色。
确认拥有适当权限后,运行以下命令进行登录:
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
是您要授予角色的用户或群组的电子邮件地址。
创建访问权限绑定
访问绑定是 您之前创建的“用户”权限,以及您在 为访问 Google Cloud 控制台和 Google Cloud API 而定义。
您可以通过以下任一方式创建访问权限绑定:
- 群组和访问权限级别之间的访问权限绑定。
- 通过试运行配置访问群组与访问权限级别之间的访问绑定。 借助试运行配置,您可以在群组与试运行访问权限级别之间,或在群组、访问权限级别与试运行访问权限级别之间创建访问权限绑定。
使用访问权限级别创建访问权限绑定
控制台
前往 Google Cloud 控制台中的 Chrome Enterprise Premium 页面。
选择一个组织,然后点击选择。
点击管理访问权限以选择哪些用户组应拥有访问权限。
点击添加并配置以下内容:
- 成员组:指定要授予访问权限的群组。 您只能选择尚未绑定到访问权限级别的群组。
- 选择访问权限级别:选择应应用于该群组的访问权限级别。
点击保存。
gcloud
如需详细了解此命令以及其他 gcloud access-context-manager cloud-bindings 命令,请参阅 Google Cloud CLI。
gcloud access-context-manager cloud-bindings create \
--group-key GROUP_ID \
--level ACCESS_LEVEL \
--organization ORG_ID
其中:
-
GROUP_ID
是执行相应操作的用户群组的 之前创建的。如果您没有群组 ID,则可以通过 调用
get
方法 针对Groups
资源。 -
ORG_ID
是您在创建GcpAccessAdmin
角色时使用的组织的 ID。 如果access-context-manager/organization
属性未设置, 替换可选--organization
中的ORG_ID
标志替换为您创建GcpAccessAdmin
角色。 -
POLICY_ID
是您组织的访问权限政策的 ID。 -
ACCESS_LEVEL
的格式如下accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
API
在使用任何请求数据之前,请先进行以下替换:
-
ORG_ID
是您在创建GcpAccessAdmin
角色。 -
GROUP_ID
是执行相应操作的用户群组的 之前创建的。如果您没有群组 ID,则可以通过 调用
get
方法 针对Groups
资源。 -
POLICY_ID
是您的组织的访问权限政策 ID。 -
ACCESS_LEVEL
的格式为accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
HTTP 方法和网址:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
请求 JSON 正文:
{ "groupKey": "GROUP_ID", "accessLevels": [ "ACCESS_LEVEL" ], }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ] }
创建具有试运行配置的访问权限绑定
您可以创建具有试运行配置的访问权限绑定,以了解 访问权限级别对环境的影响 场景:
- 如需在强制执行访问权限级别之前评估其影响,请创建一个使用模拟运行访问权限级别的访问权限绑定。
- 强制执行访问权限级别并评估试运行访问权限级别的影响 创建具有有效访问权限级别的访问绑定 具有试运行访问权限级别的权限。
具有试运行访问权限级别的访问权限绑定不会阻止访问,但会记录违反试运行访问权限级别的行为。如需查看日志详细信息,请参阅 拒绝事件日志。
使用模拟运行访问权限级别创建访问权限绑定
gcloud
gcloud access-context-manager cloud-bindings create \
--group-key GROUP_ID \
--dry-run-level DRY_RUN_ACCESS_LEVEL \
--organization ORG_ID
其中:
-
GROUP_ID
是执行相应操作的用户群组的 之前创建的。如果您没有群组 ID,则可以通过 调用
get
方法 针对Groups
资源。 -
ORG_ID
是您在创建GcpAccessAdmin
角色时使用的组织的 ID。 如果access-context-manager/organization
属性未设置, 替换可选--organization
中的ORG_ID
标志替换为您创建GcpAccessAdmin
角色。 -
POLICY_ID
是您的组织的访问权限政策 ID。 -
DRY_RUN_ACCESS_LEVEL
是 您想了解的ACCESS_LEVEL
效果。ACCESS_LEVEL
的格式如下accessPolicies/
。 在您创建访问权限级别后,可以在 Access Context Manager 中找到POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
的值。
API
在使用任何请求数据之前,请先进行以下替换:
-
ORG_ID
是您在创建GcpAccessAdmin
角色时使用的组织的 ID。 -
GROUP_ID
是执行相应操作的用户群组的 之前创建的。如果您没有群组 ID,则可以通过 调用
get
方法 针对Groups
资源。 -
POLICY_ID
是您的组织的访问权限政策 ID。 -
DRY_RUN_ACCESS_LEVEL
是 您想了解的ACCESS_LEVEL
效果。ACCESS_LEVEL
的格式如下accessPolicies/
。 在您创建访问权限级别后,可以在 Access Context Manager 中找到POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
的值。
HTTP 方法和网址:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
请求 JSON 正文:
{ "groupKey": "GROUP_ID", "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
创建具有访问权限级别和模拟运行访问权限级别的访问权限绑定
gcloud
gcloud access-context-manager cloud-bindings create \
--group-key GROUP_ID \
--level ACCESS_LEVEL \
--dry-run-level DRY_RUN_ACCESS_LEVEL \
--organization ORG_ID
其中:
-
GROUP_ID
是执行相应操作的用户群组的 之前创建的。如果您不知道组 ID,可以通过对
Groups
资源调用get
方法来获取。 -
ORG_ID
是您在创建GcpAccessAdmin
角色。 如果尚未设置access-context-manager/organization
属性,请将可选--organization
标志中的ORG_ID
替换为您在创建GcpAccessAdmin
角色时使用的组织的 ID。 -
POLICY_ID
是您组织的访问权限政策的 ID。 -
ACCESS_LEVEL
的格式如下accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。 -
DRY_RUN_ACCESS_LEVEL
是 您想了解的ACCESS_LEVEL
效果。ACCESS_LEVEL
的格式如下accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
API
在使用任何请求数据之前,请先进行以下替换:
-
ORG_ID
是您在创建GcpAccessAdmin
角色。 -
GROUP_ID
是您之前创建的用户组的 ID。如果您没有群组 ID,则可以通过 调用
get
方法 针对Groups
资源。 -
POLICY_ID
是您组织的访问权限政策的 ID。 -
ACCESS_LEVEL
的格式如下accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。 -
DRY_RUN_ACCESS_LEVEL
是 您想了解的ACCESS_LEVEL
效果。ACCESS_LEVEL
的格式为accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
HTTP 方法和网址:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
请求 JSON 正文:
{ "groupKey": "GROUP_ID", "accessLevels": [ "ACCESS_LEVEL" ], "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
查看拒绝日志
创建试运行配置后,您可以查看日志以确定 其中试运行配置会拒绝访问。
下表列出了可用于创建和运行 查询以获取日志:
字段名称 | 说明 |
---|---|
protoPayload > authenticationInfo > principalEmail |
被拒绝访问权限的主账号的电子邮件 ID。 |
protoPayload > metadata > deniedApplications |
拒绝访问的应用的名称。 |
protoPayload > metadata > evaluationResult |
有效访问权限政策的评估结果。可能的值:
GRANTED 或 DENIED 。 |
protoPayload > metadata > appliedAccessLevels |
有效访问权限政策所需的已应用的访问权限级别。 |
protoPayload > metadata > appliedDryRunAccessLevels |
试运行访问权限政策所要求的已应用访问权限级别。 |
protoPayload > metadata > dryRunEvaluationResult |
试运行访问权限政策的评估结果,指示
强制执行访问权限政策时的预期操作。
可能的值:
GRANTED 或 DENIED 。 |
如需详细了解如何为日志创建查询,请参阅 日志记录查询语言。
控制台
在 Google Cloud 控制台导航菜单中,点击 Logging,然后点击日志浏览器。
在查询字段中,输入如下过滤条件的查询过滤条件: 然后点击运行查询。
severity="ERROR" AND (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"
在查询结果下查看日志。
gcloud
如需使用 gcloud CLI 查看日志,请运行如下命令:
gcloud logging read 'severity="ERROR" AND
(protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"'
管理访问权限绑定
为一组用户创建访问权限绑定后,对 Google Cloud 控制台和 Google Cloud API 是基于 以及对绑定的访问权限级别满意度
您可以查看自己创建的访问权限绑定的详细信息,对其进行修改或将其删除。
查看访问权限绑定
控制台
您可以查看组织的所有访问权限绑定, 访问绑定的详细信息
gcloud
如需查看所有访问权限绑定,请运行以下命令:
gcloud access-context-manager cloud-bindings list \ --organization ORG_ID
其中:
ORG_ID
是您在创建GcpAccessAdmin
角色时使用的组织的 ID。 ,了解所有最新动态。 如果access-context-manager/organization
属性未设置, 替换可选--organization
中的ORG_ID
标志替换为您创建GcpAccessAdmin
角色。如需查看访问权限绑定的详细信息,请运行以下命令:
gcloud access-context-manager cloud-bindings describe \ --binding=BINDING_ID
其中:
BINDING_ID
是 Cloud Storage 存储分区中的访问绑定标识符或完全限定标识符的 ID, 访问绑定
API
查看所有访问权限绑定:
在使用任何请求数据之前,请先进行以下替换:
-
ORG_ID
是您在创建GcpAccessAdmin
角色。 如果access-context-manager/organization
属性未设置, 替换可选--organization
中的ORG_ID
标志替换为您创建GcpAccessAdmin
角色。
HTTP 方法和网址:
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content您应该收到类似以下内容的 JSON 响应:
{ "name": string, "groupKey": string, "accessLevels": [ string ] "dryRunAccessLevels": [ string ] }
-
查看访问权限绑定的详细信息:
HTTP 方法和网址:
GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/BINDING_ID"PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content您应该收到类似以下内容的 JSON 响应:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
更新访问权限绑定
控制台
您可以根据需要更新访问权限绑定。
gcloud
要更新访问权限绑定(例如更改访问权限级别),请运行 以下命令:
gcloud access-context-manager cloud-bindings update \ --binding ACCESS_BINDING \ --level ACCESS_LEVEL
其中:
-
ACCESS_BINDING
的格式如下organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
。 -
ORG_ID
是您在创建GcpAccessAdmin
角色。 -
ACCESS_BINDING_NAME
是返回的唯一字符串 在创建访问绑定时为name
标识符指定的值。 - 根据需要替换 ACCESS_LEVEL 的值。
ACCESS_LEVEL
的格式如下accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
-
如需使用模拟访问权限级别更新访问权限绑定,请运行以下命令:
gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING --dry-run-level=DRY_RUN_ACCESS_LEVEL
替换
DRY_RUN_ACCESS_LEVEL
(如果需要)。格式如下:accessPolicies/
。POLICY_ID
/accessLevels/DRY_ACCESS_LEVEL_NAME
更新访问权限绑定并更改访问权限级别和试运行访问权限 请运行以下命令:
gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING --level=`ACCESS_LEVEL` --dry-run-level=DRY_RUN_ACCESS_LEVEL
将
ACCESS_LEVEL
的值替换为 根据需要DRY_RUN_ACCESS_LEVEL
。ACCESS_LEVEL
和DRY_RUN_ACCESS_LEVEL
形式为accessPolicies/
且POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
DRY_RUN_ACCESS_LEVEL
等同于ACCESS_LEVEL
。如需从访问权限绑定中移除试运行访问权限级别,请运行以下命令 命令:
gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING --dry-run-level=
API
更新访问权限绑定(例如更改访问权限级别),请执行以下操作:
在使用任何请求数据之前,请先进行以下替换:
-
ACCESS_BINDING_NAME
是创建访问权限绑定时为name
标识符返回的唯一字符串。 -
ACCESS_LEVEL
的格式如下accessPolicies/
。 在您创建访问权限级别后,可以在 Access Context Manager 中找到POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
的值。
HTTP 方法和网址:
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels
请求 JSON 正文:
{ "accessLevels": [ "ACCESS_LEVEL" ] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为
request.json
的文件中,然后执行以下命令:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels"PowerShell
将请求正文保存在名为
request.json
的文件中,然后执行以下命令:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels" | Select-Object -Expand Content您应该收到类似以下内容的 JSON 响应:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ] }
-
使用模拟访问权限级别更新访问权限绑定:
在使用任何请求数据之前,请先进行以下替换:
-
ACCESS_BINDING_NAME
是返回的唯一字符串 在创建访问绑定时为name
标识符指定的值。 -
DRY_RUN_ACCESS_LEVEL
是 您想了解的ACCESS_LEVEL
效果。ACCESS_LEVEL
的格式如下accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
HTTP 方法和网址:
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels
请求 JSON 正文:
{ "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为
request.json
的文件中,然后执行以下命令:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"PowerShell
将请求正文保存在名为
request.json
的文件中,然后执行以下命令:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content您应该收到类似以下内容的 JSON 响应:
{ name: "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", group_key: "045jfvxd0ybeul8", dry_run_access_levels: [ "accessPolicies/305009197125/accessLevels/another" ] }
-
更新访问权限绑定并更改访问权限级别和试运行访问权限 级别:
在使用任何请求数据之前,请先进行以下替换:
-
ACCESS_BINDING_NAME
是创建访问权限绑定时为name
标识符返回的唯一字符串。 -
ACCESS_LEVEL
的格式如下accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。 -
DRY_RUN_ACCESS_LEVEL
是您要了解其影响的ACCESS_LEVEL
。ACCESS_LEVEL
的格式如下accessPolicies/
。POLICY_ID
/accessLevels/ACCESS_LEVEL_NAME
POLICY_ID
和ACCESS_LEVEL_NAME
可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
HTTP 方法和网址:
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels
请求 JSON 正文:
{ "accessLevels": [ "ACCESS_LEVEL" ], "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为
request.json
的文件中,然后执行以下命令:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels"PowerShell
将请求正文保存在名为
request.json
的文件中,然后执行以下命令:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels" | Select-Object -Expand Content您应该收到类似以下内容的 JSON 响应:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
-
从访问权限绑定中移除试运行访问权限级别:
在使用任何请求数据之前,请先进行以下替换:
-
ACCESS_BINDING_NAME
是返回的唯一字符串 在创建访问绑定时为name
标识符指定的值。
HTTP 方法和网址:
PATCH PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels
请求 JSON 正文:
{ "dryRunAccessLevels": [ ] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为
request.json
的文件中,然后执行以下命令:curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"PowerShell
将请求正文保存在名为
request.json
的文件中,然后执行以下命令:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content您应该会收到一个成功的状态代码 (2xx) 和一个空响应。
-
删除访问权限绑定
控制台
您可以根据需要随时删除访问绑定。
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
其中:
-
ACCESS_BINDING
的格式如下organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
。 -
ACCESS_BINDING_NAME
是创建访问权限绑定时为name
标识符返回的唯一字符串。
API
在使用任何请求数据之前,请先进行以下替换:
-
ACCESS_BINDING_NAME
是返回的唯一字符串 在创建访问绑定时为name
标识符指定的值。
HTTP 方法和网址:
DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content
您应该会收到一个成功的状态代码 (2xx) 和一个空响应。
常见问题解答
新创建的访问权限绑定需要多长时间才能生效?
最长可能需要 24 小时。
如果我删除具有访问权限绑定的组,会发生什么情况?
组和绑定会被删除,组中的所有用户都被允许访问。
如果我删除访问权限绑定中使用的访问权限级别,会发生什么情况?
始终无法满足访问权限级别,该绑定组所有用户的访问将被拒绝。
如果一个用户属于多个具有访问权限绑定的组,会发生什么情况?
该用户只需满足其中一个组的访问权限级别即可获得访问权限。
不属于我的组织的用户会怎么样?
不属于您组织的任何用户不受访问权限绑定的约束,即使您已将其添加到受情境感知限制约束的用户组也是如此。
后续步骤
- 如需详细了解 Chrome Enterprise Premium 的审核日志,请参阅 审核日志记录。
- 如需详细了解 Access Context Manager 中的审核日志记录(包括会被记录的管理员操作的 API 操作的摘要),请参阅 Access Context Manager 审核日志记录信息。