ObjectCreated 通知の作成

バケットでモニターするフォルダーに対して ObjectCreated 通知を構成します。

手順

  1. 管理者として AWS マネジメント・コンソールにログインします。
  2. 「サービス」をクリックし、 S3に移動して、バケットを選択します。
  3. 「プロパティー」 タブをクリックし、 「イベント」 ペインで 「通知の追加」をクリックします。 新しいイベントのパラメーターを構成します。
    ObjectCreated 通知パラメーター構成の例を以下の表に示します。
    表 1. 例: 新しい ObjectCreated 通知パラメーター構成
    パラメーター
    名前 選択した名前を入力します。
    イベント 「すべてのオブジェクト作成イベント」を選択します。
    接頭部 AWSLogs/
    ヒント: データが配置されている場所、およびキューに入れるデータに応じて、検索するデータを含む接頭部を選択することができます。 例: AWSLogs/、CustomPrefix/AWSLogs/、AWSLogs/123456789012/。
    接尾部 json.gz
    送信先 SQS キュー
    ヒント: コレクションまたは QRadar テナントのニーズに合わせて、異なるフォルダーのデータを同じキューまたは異なるキューに送信できます。 以下の 1 つ以上の方式を選択します。
    • 異なる複数のフォルダーから異なる複数のキューに送信
    • 異なる複数のバケットの複数のフォルダーから同一のキューに送信
    • 単一のバケットからのすべてのものを単一のキューに送信
    • 複数のバケットからのすべてのものを単一のキューに送信
    SQS ObjectCreated 通知の受信に使用される SQS キューの作成のステップ 4 の キュー名
    図 1. 例: イベント
    このイメージの例は、 NewS3ObjectToSQS というタイトルの新規イベントと、情報が入力されたいくつかのパラメーターを示しています。 例えば、接頭部には対応する情報 AWSLogs/ が入ります。

    画像: © 2019 Amazon.com Inc. or its subsidiaries. All Rights Reserved.

    図 1 のパラメーター構成例では、通知はバケットのルートから AWSLogs/ に対して作成されます。 この構成を使用する場合、すべての ObjectCreated イベントによって通知がトリガーされます。 バケット内に複数のアカウントとリージョンがある場合、すべてのものが処理されます。 この例では json.gz が使用されます。 このファイル・タイプは、収集するデータによって異なります。 バケットの内容に応じて、拡張子を省略することも、イベントをセットアップしたフォルダー内で検索するデータと一致する拡張子を選択することもできます。

    約 5 分後に、データが格納されるキューが表示されます。 「使用可能なメッセージ (Messages Available)」列に、メッセージの数を表示できます。
    図 2. 利用可能なメッセージ数
    このイメージは、2,799 個の使用可能なメッセージを示しています。

    画像: © 2019 Amazon.com Inc. or its subsidiaries. All Rights Reserved.

  4. 「サービス」をクリックし、 「Simple Queue Services」に移動します。
  5. ObjectCreated 通知の受信に使用される SQS キューの作成のステップ 4 で 「キュー名」 を右クリックし、 「メッセージの表示/削除」 を選択してメッセージを表示します。
    図3: SecureQueue TEST リスト
    この画像は、ユーザーにメッセージの表示方法および削除方法を示しています。 イメージでは、「メッセージの表示/削除」ボタンが強調表示されています。

    画像: © 2019 Amazon.com Inc. or its subsidiaries. All Rights Reserved.

    例: サンプル・メッセージ
    {
       "Records":[
          {
             "eventVersion":"2.1",
             "eventSource":"aws:s3",
             "awsRegion":"us-east-2",
             "eventTime":"2018-12-19T01:51:03.251Z",
             "eventName":"ObjectCreated:Put",
             "userIdentity":{
                "principalId":"AWS:AIDAIZLCFC5TZD36YHNZY"
             },
             "requestParameters":{
                "sourceIPAddress":"52.46.82.38"
             },
             "responseElements":{
                "x-amz-request-id":"6C05F1340AA50D21",
                "x-amz-id-2":"9e8KovdAUJwmYu1qnEv+urrO8T0vQ+UOpkPnFYLE6agmJSn745
    /T3/tVs0Low/vXonTdATvW23M="
             },
             "s3":{
                "s3SchemaVersion":"1.0",
                "configurationId":"test_SQS_Notification_1",
                "bucket":{
                   "name":"myBucketName",
                   "ownerIdentity":{
                      "principalId":"A2SGQBYRFBZET"
                   },
                   "arn":"arn:aws:s3:::myBucketName"
                },
                "object":{
                   "key":"AWSLogs/123456789012/CloudTTrail/eu-west-
    3/2018/12/19/123456789012_CloudTrail_eu-west-3_TestAccountTrail
    _us-east-2_20181219T014838Z.json.gz",
                   "size":713,
                   "eTag":"1ff1209e4140b4ff7a9d2b922f57f486",
                   "sequencer":"005C19A40717D99642"
                }
             }
          }
       ]
    }
    
    ヒント: key 値に DSM 名が表示されます。
  6. 「サービス」をクリックし、 IAMにナビゲートします。
  7. SQS キューにアクセスするため、およびターゲット・バケットからダウンロードするための許可のために、 ユーザー または 役割 の許可を設定します。 ユーザーまたはユーザー・ロールには、SQS キューに対する読み取りおよび削除を行う権限が必要です。 IAM ユーザーの権限の追加、管理、および変更については、 IAM ユーザーの資料を参照してください。 QRadar が通知を読み取り、ターゲット・ファイルをダウンロードして処理した後、メッセージをキューから削除する必要があります。
    サンプル・ポリシー:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "sqs:DeleteMessage",
                    "sqs:ReceiveMessage",
                    "s3:GetObject"
                ],
                "Resource": [
                    "arn:aws:s3:::<bucket_name>/AWSLogs/*",
                    "arn:aws:sqs:us-east-2:<AWS_account_number>:<queue_name>"
                ]
            }
        ]
    }
    

    複数のバケットを S3 キューに追加できます。 すべてのオブジェクトへのアクセスが行われるようにするため、追加したフォルダー・パスの末尾に /* を付加する必要があります。

    このポリシーはユーザーやユーザー・ロールに直接追加することも、sts:AssumeRole 許可のみを使用して最小限のアクセスしか持たないユーザーを作成することもできます。 QRadarでログ・ソースを構成するときに、 QRadar がロールを引き受けるように 「ロール ARN を想定」 パラメーターを構成します。 1 回の実行 (キューを空にする) で処理を待機しているすべてのファイルの処理が再試行なしで確実に完了できるようにするため、「API セッション期間 (API Session Duration)」パラメーターにはデフォルト値の 1 時間を使用します。

    想定された役割を使用する場合は、その役割を想定しているユーザーの ARN が、その役割の 「信頼されたエンティティー」 に含まれていることを確認してください。 「IAM 役割」「信頼関係」 タブから、ルールを想定できる信頼できるエンティティーを表示できます。 さらに、ユーザーにはその (または任意の) アカウントでロールを指定する権限が必要です。 以下の例は、トラスト・ポリシーの例を示しています。
    特定の AWS アカウント内のすべての IAM ユーザーが役割を引き受けることを許可する
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:root"
                },
                "Action": "sts:AssumeRole",
                "Resource": "arn:aws:iam::YOUR_ACCOUNT_ID:role/ROLE_NAME"
            }
        ]
    }
    特定のユーザーが役割を引き受けることを許可する
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:user/USERNAME"
                },
                "Action": "sts:AssumeRole",
                "Resource": "arn:aws:iam::YOUR_ACCOUNT_ID:role/ROLE_NAME"
            }

    以下のイメージは、 QRadarでの Amazon AWS CloudTrail ログ・ソース構成の例を示しています。

    ヒント: ログ・ソースを構成するときに、DSM の Amazon AWS S3 REST API ログ・ソース・パラメーター値を使用します。
    図 4. 例: QRadar での Amazon AWS CloudTrail ログ・ソース構成
    イメージは、パラメーターが入力されたログ・ソース構成の例を示しています。