管理 IAM 統一存取政策

您可以使用Google Cloud 控制台、gcloud CLI 或 REST API,建立、列出、查看、更新及刪除 IAM 統一存取政策 (UAP) 和政策繫結。

Agent Gateway 會使用 Identity-Aware Proxy (IAP),在代理、MCP 伺服器和端點強制執行這些輸出政策。如要瞭解政策的運作方式,請參閱「IAM UAP 總覽」。如需詳細的規則範例和 CEL 屬性,請參閱「建立 IAM UAP」。

必要的角色

如要取得管理 UAP 和政策繫結所需的權限,請要求管理員在專案中授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

建立 UAP

UAP 包含一或多個允許或拒絕規則。政策必須繫結至目標資源,才會生效。

如要進一步瞭解如何建立 UAP,請參閱「建立 IAM UAP」。

控制台

  1. 前往 Google Cloud 控制台的「Policies」(政策) 頁面:

    前往「政策」

  2. 在專案選取器中,選取要使用 UAP 的 Agent Gateway 所屬的專案。
  3. 如要為 Agent Gateway 輸出新增 IAM UAP,請按一下「 建立」。
  4. 在「Policy details」(政策詳細資料) 窗格中,執行下列操作:
    1. 按一下「政策」欄位。
    2. 在下拉式清單中,選取「建立新政策」。
    3. 在「Policy name」(政策名稱) 欄位中,輸入政策的描述性名稱。
    4. 在「Add Rules」(新增規則) 中,設定允許或拒絕規則和 CEL 條件。如需 UAP 設定步驟和範例,請參閱「建立 IAM UAP」。
    5. 按一下「建立」即可儲存規則。

gcloud

如要使用 gcloud CLI 建立 UAP,請在 JSON 檔案中定義政策規則,然後執行 create 指令:

gcloud iam access-policies create POLICY_NAME \
    --details-rules=POLICY_FILE \
    --project=PROJECT_ID \
    --location=global

更改下列內容:

  • POLICY_NAME:政策名稱
  • POLICY_FILE:政策檔案的路徑,例如:my-policy.json
  • PROJECT_ID:政策所在的專案 ID

API

如要使用 REST API 建立 UAP,請向 accessPolicies 端點發出 POST 要求:

curl -X POST \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies?accessPolicyId=POLICY_NAME" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
  "details": {
    "rules": [
      {
        "description": "RULE_DESCRIPTION",
        "effect": "ALLOW",
        "principals": [
          "principal://agents.global.proj-PROJECT_NUMBER.system.id.goog/resources/aiplatform/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_NAME"
        ],
        "operation": {
          "permissions": [
            "iap.resources.egressViaIAP"
          ]
        },
        "conditions": {
          "iap.googleapis.com": {
            "expression": "CEL_EXPRESSION"
          }
        }
      }
    ]
  }
}'

更改下列內容:

  • PROJECT_ID:專案 ID
  • POLICY_NAME:新政策的 ID
  • PROJECT_NUMBER:專案編號
  • LOCATION:代理位置
  • AGENT_NAME:來源代理 ID
  • CEL_EXPRESSION:CEL 條件運算式

將政策繫結至目標資源

如要強制執行 UAP,請將其繫結至目標資源範圍,例如專案或 Agent Gateway 執行個體。

控制台

儲存政策時,政策會自動繫結至專案。

gcloud

如要使用 gcloud CLI 將 UAP 繫結至目標資源,請執行下列指令:

gcloud iam policy-bindings create BINDING_NAME \
    --policy="projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME" \
    --target-resource="TARGET_RESOURCE" \
    --project=PROJECT_ID \
    --location=global

更改下列內容:

  • BINDING_NAME:政策繫結的名稱
  • PROJECT_ID:您的 Google Cloud 專案 ID
  • POLICY_NAME:存取權政策的名稱
  • TARGET_RESOURCE:專案的完整資源 URI,格式如下:
        //cloudresourcemanager.googleapis.com/projects/PROJECT_ID
        

