查看 IAM 允許政策記錄

本頁說明如何查看 IAM 允許政策的變更記錄。

如要查看資源允許政策的變更,請在稽核記錄中搜尋含有 SetIamPolicy 方法的項目。

您也可以使用 Cloud Asset Inventory 檢查允許政策變更。

查看允許政策異動 (SetIamPolicy)

如要查看允許的政策變更,請查看稽核記錄中包含 SetIamPolicy 方法的項目。您可以使用Google Cloud 控制台或 gcloud CLI 查看稽核記錄。

控制台

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

    前往記錄檔探索工具

  2. 在查詢編輯器中輸入下列任一查詢。這些查詢會在稽核記錄中搜尋 protoPayloadmethodName 欄位含有 SetIamPolicy 的項目:

    • 如要取得資源的所有允許政策變更記錄,請使用下列查詢:

      logName="RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity"
      protoPayload.methodName:SetIamPolicy
      
    • 如要取得涉及特定使用者或服務帳戶的允許政策變更記錄,請使用下列查詢:

      logName="RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity"
      protoPayload.methodName:SetIamPolicy
      protoPayload.serviceData.policyDelta.bindingDeltas.member:"EMAIL_ADDRESS"
      

      提供以下這些值:

      • RESOURCE_TYPE:您要列出稽核記錄的資源類型。請使用下列其中一個值:projectsfoldersorganizations
      • RESOURCE_ID:您的 Google Cloud 專案、資料夾或機構 ID。專案 ID 為英數字元,例如 my-project。資料夾和機構 ID 是數字,例如 123456789012
      • EMAIL_ADDRESS:使用者或服務帳戶的電子郵件地址。例如:example-service-account@example-project.iam.gserviceaccount.com
  3. 如要執行查詢,請按一下「執行查詢」

  4. 使用「時間軸」選取器,為查詢指定適當的時間範圍。或者,您也可以直接在查詢編輯器中新增時間戳記運算式。詳情請參閱「依時間範圍查看記錄」。

gcloud

gcloud logging read 指令會讀取記錄項目。

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

  • RESOURCE_TYPE:您要列出稽核記錄的資源類型。請使用 projectsfoldersorganizations 值。
  • RESOURCE_ID:您的 Google Cloud專案、機構或資料夾 ID。專案 ID 為英數字串,例如 my-project。資料夾和機構 ID 為數字,例如 123456789012
  • TIME_PERIOD:您要列出稽核記錄的時間範圍。 傳回的項目不會早於這個值。如未指定,則預設值為 1d。如要瞭解時間格式,請參閱 gcloud topic datetimes
  • RESOURCE_TYPE_SINGULAR:您要列出稽核記錄的資源類型。請使用 projectfolderorganization 值。

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud logging read \
    'logName:RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity
    AND protoPayload.methodName=SetIamPolicy' \
    --freshness=TIME_PERIOD \
    --RESOURCE_TYPE_SINGULAR=RESOURCE_ID

Windows (PowerShell)

gcloud logging read `
    'logName:RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity
    AND protoPayload.methodName=SetIamPolicy' `
    --freshness=TIME_PERIOD `
    --RESOURCE_TYPE_SINGULAR=RESOURCE_ID

Windows (cmd.exe)

gcloud logging read ^
    'logName:RESOURCE_TYPE/RESOURCE_ID/logs/cloudaudit.googleapis.com%2Factivity
    AND protoPayload.methodName=SetIamPolicy' ^
    --freshness=TIME_PERIOD ^
    --RESOURCE_TYPE_SINGULAR=RESOURCE_ID

使用 Cloud Asset Inventory 查看允許政策異動

您也可以在 Google Cloud 控制台或 gcloud CLI 中,使用 Cloud Asset Inventory 查看允許的政策變更。

控制台

  1. 前往 Google Cloud 控制台的「資產清單」頁面。

    前往 Asset Inventory

  2. 按一下「IAM 政策」分頁標籤。

  3. 在「篩選器」欄位中執行下列查詢:

    Resource : RESOURCE_ID

    RESOURCE_ID 替換為專案、資料夾或機構 ID。 Google Cloud專案 ID 為英數字元,例如 my-project。資料夾和機構 ID 是數字,例如 123456789012

  4. 如要查看資源允許政策的變更記錄,請按一下資源名稱,然後選取「變更記錄」分頁標籤。

  5. 如要比較資源的允許政策變更,請從「選取要比較的記錄」選單中選取兩筆不同時間戳記的記錄。

gcloud

The gcloud asset get-history command gets the updated history of allow policies on an asset that overlaps a time window.

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

  • RESOURCE_TYPE:您要列出稽核記錄的資源類型。請使用 projectfolderorganization 值。
  • RESOURCE_ID:您的 Google Cloud專案、機構或資料夾 ID。專案 ID 為英數字串,例如 my-project。資料夾和機構 ID 為數字,例如 123456789012
  • ASSET_NAME:以逗號分隔的格式化資源名稱清單,列出您要查看允許政策記錄的資源。例如://cloudresourcemanager.googleapis.com/projects/my-project。這些資源可以是接受允許政策的任何資源類型。
  • START_TIME:時間範圍的開始時間。時間範圍最長為 7 天。這個值必須是目前時間,或過去 35 天內的時間。如要瞭解時間格式,請參閱 gcloud topic datetimes
  • END_TIME:選用。時間範圍的結束時間。時間範圍最長為 7 天。這個值必須是目前時間,或過去 35 天內的時間。如未提供,系統會假設結束時間為目前時間。如要瞭解時間格式,請參閱 gcloud topic datetimes

執行下列指令:

Linux、macOS 或 Cloud Shell

gcloud asset get-history \
    --RESOURCE_TYPE=RESOURCE_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --content-type=iam-policy \
    --start-time=START_TIME \
    --end-time=END_TIME

Windows (PowerShell)

gcloud asset get-history `
    --RESOURCE_TYPE=RESOURCE_ID `
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... `
    --content-type=iam-policy `
    --start-time=START_TIME `
    --end-time=END_TIME

Windows (cmd.exe)

gcloud asset get-history ^
    --RESOURCE_TYPE=RESOURCE_ID ^
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... ^
    --content-type=iam-policy ^
    --start-time=START_TIME ^
    --end-time=END_TIME