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

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

背景

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

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

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

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

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

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

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

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

履歴監査データは 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、Cloud Pub/Sub に対する Cloud IAM の権限と役割によって全面的に制御されます。このシナリオでは、Cloud Storage が監査ログの長期間ストレージのエクスポート先になります。

役割 リソース メンバー 説明
logging.viewer 組織 サービス アカウント logging.viewer 役割により、サービス アカウントは Stackdriver の管理アクティビティ ログの読み取りが許可されます。

データアクセス ログ内のデータは、この組織の個人識別情報(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.gserviceacount.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.gserviceacount.com"
        ]
    }]
}

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

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

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

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

エクスポートされたコピーへのアクセスは、エクスポート先の Cloud Storage、BigQuery、Cloud 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.gserviceacount.com"

        ]
    }]
}

シナリオ: 外部監査者

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

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

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

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

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

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

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

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

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

{
    "bindings": [{
        "role": "roles/bigquery.dataViewer",
        "members": [
            "serviceAccount:prod-project-dashboard@admin-resources.iam.gserviceacount.com"
        ]
    }]
}
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Identity and Access Management のドキュメント