管理存取綁定

本頁說明如何管理現有的存取權繫結,這些繫結會定義存取權政策套用至使用者群組的方式。您可以視需要查看、修改及刪除這些繫結。存取權繫結會決定如何將存取層級和工作階段控制項套用至使用者群組。

如要瞭解如何建立存取權繫結,以及存取層級和工作階段控管的詳細資訊,請參閱透過存取權繫結將政策套用至使用者群組

查看存取權繫結

為使用者群組建立存取權繫結後,系統會根據繫結的存取層級是否符合條件,控管使用者對Google Cloud 控制台和 Google Cloud API 的存取權。

您可以查看、編輯或刪除您建立的存取權繫結詳細資料。

主控台

  1. 前往 Google Cloud 控制台的「Access Context Manager」頁面。

    前往 Access Context Manager

  2. 系統顯示提示時,請選取專案。存取權繫結清單會列在 Access Context Manager 頁面上。

gcloud

  • 如要查看所有存取權繫結,請執行下列指令:

      gcloud access-context-manager cloud-bindings list \
       --organization ORG_ID
    

    ORG_ID:您的機構 ID。 如果尚未設定 access-context-manager/organization 屬性,請將選用 --organization 旗標中的 ORG_ID 替換為您建立 GcpAccessAdmin 角色時使用的機構 ID。

  • 如要查看存取權繫結的詳細資料,請執行下列指令:

      gcloud access-context-manager cloud-bindings describe \
      --binding=BINDING_ID
    

    BINDING_ID 是存取權繫結的 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"
      ]
    }
    
    

更新存取權繫結

您可以更新存取權繫結,執行下列操作:

  • 新增、移除或變更套用政策的應用程式。
  • 修改使用者群組中應用程式的存取層級。
  • 新增模擬測試存取層級,或將現有層級升級為正式層級。

主控台

  1. 前往 Google Cloud 控制台的「Access Context Manager」頁面。

    前往 Access Context Manager

  2. 系統顯示提示時,請選取專案。

  3. 在 Access Context Manager 頁面中選取存取權繫結,然後按一下「編輯」即可更新。

您無法在 Google Cloud 控制台中,使用模擬測試存取層級或工作階段控制項更新存取權繫結。

gcloud

  1. 建立 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:選用,使用 ISO 8601 期間格式的會話時間長度,例如 30m 代表 30 分鐘,2h 代表兩小時。
    • DEFAULT_SESSION_REAUTH_METHOD:這個選用方法會要求使用者重新驗證身分,且必須符合下列其中一項條件:
      • LOGIN:套用標準登入程序,可能包含多重驗證或其他 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

  1. 建立 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
    • ACCESS_LEVEL_A:存取層級名稱,格式為 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
    • SESSION_LENGTH:工作階段時間長度,採用 ISO 8601 時間長度格式,例如 30m 代表 30 分鐘,2h 代表兩小時。
    • SESSION_REAUTH_METHOD:選用方法,可要求使用者重新驗證身分,必須是下列其中一種:

      • LOGIN:套用標準登入程序,可能包含多重驗證或其他 Workspace 定義的因素。
      • PASSWORD:只要求輸入密碼,即使已定義其他因素也一樣。如果密碼是由外部 IdP 管理,系統會將使用者重新導向至該 IdP。如果 IdP 工作階段有效,系統會隱含地重新驗證使用者身分。如果 IdP 未上線,使用者必須透過 IdP 登入。
      • SECURITY_KEY:必須使用實體安全金鑰。
    • CLIENT_NAME:用戶端名稱。如果應用程式包含 sessionSettings,您就無法使用用戶端名稱。請改用 OAuth 用戶端 ID。

    • ACCESS_LEVEL_C:存取層級名稱,格式為 accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME

  2. 傳送 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 金鑰,當中可包含 accessLevelsdryRunAccessLevelsscopedAccessSettings

    如果成功,您應該會收到 JSON 物件的表示法。 如有問題,系統會顯示錯誤訊息。

刪除存取權繫結

主控台

  1. 前往 Google Cloud 控制台的「Access Context Manager」頁面。

    前往 Access Context Manager

  2. 系統顯示提示時,請選取專案。

  3. 在 Access Context Manager 頁面中選取存取權繫結,然後按一下「Delete」(刪除)

gcloud

   gcloud access-context-manager cloud-bindings delete \
       --binding ACCESS_BINDING

更改下列內容:

  • ACCESS_BINDING 的格式為 organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
  • ACCESS_BINDING_NAME 是建立存取權繫結時,為 name ID 傳回的專屬字串。

API

使用任何要求資料之前,請先替換以下項目:

  • ACCESS_BINDING_NAME 是建立存取權繫結時,為 name ID 傳回的專屬字串。

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) 和空白回應。