API

如要使用 REST API 將 UAP 繫結至目標資源,請向 policyBindings 端點發出 POST 要求:

curl -X POST \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/policyBindings?policyBindingId=BINDING_NAME" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
  "policy": "projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME",
  "target": {
    "resource": "TARGET_RESOURCE"
  }
}'

更改下列內容:

  • PROJECT_ID:專案 ID
  • BINDING_NAME:政策繫結的名稱
  • POLICY_NAME:UAP 的名稱
  • TARGET_RESOURCE:專案的完整資源 URI,格式如下://cloudresourcemanager.googleapis.com/projects/PROJECT_ID

列出政策和政策繫結

您可以列出專案中的所有 UAP,或列出附加至目標資源的所有政策繫結。

列出 UAP

控制台

  1. 前往 Google Cloud 控制台的「Policies」(政策) 頁面。
  2. 專案中建立的所有 UAP 都會顯示在「Unified Access Policies」(統一存取政策) 分頁的清單中。

gcloud

如要列出專案中的 UAP,請執行下列指令:

gcloud iam access-policies list \
  --project=PROJECT_ID \
  --location=global

API

如要使用 REST API 列出 UAP,請向 accessPolicies 端點發出 GET 要求:

curl -X GET \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies" \
-H "Authorization: Bearer $(gcloud auth print-access-token)"

列出政策繫結

控制台

透過控制台管理的政策會自動繫結至專案,因此您必須使用 gcloud CLI 或 REST API 查看政策繫結。

gcloud

如要列出專案中的政策繫結,請執行下列指令:

gcloud iam policy-bindings list \
  --project=PROJECT_ID \
  --location=global

如要依特定目標資源篩選政策繫結,請指定 --target-resource 旗標:

gcloud iam policy-bindings list \
  --target-resource="TARGET_RESOURCE" \
  --project=PROJECT_ID \
  --location=global

API

如要使用 REST API 列出政策繫結,請向 policyBindings 端點發出 GET 要求:

curl -X GET \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/policyBindings" \
-H "Authorization: Bearer $(gcloud auth print-access-token)"

說明政策或政策繫結

您可以擷取特定 UAP 或政策繫結的詳細設定和規則。

描述 UAP

控制台

  1. 前往 Google Cloud 控制台的「Policies」(政策) 頁面:

    前往「政策」

  2. 在專案選取器中,選取要使用 UAP 的 Agent Gateway 所屬的專案。
  3. 在「UAPs」分頁的「Agent policies」(代理程式政策) 表格中,找出要說明的政策。
  4. 在政策所在的資料列中,依序按一下「More actions」(更多動作) 圖示 和「View rule」(查看規則)。

gcloud

如要說明特定 UAP,請執行下列指令:

gcloud iam access-policies describe POLICY_NAME \
  --project=PROJECT_ID \
  --location=global

API

如要使用 REST API 擷取特定 UAP,請提出 GET 要求:

curl -X GET \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME" \
-H "Authorization: Bearer $(gcloud auth print-access-token)"

說明政策繫結

控制台

透過控制台管理的政策會自動繫結至專案,因此您必須使用 gcloud CLI 或 REST API 查看政策繫結。

gcloud

如要說明特定政策繫結,請執行下列指令:

gcloud iam policy-bindings describe BINDING_NAME \
  --project=PROJECT_ID \
  --location=global

API

如要使用 REST API 擷取特定政策繫結,請提出 GET 要求:

curl -X GET \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/policyBindings/BINDING_NAME" \
-H "Authorization: Bearer $(gcloud auth print-access-token)"

更新政策和政策繫結

您可以更新現有 UAP 中的規則,或更新政策繫結參照的目標或政策。

更新 UAP

