監査ロギングの役割の構成

このトピックでは、一連のサンプル監査シナリオで Cloud Identity and Access Management の権限を構成する方法を説明します。シナリオに応じて企業内の監査関連の機能役割にどのような Cloud IAM の役割を付与するかについて、ガイダンスを提供します。この例は主に、組織の監査タスクを管理するセキュリティ管理者、監査担当者、従業員を対象としています。

背景

Google Cloud は、Cloud Logging の必要不可欠な要素である Cloud 監査ログを備えています。これはプロジェクトごとに存在する 2 つのログストリーム(Google Cloud サービスによって生成される、管理アクティビティ ログとデータアクセス ログ)から構成され、Google Cloud プロジェクト内で「誰が、いつ、どこで何をしたか」を調べるのに役立ちます。これらのログはアプリケーション ログとは異なります。次に説明します。

  • 管理アクティビティ ログには、リソースの構成またはメタデータを変更する API 呼び出しやその他の管理アクションに関するログエントリが含まれます。管理アクティビティ ログは常に有効です。管理アクティビティ監査ログは無料で使用できます。
  • データアクセス ログには、ユーザー提供データを作成、変更、または読み取る API 呼び出しが記録されます。データアクセス監査ログは、非常に大きくなる可能性があるため、デフォルトで無効になっています。

監査ログを生成する各サービスを監査ログを生成するサービス セクションに挙げています。

Cloud Logging は、保持期間と呼ばれる期間限定のログエントリを保持します。この期間が経過すると、エントリは削除されます。ログエントリを長く保持するには、ログを Cloud Logging から Pub/Sub、BigQuery または Cloud Storage バケットにエクスポートする必要があります。

このトピックのシナリオ例では、Cloud Organization が構成されていることを前提としています。

このドキュメントでは、ロギングの役割と権限については詳しく説明しません。詳細は Cloud Logging のアクセス制御ガイドを参照してください。

シナリオ: 運用のモニタリング

このシナリオでは、組織に、Cloud Logging と長期的ストレージに保存する場合の両方で、機密情報を含む可能性のあるログを確認する権限を持つ中央セキュリティ チームがあります。

履歴監査データは Cloud Storage に保存されています。組織はアプリケーションを使用して、履歴監査データへのアクセスを提供します。アプリケーションはサービス アカウントを使用して、ログデータにアクセスします。一部の監査ログデータでは機密保持が必要であるため、Cloud Data Loss Prevention を使用して編集した後で、表示のためにアクセスできるようにします。

次の表は、CTO、セキュリティ チーム、サービス アカウントに付与する必要がある Cloud IAM の役割と、役割が付与されるリソースレベルについて説明しています。

役割 リソース メンバー 説明
resourcemanager.organizationAdmin 組織 CTO(最高技術責任者) resourcemanager.organizationAdmin 役割により、CTO は、セキュリティ チームとサービス アカウントに権限を割り当てることができます。
logging.viewer 組織 セキュリティ チーム logging.viewer 役割により、セキュリティ管理チームは、管理アクティビティ ログを表示できます。
logging.privateLogViewer 組織 セキュリティ チーム logging.privateLogViewer 役割により、データアクセス ログを表示できます。

ログエントリがエクスポートされると、エクスポートされたコピーへのアクセスは、エクスポート先の Cloud Storage、BigQuery、Pub/Sub に対する Cloud IAM の権限と役割によって全面的に制御されます。このシナリオでは、Cloud Storage が監査ログの長期間ストレージのエクスポート先になります。

役割 リソース メンバー 説明
logging.viewer 組織 サービス アカウント logging.viewerの役割は、サービスアカウントが Cloud Logging の管理アクティビティログを読み取ることを許可します。

データアクセス ログ内のデータは、この組織の個人識別情報(PII)とみなされます。アプリケーションを Cloud DLP と統合すると、データアクセス ログを表示した際に、それらがデータアクセス ログにあるか、Cloud Storage の履歴アーカイブにあるかにかかわらず、機密の PII データを編集できます。

役割 リソース メンバー 説明
storage.objectViewer バケット サービス アカウント storage.objectViewer 役割により、サービス アカウントはエクスポートされた管理アクティビティ ログの読み取りが許可されます。

このシナリオで組織リソースに関連付けられている Cloud IAM ポリシーは、次のようになります。

{
      "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"
          ]
        }
      ]
    }
    

