AWS Redshift ログを収集する

以下でサポートされています。

このドキュメントでは、Amazon S3 を使用して AWS Redshift ログを Google Security Operations に取り込む方法について説明します。

Amazon Redshift は、Amazon Web Services が提供するフルマネージドのペタバイト規模のクラウド データ ウェアハウス サービスです。SQL ベースのツールとビジネス インテリジェンス アプリケーションを使用して、大規模なデータセットに対する高速なクエリと分析を可能にします。Amazon Redshift は、認証の試行、接続、切断、ユーザー定義の変更、データベースに対して実行されたクエリなど、データベース アクティビティをログに記録します。この統合では、Amazon Redshift のネイティブ監査ロギング機能を使用してログファイルを S3 バケットに配信します。Google SecOps は、Amazon S3 V2 フィードを使用してログファイルを取り込みます。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • 次の権限を持つ AWS Management Console への特権アクセス。
    • Amazon Redshift (クラスタ、パラメータ グループ)
    • Amazon S3 (バケット、バケット ポリシー)
    • AWS IAM (ユーザー、ポリシー)

Amazon Redshift 監査ロギング用に S3 バケットを構成する

Amazon Redshift は、監査ログファイルを S3 バケットにアップロードします。Amazon Redshift サービスがログファイルを書き込めるように、S3 バケット ポリシーを構成する必要があります。

S3 バケットを作成して構成する

  1. バケットの作成のユーザーガイドに沿って、Amazon S3 バケット を作成します。
  2. バケットの名前リージョン を保存して、後で参照できるようにします(例: redshift-audit-logs-to-secops)。

  3. https://console.aws.amazon.com/s3Amazon S3 コンソール で、作成したバケットを選択します。

  4. [権限] タブを選択します。

  5. [バケット ポリシー] セクションで [編集] をクリックします。

  6. 次のバケット ポリシーを追加します(redshift-audit-logs-to-secops はバケット名に置き換えます)。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "Put bucket policy needed for audit logging",
                "Effect": "Allow",
                "Principal": {
                    "Service": "redshift.amazonaws.com"
                },
                "Action": [
                    "s3:PutObject",
                    "s3:GetBucketAcl"
                ],
                "Resource": [
                    "arn:aws:s3:::redshift-audit-logs-to-secops",
                    "arn:aws:s3:::redshift-audit-logs-to-secops/*"
                ]
            }
        ]
    }
    
    redshift.<region>.amazonaws.com
  7. [変更を保存] をクリックします。

ユーザー アクティビティ ログ パラメータを有効にする

監査ロギングが有効になっている場合、接続ログとユーザーログは自動的にキャプチャされます。ユーザー アクティビティ ログ(データベースで実行される前の各クエリを記録)もキャプチャするには、enable_user_activity_logging データベース パラメータを有効にする必要があります。

  1. https://console.aws.amazon.com/redshiftv2/Amazon Redshift コンソール にログインします。
  2. ナビゲーション メニューで、[構成] > [ワークロード管理] に移動します。
  3. クラスタに関連付けられているパラメータ グループを選択します。
  4. [パラメータ] タブを選択します。
  5. [パラメータを編集] をクリックします。
  6. enable_user_activity_logging パラメータの値を true に設定します。
  7. [保存] をクリックします。

Amazon Redshift 監査ロギングを S3 に対して有効にする

  1. https://console.aws.amazon.com/redshiftv2/Amazon Redshift コンソール にログインします。
  2. ナビゲーション メニューで [クラスタ] を選択し、構成するクラスタを選択します。
  3. [Properties] タブをクリックします。
  4. [**データベース構成**] パネルで [**編集**] をクリックし、[**監査ログを編集**] を選択します。
  5. [監査ログを編集] ページで、[オンにする] を選択します。
  6. [ログの宛先] で [S3 バケット] を選択します。
  7. [S3 バケット] で、構成したバケット(redshift-audit-logs-to-secops など)を選択します。
  8. 省略可: S3 キーの接頭辞 を入力して、バケット内のログファイルを整理します(例: audit-logs/)。
  9. エクスポートするログを選択します。
    • 接続ログ - 認証の試行、接続、切断
    • ユーザーログ - データベース ユーザー定義の変更
    • ユーザー アクティビティ ログ - データベースで実行される前の各クエリ
  10. [変更を保存] をクリックします。

詳細については、Amazon Redshift 管理ガイドのデータベース監査ロギングをご覧ください。

Google SecOps 用に IAM ユーザーを構成する

