從稽核記錄擷取 VPC Service Controls 錯誤

本頁面說明如何使用 Cloud Logging 找出 VPC Service Controls 錯誤。

VPC Service Controls 可隔離多租戶 Google Cloud 服務,協助降低資料遭竊取的風險,詳情請參閱「VPC Service Controls 總覽」。

判斷錯誤是否由 VPC Service Controls 造成

VPC Service Controls 可以修改 Google Cloud 的屬性,在不同服務之間引發連鎖效應,這會導致難以偵測錯誤,特別是在不知道該尋找什麼的時候。

service perimeter 變更最多可能需要 30 分鐘才會生效。變更後,除非明確授權,否則不得跨 perimeter 邊界存取 perimeter 內受限制的服務。

如要確認錯誤是否與 VPC Service Controls 有關,請檢查是否已啟用 VPC Service Controls,並套用至嘗試使用的專案與服務。若想確認專案和服務是否受到 VPC Service Controls 保護,請檢查該資源階層層級的 VPC Service Controls 政策。

假設您在 service perimeter 內的專案中,間接使用 VPC Service Controls 標記為「受限制的服務」,此時 VPC Service Controls 可能會拒絕存取要求。

服務通常會透過依附元件傳播錯誤訊息。如果遇到以下其中一項錯誤,表示 VPC Service Controls 發生問題。

  • Cloud Storage403: Request violates VPC Service Controls.

  • BigQuery403: VPC Service Controls: Request is prohibited by organization's policy.

  • 其他服務403: Request is prohibited by organization's policy.

使用錯誤的專屬 ID

與 Google Cloud 控制台不同,gcloud 指令列工具會傳回 VPC Service Controls 錯誤的專屬 ID。如要找出其他錯誤的記錄項目,請使用中繼資料篩選記錄

VPC Service Controls 產生的錯誤會包含專屬 ID,用於識別相關稽核記錄。

如要使用專屬 ID 取得錯誤相關資訊,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往觸發錯誤的 service perimeter 內專案的「Cloud Logging」頁面。

    前往 Cloud Logging

  2. 在搜尋篩選條件欄位中,輸入錯誤的專屬 ID。

您會看到相關記錄項目。

使用中繼資料篩選記錄

您可以使用 Logs Explorer,找出與 VPC Service Controls 相關的錯誤,還能使用 Logging 查詢語言擷取記錄。如要瞭解如何建立查詢,請參閱「使用 Logging 查詢語言建立查詢」。

控制台

如要透過 Logging 取得過去 24 小時內發生的 VPC Service Controls 錯誤,請按照下列步驟操作:

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

    前往 Cloud Logging

  2. 確認目前位於 service perimeter 內的專案。

  3. 在搜尋篩選條件欄位中,輸入下列內容:

    protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
    
  4. 在「Resource」(資源) 選單中,選取「Audited Resource」(已稽核的資源)

  5. 在時間範圍選取器選單中,選取「Last 24 hours」(過去 24 小時)

  6. (選擇性) 如要找出其他時間範圍發生的 VPC Service Controls 錯誤,請使用時間範圍選取器選單。

gcloud

  • 如要取得過去 24 小時內發生的 VPC Service Controls 錯誤,請使用下列指令:

    gcloud logging read 'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"'
    

    根據預設,read 指令只能取得過去 24 小時內的資料。如要取得其他時間範圍的 VPC Service Controls 記錄,請使用以下其中一項指令:

  • 如要從目前日期起,擷取特定時間範圍內生成的記錄,請執行下列指令:

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"' \
      --freshness=DURATION
    

    DURATION 是已套用格式的時間範圍。如要進一步瞭解相關格式,請參閱 gcloud CLI 的相對時間範圍和時間格式

  • 如要擷取過去一週內發生的所有 VPC Service Controls 錯誤,請執行下列指令:

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"' \
      --freshness=7d
    
  • 如要擷取特定日期之間生成的記錄,請執行下列指令:

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata" AND
    timestamp>="START_DATETIME" AND
    timestamp<="END_DATETIME"'
    

    START_DATETIMEEND_DATETIME 是套用格式的日期和時間字串。如要進一步瞭解相關格式,請參閱 gcloud CLI 的絕對日期和時間格式

    例如,如要取得發生在 2019 年 3 月 22 日到 3 月 26 日之間的所有 VPC Service Controls 錯誤,請使用下列指令:

    gcloud logging read \
    'protoPayload.metadata.@type:"type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata" AND
      timestamp>="2019-03-22T23:59:59Z" AND
      timestamp<="2019-03-26T00:00:00Z"'
    

後續步驟