このシナリオで宛先シンクとして構成されているバケットに関連付けられている Cloud IAM ポリシーは次のようになります。

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

シナリオ: 監査ログをモニタリングする開発チーム

このシナリオでは、組織の開発者はアプリケーションの開発中に生成された監査ログを調べる必要があります。本番環境のログが Cloud DLP で編集されていない限り、デベロッパーにはそれらを確認する権限がありません。デベロッパーは、エクスポートされた本番環境のデータへの表示専用アクセスを提供するダッシュボード アプリケーションを使用できます。組織のセキュリティ チームは、本番環境と開発環境のどちらでもすべてのログにアクセスできます。

次の表は、セキュリティ チーム、開発者、サービス アカウントに付与する必要がある Cloud IAM の役割と、役割が付与されるリソースレベルについて説明しています。

役割 リソース メンバー 説明
logging.viewer 組織 セキュリティ チーム logging.viewer 役割により、セキュリティ管理チームは、管理アクティビティ ログを表示できます。
logging.privateLogViewer 組織 セキュリティ チーム logging.privateLogViewer 役割により、データアクセス ログを表示できます。
logging.viewer フォルダ デベロッパー チーム logging.viewer 役割により、デベロッパー チームは、すべてのデベロッパー プロジェクトが存在するフォルダに格納されているデベロッパー プロジェクトによって生成された管理アクティビティ ログを表示できます。
logging.privateLogViewer フォルダ デベロッパー チーム logging.privateLogViewer 役割により、データアクセス ログを表示できます。

エクスポートされたコピーへのアクセスは、エクスポート先の Cloud Storage、BigQuery、Pub/Sub に対する Cloud IAM の権限と役割によって全面的に制御されます。このシナリオでは、BigQuery が監査ログのストレージとしてのエクスポート先になります。

役割 リソース メンバー 説明
bigquery.dataViewer BigQuery データセット ダッシュボード サービス アカウント bigquery.dataViewer 役割により、ダッシュボード アプリケーションによって使用されるサービス アカウントは、エクスポートされた管理アクティビティ ログの読み取りが許可されます。

このシナリオで開発チームのフォルダ リソースに関連付けられている Cloud IAM ポリシーは、次のようになります。

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

このシナリオで組織リソースに関連付けられている Cloud IAM ポリシーは、次のようになります。

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

このシナリオで宛先シンクとして構成されている BigQuery データセットに関連付けられている Cloud IAM ポリシーは、次のようになります。

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

シナリオ: 外部監査者

このシナリオでは、組織の監査ログが集約され、中央シンクの場所にエクスポートされます。第三者の監査者には、組織の監査ログを確認するために年に数回アクセス権が与えられます。監査者には、管理アクティビティ ログ内の PII データを表示する権限はありません。この要件に準拠するため、BigQuery に保存された履歴ログにアクセスし、Cloud Logging 管理アクティビティのログにアクセスできるダッシュボードを使用できます。

組織は、監査期間ごとに一時的な監査者アカウントを作成します。このアカウントはモニタリングされ、通常はダッシュボード アプリケーションへのアクセスが許可されます。

通常のアクセスでは、監査者には BigQuery に保存されている履歴ログを表示するアクセス権のみが付与されます。異常が検出されると、ダッシュボードの昇格アクセスモードを介して、実際の Cloud Logging 管理アクティビティログを表示する権限が監査者に付与されます。各監査期間の終了時に、アクセス権は取り消されます。

Cloud DLP でデータを編集した後で、ダッシュボード アプリケーションでデータを表示するためにアクセスできるようにします。

次の表は、組織の管理者が、ダッシュボードによって使用されるサービス アカウントに付与できる Cloud IAM ロギングの役割と、役割が付与されるリソースレベルについて説明しています。

役割 リソース メンバー 説明
logging.viewer 組織 ダッシュボード サービス アカウント logging.viewerの役割は、サービスアカウントが Cloud Logging の管理アクティビティログを読み取ることを許可します。
bigquery.dataViewer BigQuery データセット ダッシュボード サービス アカウント bigquery.dataViewer 役割により、ダッシュボード アプリケーションによって使用されるサービス アカウントは、エクスポートされた管理アクティビティ ログの読み取りが許可されます。

このシナリオで組織リソースに関連付けられている Cloud IAM ポリシーは、次のようになります。

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

このシナリオで宛先シンクとして構成されている BigQuery データセットに関連付けられている Cloud IAM ポリシーは、次のようになります。

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