Google SecOps では、エクスポートされた監査ログを取り込むために、S3 バケットへの読み取りアクセス権を持つ IAM ユーザーが必要です。

  1. IAM ユーザーの作成のユーザーガイドに沿って、ユーザー を作成します。
  2. 作成したユーザー を選択します。
  3. [セキュリティ認証情報] タブを選択します。
  4. [アクセスキー] セクションで [Create Access Key] をクリックします。
  5. [ユースケース] で [サードパーティ サービス] を選択します。
  6. [Next] をクリックします。
    • 省略可: 説明タグを追加します。
  7. [アクセスキーを作成] をクリックします。
  8. [Download .csv file] をクリックして、アクセスキーシークレット アクセスキー を保存し、後で参照できるようにします。
  9. [完了] をクリックします。
  10. [権限] タブを選択します。
  11. [権限ポリシー] セクションで [権限を追加] をクリックします。
  12. [権限を追加] を選択します。
  13. [ポリシーを直接アタッチする] を選択します。
  14. AmazonS3FullAccess ポリシーを検索します。
  15. ポリシーを選択します。
  16. [次へ] をクリックします。
  17. [権限を追加] をクリックします。

AWS Redshift ログを取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで、[Configure a single feed] をクリックします。
  4. [Feed name] に一意の名前を入力します。
  5. [ソースタイプ] として [Amazon S3 V2] を選択します。
  6. [Log type] で [AWS Redshift] を選択します。
  7. [次へ] をクリックしてから、[送信] をクリックします。
  8. 次のフィールドに値を指定します。

    • S3 URI: s3://redshift-audit-logs-to-secops/audit-logs/
    • Source deletion option: 必要に応じて削除オプションを選択します。
    • Maximum File Age: 過去数日間に変更されたファイルを含めます(デフォルトは 180 日)。
    • アクセスキー ID: S3 バケットにアクセスできるユーザー アクセスキー
    • シークレット アクセスキー: S3 バケットにアクセスできるユーザーのシークレット キー
    • Asset namespace: アセットの名前空間
    • 取り込みラベル: このフィードのイベントに適用されるラベル
  9. [次へ] をクリックしてから、[送信] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
func_label additional.fields 統合済み
lpclagg_label additional.fields 統合済み
lpcltype_label additional.fields 統合済み
msg metadata.description 直接マッピングされます。
has_principal metadata.event_type マッピング: trueSTATUS_UPDATE
has_target_resource metadata.event_type マッピング: trueUSER_RESOURCE_ACCESS
has_user metadata.event_type マッピング: trueUSER_UNCATEGORIZED
column1 metadata.product_event_type 直接マッピングされます。
requestID metadata.product_log_id 直接マッピングされます。
column20 network.application_protocol_version 直接マッピングされます。
column9 network.session_duration.seconds 名前変更/マッピング
column21 network.session_id 直接マッピングされます。
xid network.session_id 直接マッピングされます。
column11 network.tls.cipher 直接マッピングされます。
column10 network.tls.version 直接マッピングされます。
column16 principal.application 直接マッピングされます。
column3 principal.asset.ip 統合済み
log_event.src_ip principal.asset.ip 統合済み
column3 principal.hostname 直接マッピングされます。
column3 principal.ip 統合済み
log_event.src_ip principal.ip 統合済み
region principal.location.name 直接マッピングされます。
column17 principal.platform_version 直接マッピングされます。
column4 principal.port 直接マッピングされます。
column5 principal.process.pid 直接マッピングされます。
pid principal.process.pid 直接マッピングされます。
accountID principal.user.userid 直接マッピングされます。
user_id principal.user.userid 直接マッピングされます。
authmethod_label security_result.detection_fields 統合済み
compression_label security_result.detection_fields 統合済み
driver_version_label security_result.detection_fields 統合済み
iamauthguid_label security_result.detection_fields 統合済み
mtu_label security_result.detection_fields 統合済み
plugin_name_label security_result.detection_fields 統合済み
ssl_compression_label security_result.detection_fields 統合済み
ssl_expansion_label security_result.detection_fields 統合済み
level security_result.severity マッピング: (?i)InfoINFORMATIONAL(?i)ErrorERROR(?i)WarningMEDIUM
file target.file.full_path 直接マッピングされます。
expected_bucket_label target.resource.attribute.labels 統合済み
expected_s3_prefix_label target.resource.attribute.labels 統合済み
sql_query_label target.resource.attribute.labels 統合済み
time_zone_label target.resource.attribute.labels 統合済み
ClusterIdentifier target.resource.name 直接マッピングされます。
column6 target.resource.name 直接マッピングされます。
db target.resource.name 直接マッピングされます。
column7 target.user.user_display_name 直接マッピングされます。
user target.user.user_display_name 直接マッピングされます。
なし metadata.event_type 定数: USER_RESOURCE_ACCESS
なし security_result.severity 定数: INFORMATIONAL
なし target.resource.type 定数: DATABASE

さらにサポートが必要な場合コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。