本页面介绍了如何管理现有访问权限绑定,这些绑定定义了如何将访问权限政策应用于用户群组。您可以根据需要查看、修改和删除这些绑定。访问权限绑定决定了如何将访问权限级别和会话控制应用于用户组。
如需了解如何创建访问权限绑定,以及 访问权限级别和会话控制的更多详细信息,请参阅使用访问权限绑定将政策应用于用户群组。
查看访问权限绑定
为一组用户创建访问权限绑定后,系统会根据是否满足绑定的访问权限级别来控制对 Google Cloud 控制台和 Google Cloud API 的访问权限。
您可以查看所创建访问权限绑定的详细信息、对其进行修改或将其删除。
控制台
在 Google Cloud 控制台中,前往 Access Context Manager 页面。
如果系统提示您,请选择一个项目。Access Context Manager 页面上会列出访问权限绑定列表。
gcloud
如需查看所有访问权限绑定,请运行以下命令:
gcloud access-context-manager cloud-bindings list \ --organization ORG_IDORG_ID:您的组织 ID。 如果尚未设置
access-context-manager/organization属性,请将可选--organization标志中的ORG_ID替换为您在创建GcpAccessAdmin角色时使用的组织的 ID。如需查看访问权限绑定的详细信息,请运行以下命令:
gcloud access-context-manager cloud-bindings describe \ --binding=BINDING_IDBINDING_ID是访问权限绑定的 ID 或访问权限绑定的完全限定标识符。
API
查看所有访问权限绑定:
在使用任何请求数据之前, 请先进行以下替换:
-
ORG_ID是您在创建GcpAccessAdmin角色时使用的组织的 ID。 如果尚未设置access-context-manager/organization属性,请将可选--organization标志中的ORG_ID替换为您在创建GcpAccessAdmin角色时使用的组织的 ID。
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" ] }
更新访问权限绑定
您可以更新访问权限绑定以执行以下操作:
- 添加、移除或更改具有政策的应用。
- 修改用户群组中应用的访问权限级别。
- 添加新的试运行访问权限级别,或将现有访问权限级别提升为正式级别。
控制台
在 Google Cloud 控制台中,前往 Access Context Manager 页面。
如果系统提示您,请选择一个项目。
在 Access Context Manager 页面上,选择一个访问权限绑定,然后点击修改 以更新该绑定。
您无法在控制台中更新具有试运行访问权限级别或会话 控制的访问权限绑定。 Google Cloud
gcloud
创建一个 YAML 绑定文件。
gcloud access-context-manager cloud-bindings update --binding ACCESS_BINDING --binding-file BINDING_FILE_PATH [ --level DEFAULT_ACCESS_LEVEL ] [ --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL ] [ --session-length=DEFAULT_SESSION_LENGTH ] [ --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD ]替换以下内容:
-
ACCESS_BINDING的格式为organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. -
BINDING_FILE_PATH:包含访问权限绑定方案的 YAML 文件的路径。
绑定文件仅支持
scopedAccessSettings。 -
DEFAULT_ACCESS_LEVEL:可选的访问权限级别名称,格式为
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME。将POLICY_ID替换为访问权限政策 ID,并将ACCESS_LEVEL_NAME替换为访问权限级别名称。 - DEFAULT_DRY_RUN_ACCESS_LEVEL_2:可选的访问权限级别名称,格式为 `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME`。 如果 YAML 中未指定任何应用,请添加此标志以默认将指定的试运行访问权限级别应用于所有应用。
-
DEFAULT_SESSION_LENGTH:可选的会话时长,采用小时格式,
例如
15h表示 15 小时,或2h表示 2 小时。 -
DEFAULT_SESSION_REAUTH_METHOD:可选的方法,用于提示用户重新验证身份,必须是以下方法之一:
LOGIN:应用标准登录,其中可以包含 MFA 或其他 Workspace 定义的因素。PASSWORD:仅要求提供密码,即使定义了其他因素也是如此。如果密码是使用外部 IdP 进行管理的,则用户会被重定向到 IdP。如果 IdP 会话处于有效状态,则用户会被隐式重新验证。如果 IdP 会话处于无效状态,则用户必须通过 IdP 登录。SECURITY_KEY:要求提供硬件安全密钥。
--level和--binding-file实参如何协同工作- 如果您仅使用
--binding-file,则只有文件中的应用会应用政策。 - 如果您仅使用
--level,则访问权限级别将应用于所有应用。 - 如果您同时使用这两个实参,则规则会合并。
--level值适用于所有应用,而--binding-file指定的 YAML 文件中的政策仅适用于文件中定义的应用。
使用会话控制
- 如需为所有应用设置默认会话控制,请使用
--session-length和--session-reauth-method。 - 如果您还在 YAML 文件中定义了会话控制,则这些会话控制会替换这些特定应用的默认设置。
- 您必须同时使用
--session-length和--session-reauth-method。
如需移除默认访问权限级别或默认试运行访问权限级别,请提供空字符串,例如
--level=或--dry-run-level=。如果未提供这些实参,update命令将不会进行任何更改。如需移除会话控制,请设置
--session-length=0。-
API
创建一个 JSON 正文。
{ "accessLevels": [ "DEFAULT_ACCESS_LEVEL" ], "scopedAccessSettings": [ { "scope": { "clientScope": { "restrictedClientApplication": { "clientId": "CLIENT_ID" } } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_A" ], "sessionSettings": { "sessionLength": "SESSION_LENGTH", "sessionReauthMethod": "SESSION_REAUTH_METHOD", "sessionLengthEnabled": true } } }, { "scope": { "clientScope": { "restrictedClientApplication": { "name": "CLIENT_NAME" } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_C" ] } } } ] }替换以下内容:
-
DEFAULT_ACCESS_LEVEL:可选的访问权限级别名称,格式为
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME。将POLICY_ID替换为访问权限政策 ID,并将ACCESS_LEVEL_NAME替换为访问权限级别名称。 - CLIENT_ID:OAuth 客户端 ID。当应用包含
sessionSettings时,您可以使用clientId或name。 - ACCESS_LEVEL_A:访问权限级别名称,格式为
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME。 - SESSION_LENGTH:会话时长,采用 ISO 8601 时长
格式,例如
30m表示 30 分钟,或2h表示 2 小时。 SESSION_REAUTH_METHOD:可选的方法,用于提示用户 重新验证身份,必须是以下方法之一:
LOGIN:应用标准登录,其中可以包含 MFA 或其他 Workspace 定义的因素。PASSWORD:仅要求提供密码,即使定义了其他因素也是如此。如果密码是使用外部 IdP 进行管理的,则用户会被重定向到 IdP。如果 IdP 会话处于有效状态,则用户会被隐式重新验证。如果 IdP 会话处于无效状态,则用户必须通过 IdP 登录。SECURITY_KEY:要求提供硬件安全密钥。
CLIENT_NAME:客户端名称。当应用包含
sessionSettings时,您可以使用name或clientId。ACCESS_LEVEL_C:访问权限级别名称,格式为
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME。
-
DEFAULT_ACCESS_LEVEL:可选的访问权限级别名称,格式为
发送 PATCH 请求。
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK替换以下内容:
-
ACCESS_BINDING的格式为organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. - FIELD_MASK:必需的逗号分隔列表,用于指定您要更新的字段。这会告知 API 要修改访问权限绑定的哪些部分。
fieldMask应包含您要更新的请求正文中的顶级 JSON 键,其中可以包含accessLevels、dryRunAccessLevels和scopedAccessSettings。如果成功,您应该会收到 JSON 对象的表示形式。 如果出现问题,您会收到一条错误消息。
-
删除访问权限绑定
控制台
在 Google Cloud 控制台中,前往 Access Context Manager 页面。
如果系统提示您,请选择一个项目。
在 Access Context Manager 页面上,选择一个访问权限绑定,然后点击删除 。
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) 和一个空响应。