將政策分析結果寫入 Cloud Storage

本頁面說明如何以非同步方式分析 Identity and Access Management (IAM) 政策,並將結果寫入 Cloud Storage。這項功能與分析 IAM 政策的功能大致相同,只是分析結果會寫入 Cloud Storage 值區

事前準備

Enable the Cloud Asset API.

Enable the API

您必須在要用來傳送查詢的專案中啟用 API。這個資源不必與您指定查詢範圍的資源相同。

必要角色和權限

如要執行政策分析並將結果匯出至 Cloud Storage,您必須具備下列角色和權限。

必要的 IAM 角色

如要取得分析政策及將結果匯出至 BigQuery 所需的權限,請要求管理員為您授予下列 IAM 角色,以便您將查詢範圍限定為專案、資料夾或機構:

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

這些預先定義的角色包含分析政策並將結果匯出至 BigQuery 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

您必須具備下列權限,才能分析政策並將結果匯出至 BigQuery:

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • storage.objects.create
  • 如要分析含有自訂 IAM 角色的政策,請按照下列步驟操作: iam.roles.get
  • 如要使用 Google Cloud CLI 分析政策,請按照下列步驟操作: serviceusage.services.use

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

必要的 Google Workspace 權限

如要查看某個使用者是否因加入 Google Workspace 群組而擁有特定角色或權限,您必須具備 groups.read Google Workspace 權限。此權限包含在「群組讀取權限管理員」角色,以及「群組管理員」或「超級管理員」等權限較高的角色。詳情請參閱「指派特定管理員角色」。

分析政策並匯出結果

AnalyzeIamPolicyLongrunning 方法可讓您發出分析要求,並在指定的 Cloud Storage 值區中取得結果。

gcloud

使用下列任何指令資料之前,請先替換以下項目:

  • RESOURCE_TYPE:您要將搜尋範圍限制在哪種資源上。系統只會分析附加至此資源及其子項的 IAM 允許政策。請使用 projectfolderorganization 值。
  • RESOURCE_ID:您要將搜尋範圍設為Google Cloud 專案、資料夾或機構的 ID。系統只會分析這項資源及其子項所附加的 IAM 允許政策。專案 ID 是英數字元字串,例如 my-project。資料夾和機構 ID 為數字,例如 123456789012
  • PRINCIPAL:您要分析存取權的實體,格式為 PRINCIPAL_TYPE:ID,例如 user:my-user@example.com。如需主要類型的完整清單,請參閱「主要識別碼」。
  • PERMISSIONS:以逗號分隔的清單,列出您要檢查的權限,例如 compute.instances.get,compute.instances.start。如果您列出多個權限,政策分析工具會檢查所列的任何權限。
  • STORAGE_OBJECT_URI:您要匯出分析結果的 Cloud Storage 物件專屬資源 ID,格式為 gs://BUCKET_NAME/OBJECT_NAME,例如 gs://my-bucket/analysis.json

執行 gcloud asset analyze-iam-policy-longrunning 指令:

Linux、macOS 或 Cloud Shell

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID \
    --full-resource-name=FULL_RESOURCE_NAME \
    --identity=PRINCIPAL \
    --permissions='PERMISSIONS' \
    --gcs-output-path=STORAGE_OBJECT_URI

Windows (PowerShell)

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID `
    --full-resource-name=FULL_RESOURCE_NAME `
    --identity=PRINCIPAL `
    --permissions='PERMISSIONS' `
    --gcs-output-path=STORAGE_OBJECT_URI

Windows (cmd.exe)

gcloud asset analyze-iam-policy-longrunning --RESOURCE_TYPE=RESOURCE_ID ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --identity=PRINCIPAL ^
    --permissions='PERMISSIONS' ^
    --gcs-output-path=STORAGE_OBJECT_URI

您應該會收到類似以下的回應:

Analyze IAM Policy in progress.
Use [gcloud asset operations describe projects/my-project/operations/AnalyzeIamPolicyLongrunning/1195028485971902504711950280359719028666] to check the status of the operation.

REST

如要分析 IAM 允許政策並將結果匯出至 Cloud Storage,請使用 Cloud Asset Inventory API 的 analyzeIamPolicyLongrunning 方法。

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

  • RESOURCE_TYPE:您要將搜尋範圍限制在哪種資源上。系統只會分析附加至此資源及其子項的 IAM 允許政策。請使用 projectsfoldersorganizations 值。
  • RESOURCE_ID:您要將搜尋範圍設為Google Cloud 專案、資料夾或機構的 ID。系統只會分析這項資源及其子項所附加的 IAM 允許政策。專案 ID 是英數字元字串,例如 my-project。資料夾和機構 ID 為數字,例如 123456789012
  • FULL_RESOURCE_NAME:選用。您要分析存取權的資源完整資源名稱。如需完整的資源名稱格式清單,請參閱「資源名稱格式」。
  • PRINCIPAL:選用。您要分析存取權的使用者,格式為 PRINCIPAL_TYPE:ID,例如 user:my-user@example.com。如需主要類型的完整清單,請參閱「主要識別碼」。
  • PERMISSION_1PERMISSION_2... PERMISSION_N:選填。您要檢查的權限,例如 compute.instances.get。如果您列出多個權限,政策分析工具會檢查所列的任何權限。
  • STORAGE_OBJECT_URI:您要匯出分析結果的 Cloud Storage 物件專屬資源 ID,格式為 gs://BUCKET_NAME/OBJECT_NAME,例如 gs://my-bucket/analysis.json

HTTP 方法和網址:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicyLongrunning

JSON 要求主體:

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "identitySelector": {
      "identity": "PRINCIPAL"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    },
    "outputConfig": {
      "gcsDestination": {
        "uri": "STORAGE_OBJECT_URI"
      }
    }
  }
}

如要傳送要求,請展開以下其中一個選項:

您應該會收到如下的 JSON 回應:

{
  "name": "projects/my-project/operations/AnalyzeIamPolicyLongrunning/1206385342502762515812063858425027606003",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.asset.v1.AnalyzeIamPolicyLongrunningMetadata",
    "createTime": "2022-04-12T21:31:10.753173929Z"
  }
}

查看 IAM 政策分析結果

如要查看 IAM 政策分析結果,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Bucket」頁面。

    前往「Buckets」(值區)

  2. 開啟您寫入分析結果的新檔案。

結果會列出 {identity, role(s)/permission(s), resource} 的元組,以及產生這些元組的 IAM 政策。