本頁說明如何以非同步方式分析 Identity and Access Management (IAM) 政策,並將分析結果寫入 Cloud Storage。這項功能與分析 IAM 政策大致相同,但分析結果會寫入 Cloud Storage 值區。
事前準備
啟用 Cloud Asset API。
啟用 API 時所需的角色
如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色。
您必須在用於傳送查詢的專案中啟用 API。這不一定要是您查詢範圍內的資源。
必要角色和權限
如要執行政策分析並將結果匯出至 Cloud Storage,您必須具備下列角色和權限。
必要的 IAM 角色
如要取得分析政策並將結果匯出至 BigQuery 所需的權限,請要求系統管理員在您要將查詢範圍設為的專案、資料夾或組織中,授予您下列 IAM 角色:
- Cloud Asset Viewer (
roles/cloudasset.viewer) - Storage 物件建立者 (
roles/storage.objectCreator) -
如要使用自訂 IAM 角色分析政策,請使用角色檢視器 (
roles/iam.roleViewer)。 -
如要使用 Google Cloud CLI 分析政策,請執行下列步驟:
服務使用情形消費者 (
roles/serviceusage.serviceUsageConsumer)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備分析政策,以及將結果匯出至 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 允許政策。請使用project、folder或organization值。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 允許政策。請使用projects、folders或organizations值。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_1、PERMISSION_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 政策分析結果,請按照下列步驟操作:
前往 Google Cloud 控制台的「Bucket」頁面。
開啟您在其中撰寫分析的新檔案。
結果會列出元組,以及產生這些元組的 IAM 政策。{identity, role(s)/permission(s), resource}