稽核相關職務的 IAM 角色

本主題說明如何為一組稽核情境範例設定 Identity and Access Management 權限。並說明在這些情境中,您應該為公司與稽核相關的職務角色授予哪些 IAM 角色。其中的範例主要針對安全管理員、稽核員,以及負責管理機構稽核工作的員工。

如要瞭解 Google Cloud的稽核記錄,請參閱「Cloud 稽核記錄」。如要瞭解 IAM 產生的稽核記錄,請參閱服務帳戶的 IAM 稽核記錄

情境:作業監控

在本情境中,機構具備中央安全團隊,能夠檢閱 Cloud Logging 和長期儲存空間中可能含有機密資訊的記錄。

歷史稽核資料儲存於 Cloud Storage。機構使用應用程式以提供歷史稽核資料的存取權,應用程式則透過服務帳戶來存取記錄資料。由於某些稽核記錄資料具有機密性,因此這些資料會在提供檢視前,透過 Sensitive Data Protection 進行遮蓋。

下表說明需要向技術長、安全團隊和服務帳戶授予的 IAM 角色,以及授予角色的資源層級。

角色 資源 主體 說明
resourcemanager.organizationAdmin 機構 技術長 resourcemanager.organizationAdmin 角色可讓技術長指派權限給安全團隊及服務帳戶。
logging.viewer 機構 安全團隊 logging.viewer 角色可讓安全管理團隊查看管理員活動記錄。
logging.privateLogViewer 機構 安全團隊 logging.privateLogsViewer 角色提供查看資料存取記錄的功能。

記錄項目一旦匯出後,匯出複本的存取權限將由任何目的地 (Cloud Storage、BigQuery 或 Pub/Sub) 的 IAM 權限與角色完全控制。在本情境中,Cloud Storage 為稽核記錄的長期儲存目的地。

角色 資源 主體 說明
logging.viewer 機構 服務帳戶 logging.viewer 角色會允許服務帳戶讀取 Cloud Logging 管理員活動記錄。

資料存取記錄中的資料會被視為這個機構的個人識別資訊 (PII)。將應用程式與 Sensitive Data Protection 整合可讓您在檢視「資料存取」記錄時遮蓋敏感的 PII 資料,無論這些記錄是在「資料存取」記錄中或來自 Cloud Storage 中的歷史封存檔案。

角色 資源 主體 說明
storage.objectViewer 值區 服務帳戶 storage.objectViewer 角色允許服務帳戶讀取已匯出的管理員活動記錄。

在本情境中,繫結至機構資源的允許政策看起來類似下列內容:

{
  "bindings": [{
    "role": "roles/resourcemanager.organizationAdmin",
      "members": [
        "user:cto@example.com"
      ]
    },
    {
      "role": "roles/logging.viewer",
      "members": [
        "group:security-team@example.com",
        "serviceAccount:prod-logviewer@admin-resources.iam.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/logging.privateLogViewer",
      "members": [
        "group:security-team@example.com"
      ]
    }
  ]
}

在本情境中,繫結至值區 (設為目的地接收器) 的允許政策看起來類似下列內容:

{
  "bindings": [{
    "role": "roles/storage.objectViewer",
    "members": [
      "serviceAccount:prod-logviewer@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}

情境:開發團隊監控自己的稽核記錄

在本情境中,機構的開發人員需要查看開發應用程式時產生的稽核記錄。除非實際工作記錄使用 Sensitive Data Protection 遮蓋,否則他們沒有權限查看這些記錄。開發人員可以使用資訊主頁應用程式,針對已匯出的實際工作資料提供僅限檢視的存取權。機構的安全團隊則擁有權限,可以存取實際工作及開發環境中的所有記錄。

下表說明需要授予安全團隊、開發人員和服務帳戶的 IAM 角色,以及授予角色的資源層級。

角色 資源 主體 說明
logging.viewer 機構 安全團隊 logging.viewer 角色可讓安全管理團隊查看管理員活動記錄。
logging.privateLogViewer 機構 安全團隊 logging.privateLogsViewer 角色提供查看資料存取記錄的功能。
logging.viewer 資料夾 開發人員團隊 logging.viewer 角色可讓開發人員團隊查看開發人員專案產生的管理員活動記錄 (這些開發人員專案位於包含所有開發人員專案的資料夾中)。
logging.privateLogViewer 資料夾 開發人員團隊 logging.privateLogsViewer 角色提供查看資料存取記錄的功能。

已匯出複本的存取權限由任何目的地 (Cloud Storage、BigQuery 或 Pub/Sub) 的 IAM 權限與角色完全控制。在本情境中,BigQuery 為稽核記錄的儲存目的地。

角色 資源 主體 說明
bigquery.dataViewer BigQuery 資料集 資訊主頁服務帳戶 bigquery.dataViewer 角色允許由資訊主頁應用程式使用的服務帳戶來讀取已匯出的管理員活動記錄。

在本情境中,繫結至開發團隊資料夾資源的允許政策看起來類似下列內容:

{
  "bindings": [{
    "role": "roles/logging.viewer",
    "members": [
      "group:developer-team@example.com"
    ]
  },
  {
    "role": "roles/logging.privateLogViewer",
    "members": [
      "group:developer-team@example.com"
    ]
  }]
}

在本情境中,繫結至機構資源的允許政策看起來類似下列內容:

{
  "bindings": [{
    "role": "roles/logging.viewer",
    "members": [
      "group:security-team@example.com"
    ]
  },
  {
    "role": "roles/logging.privateLogViewer",
    "members": [
      "group:security-team@example.com"
    ]
  }]
}

在本情境中,繫結至 BigQuery 資料集 (設為目的地接收器) 的允許政策看起來類似下列內容:

{
  "bindings": [{
    "role": "roles/bigquery.dataViewer",
    "members": [
      "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}

情境:外部稽核員

在本情境中,機構的稽核記錄經過匯總並匯出至中央接收器位置。每年第三方稽核員都會取得多次存取權,以查看機構的稽核記錄。稽核員沒有權限查看管理員活動記錄中的 PII 資料。為符合這項要求,我們提供了一個資訊主頁,可讓您存取儲存在 BigQuery 中的歷史記錄,並視需求存取 Cloud Logging 管理員活動記錄。

機構會為這些外部稽核員建立群組,並將目前的稽核員加入群組。這個群組會受到監控,通常會獲准存取資訊主頁應用程式。

在正常存取期間,稽核員群組只獲得查看 BigQuery 中儲存的歷史記錄的存取權。如果發現任何異常情況,該群組就會取得權限,能透過提升存取權模式的資訊主頁,查看實際的 Cloud Logging 管理員活動記錄。每個稽核期間結束時,群組的存取權將會撤銷。

相關資料會在允許透過資訊主頁應用程式查看之前,使用 Sensitive Data Protection 進行遮蓋。

下表說明瞭機構管理員可以授予服務帳戶 (由資訊主頁使用) 的 IAM 記錄角色,以及授予角色的資源層級。

角色 資源 主體 說明
logging.viewer 機構 資訊主頁服務帳戶 logging.viewer 角色會允許服務帳戶讀取 Cloud Logging 管理員活動記錄。
bigquery.dataViewer BigQuery 資料集 資訊主頁服務帳戶 bigquery.dataViewer 角色允許由資訊主頁應用程式使用的服務帳戶來讀取已匯出的管理員活動記錄。

在本情境中,繫結至機構資源的允許政策看起來類似下列內容:

{
  "bindings": [{
    "role": "roles/logging.viewer",
    "members": [
      "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}

在本情境中,繫結至 BigQuery 資料集 (設為目的地接收器) 的允許政策看起來類似下列內容:

{
  "bindings": [{
    "role": "roles/bigquery.dataViewer",
    "members": [
      "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceaccount.com"
    ]
  }]
}