控制台

  1. 前往 Google Cloud 控制台的「Policies」(政策) 頁面:

    前往「政策」

  2. 在專案選取器中,選取要使用 UAP 的 Agent Gateway 所屬的專案。
  3. 在「UAPs」分頁的「Agent policies」(代理程式政策) 表格中,找出要編輯的政策列。
  4. 依序點選 「More actions」(更多動作) 和「Edit rule」(編輯規則)。
  5. 修改規則、作用、主體或 CEL 條件。
  6. 按一下「儲存」。

gcloud

如要使用 gcloud CLI 更新現有的 UAP,請將修改後的規則儲存至 JSON 檔案,然後執行下列指令:

gcloud iam access-policies update POLICY_NAME \
  --details-rules=POLICY_FILE.json \
  --project=PROJECT_ID \
  --location=global

API

如要使用 REST API 更新 UAP,請向 UAP 端點傳送 PATCH 要求:

curl -X PATCH \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME?updateMask=details" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
  "details": {
    "rules": [
      {
        "description": "RULE_DESCRIPTION",
        "effect": "ALLOW",
        "principals": [
          "principal://agents.global.proj-PROJECT_NUMBER.system.id.goog/resources/aiplatform/projects/PROJECT_ID/locations/LOCATION/reasoningEngines/AGENT_NAME"
        ],
        "operation": {
          "permissions": [
            "iap.resources.egressViaIAP"
          ]
        }
      }
    ]
  }
}'

更新政策繫結

控制台

如要更新政策繫結,請使用 gcloud CLI 或 REST API。

gcloud

如要更新政策繫結,改為參照其他政策或目標,請執行下列指令:

gcloud iam policy-bindings update BINDING_NAME \
  --policy="projects/PROJECT_ID/locations/global/accessPolicies/NEW_POLICY_NAME" \
  --project=PROJECT_ID \
  --location=global

API

如要使用 REST API 更新政策繫結,請提出 PATCH 要求:

curl -X PATCH \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/policyBindings/BINDING_NAME?updateMask=policy" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
  "policy": "projects/PROJECT_ID/locations/global/accessPolicies/NEW_POLICY_NAME"
}'

刪除政策和政策繫結

刪除政策繫結

控制台

如要刪除政策繫結,請使用 gcloud CLI 或 REST API。

gcloud

如要刪除政策繫結,請執行下列指令:

gcloud iam policy-bindings delete BINDING_NAME \
  --project=PROJECT_ID \
  --location=global

API

如要使用 REST API 刪除政策繫結,請提出 DELETE 要求:

curl -X DELETE \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/policyBindings/BINDING_NAME" \
-H "Authorization: Bearer $(gcloud auth print-access-token)"

刪除 UAP

控制台

如要刪除 UAP,必須刪除政策中的所有規則。

  1. 前往 Google Cloud 控制台的「Policies」(政策) 頁面:

    前往「政策」

  2. 在專案選取器中,選取要使用 UAP 的 Agent Gateway 所屬的專案。
  3. 在「Unified Access Policies」(統一存取政策) 分頁的「Agent Policies」(代理程式政策) 表格中,篩選 「Filter」(篩選器),或找出要刪除的政策。
  4. 依序點選 「More actions」(更多動作) 和「Delete rule」(刪除規則)。

gcloud

如要在刪除 UAP 的繫結後刪除 UAP,請執行下列指令:

gcloud iam access-policies delete POLICY_NAME \
  --project=PROJECT_ID \
  --location=global

API

如要使用 REST API 刪除 UAP,請提出 DELETE 要求:

curl -X DELETE \
"https://iam.googleapis.com/v3beta/projects/PROJECT_ID/locations/global/accessPolicies/POLICY_NAME" \
-H "Authorization: Bearer $(gcloud auth print-access-token)"

後續步驟

總覽

概略瞭解 Agent Gateway。

指南

瞭解如何設定內容和業務政策。

指南

瞭解如何測試政策。