將政策分析結果寫入 Cloud Storage

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

事前準備

啟用 Cloud Asset API。

啟用 API 時所需的角色

如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

啟用 API

您必須在用於傳送查詢的專案中啟用 API。這不一定要是您查詢範圍內的資源。

必要角色和權限

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

必要的 IAM 角色

如要取得分析政策並將結果匯出至 BigQuery 所需的權限,請要求系統管理員在您要將查詢範圍設為的專案、資料夾或組織中,授予您下列 IAM 角色:

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

這些預先定義的角色具備分析政策,以及將結果匯出至 BigQuery 所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要分析政策並將結果匯出至 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.readGoogle 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。如需主體類型的完整清單,請參閱「主體 ID」。
  • 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。如需主體類型的完整清單,請參閱「主體 ID」。
  • 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. 開啟您在其中撰寫分析的新檔案。

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