保护 Google Cloud 控制台和 Google Cloud API

本文档介绍了如何保护对 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,请完成 操作步骤:

  1. [可选] 将端点验证部署到组织中的设备。
  2. 在 Access Context Manager 中创建访问权限级别。
  3. 创建一组受情境感知限制约束的用户。
  4. 获取所需的 Identity and Access Management 权限。
  5. 创建强制执行情境感知规则的访问权限绑定 适用于 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 权限。

控制台

  1. 转到 Google Cloud 控制台中的 IAM 和管理页面。

    进入“IAM 和管理”

  2. 点击添加并配置以下内容:

    • 新成员:指定要授予权限的用户或群组。
    • 选择角色:选择 Access Context Manager > Cloud Access Binding Admin
  3. 点击保存

gcloud

  1. 确保您已经过身份验证并拥有在组织级层添加 IAM 权限的足够权限。您至少需要具有 Organization Admin 角色。

    确认拥有适当权限后,运行以下命令进行登录:

    gcloud auth login
    
  2. 通过运行以下命令来分配 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 而定义。

您可以通过以下任一方式创建访问权限绑定:

  • 群组和访问权限级别之间的访问权限绑定。
  • 通过试运行配置访问群组与访问权限级别之间的访问绑定。 通过试运行配置,您可以在 或是在群组、访问权限级别和 试运行访问权限级别

创建具有访问权限级别的访问权限绑定

控制台

  1. 前往 Google Cloud 控制台中的 Chrome Enterprise Premium 页面。

    前往 Chrome Enterprise Premium

  2. 选择一个组织,然后点击选择

  3. 点击管理访问权限以选择哪些用户组应拥有访问权限。

  4. 点击添加并配置以下内容:

    • 成员组:指定要授予访问权限的群组。 您只能选择尚未绑定到访问权限级别的群组。
    • 选择访问权限级别:选择应应用于该群组的访问权限级别。
  5. 点击保存

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 角色。 如果 access-context-manager/organization 属性未设置, 替换可选--organization中的ORG_ID 标志替换为您创建 GcpAccessAdmin 角色。
  • POLICY_ID 是您的组织的访问权限政策 ID。
  • ACCESS_LEVEL的格式如下 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. POLICY_IDACCESS_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_IDACCESS_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 角色。 如果 access-context-manager/organization 属性未设置, 替换可选--organization中的ORG_ID 标志替换为您创建 GcpAccessAdmin 角色。
  • POLICY_ID 是您的组织的访问权限政策 ID。
  • DRY_RUN_ACCESS_LEVEL 是 您想了解的ACCESS_LEVEL 效果。ACCESS_LEVEL的格式如下 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. POLICY_IDACCESS_LEVEL_NAME可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。

API

在使用任何请求数据之前,请先进行以下替换:

  • ORG_ID 是您在创建 GcpAccessAdmin 角色。
  • GROUP_ID 是执行相应操作的用户群组的 之前创建的

    如果您没有群组 ID,则可以通过 调用 get 方法 针对 Groups 资源。

  • POLICY_ID 是您的组织的访问权限政策 ID。
  • DRY_RUN_ACCESS_LEVEL 是 您想了解的ACCESS_LEVEL 效果。ACCESS_LEVEL的格式如下 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. POLICY_IDACCESS_LEVEL_NAME可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。

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,则可以通过 调用 get 方法 针对 Groups 资源。

  • ORG_ID 是您在创建 GcpAccessAdmin 角色。 如果 access-context-manager/organization 属性未设置, 替换可选--organization中的ORG_ID 标志替换为您创建 GcpAccessAdmin 角色。
  • POLICY_ID 是您的组织的访问权限政策 ID。
  • ACCESS_LEVEL的格式如下 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. POLICY_IDACCESS_LEVEL_NAME可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
  • DRY_RUN_ACCESS_LEVEL 是 您想了解的ACCESS_LEVEL 效果。ACCESS_LEVEL的格式如下 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. POLICY_IDACCESS_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_IDACCESS_LEVEL_NAME可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
  • DRY_RUN_ACCESS_LEVEL 是 您想了解的ACCESS_LEVEL 效果。ACCESS_LEVEL的格式如下 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. POLICY_IDACCESS_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 有效访问权限政策的评估结果。可能的值: GRANTEDDENIED
protoPayload > metadata > appliedAccessLevels 有效访问权限政策所需的已应用的访问权限级别。
protoPayload > metadata > appliedDryRunAccessLevels 试运行访问权限政策所需的已应用的访问权限级别。
protoPayload > metadata > dryRunEvaluationResult 试运行访问权限政策的评估结果,指示 强制执行访问权限政策时的预期操作。 可能的值: GRANTEDDENIED

如需详细了解如何为日志创建查询,请参阅 日志记录查询语言

控制台

  1. 在 Google Cloud 控制台导航菜单中,点击 Logging,然后点击日志浏览器

    转到日志浏览器

  2. 查询字段中,输入如下过滤条件的查询过滤条件: 然后点击运行查询

    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"
    
  3. 查询结果下查看日志。

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 角色。 . 如果 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_IDACCESS_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_LEVELACCESS_LEVELDRY_RUN_ACCESS_LEVEL 形式为 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAMEDRY_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/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. POLICY_IDACCESS_LEVEL_NAME可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。

    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_IDACCESS_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_IDACCESS_LEVEL_NAME可以在以下位置找到: Access Context Manager,从创建访问权限级别开始。
    • DRY_RUN_ACCESS_LEVEL 是 您想了解的ACCESS_LEVEL 效果。ACCESS_LEVEL的格式如下 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. POLICY_IDACCESS_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 小时。

  • 如果我删除具有访问权限绑定的组,会发生什么情况?

    组和绑定会被删除,组中的所有用户都被允许访问。

  • 如果我删除访问权限绑定中使用的访问权限级别,会发生什么情况?

    始终无法满足访问权限级别,该绑定组所有用户的访问将被拒绝。

  • 如果一个用户属于多个具有访问权限绑定的组,会发生什么情况?

    该用户只需满足其中一个组的访问权限级别即可获得访问权限。

  • 不属于我的组织的用户会怎么样?

    不属于您组织的任何用户不受访问权限绑定的约束,即使您已将其添加到受情境感知限制约束的用户组也是如此。

后续步骤