AWS CloudTrail ログを収集する

パーサーのバージョン: 30.0

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

このドキュメントでは、Google Security Operations フィードを設定して AWS CloudTrail ログを収集する方法と、ログフィールドが Google SecOps 統合データモデル(UDM)フィールドにマッピングする方法について説明します。

詳細については、Google SecOps へのデータの取り込みをご覧ください。

一般的なデプロイは、AWS CloudTrail と、Google SecOps にログを送信するように構成された Google SecOps フィードで構成されます。実際のデプロイは、このドキュメントで説明されている一般的なデプロイとは異なる場合があります。デプロイには次のコンポーネントが含まれます。

  • AWS CloudTrail: ログを収集するプラットフォーム。

  • AWS S3: ログを保存するプラットフォーム。

  • Google SecOps フィード: AWS S3 からログを取得して Google SecOps に書き込む Google SecOps フィード。

  • Google SecOps: AWS CloudTrail のログを保持して分析するプラットフォーム。

取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル AWS_CLOUDTRAIL が付加されたパーサーに適用されます。

始める前に

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

  • AWS アカウント
  • AWS CloudTrail を使用するための前提条件が満たされている。詳細については、AWS CloudTrail の設定をご覧ください。
  • デプロイ アーキテクチャ内のすべてのシステムが UTC タイムゾーンを使用している

SQS を使用して S3 からログを取り込む基本的な手順

このセクションでは、AWS CloudTrail ログを Google SecOps インスタンスに取り込む基本的な手順について説明します。このステップでは、フィードソースタイプとして Amazon SQS で Amazon S3 を使用して、これを行う方法を説明します。

AWS CloudTrail と S3 を構成する

この手順では、S3 バケットに書き込まれるように AWS CloudTrail ログを構成します。

  1. AWS コンソールで「CloudTrail」を検索します。
  2. [Create trail] をクリックします。
  3. [Trail name] を指定します。
  4. [新しい S3 バケットを作成する] を選択します。既存の S3 バケットを使用するよう選択することもできます。
  5. [AWS KMS Alias] の名前を指定するか、既存の [AWS KMS Key] を選択します。
  6. その他の設定はデフォルトのままにして、[次へ] をクリックします。
  7. [イベントタイプ] を選択し、必要に応じて [データイベント] を追加して、[次へ] をクリックします。
  8. [Review and create] で設定を確認し、[Create trail] をクリックします。
  9. AWS コンソールで「Amazon S3 Buckets」を検索します。
  10. 新しく作成したログバケットをクリックし、フォルダ [AWSLogs] を選択します。[Copy S3 URI] をクリックして、次の手順で使用するために保存します。

標準 SQS キューと SNS を設定する

SQS キューを使用する場合は、FIFO キューではなく標準キューである必要があります。

  1. AWS CloudTrail を有効にし、新規または既存の証跡を使用して S3 バケットにログを配信するように構成します。
  2. AWS SNS コンソールを開き、新しい標準トピックを作成します。名前を付けます(例: CloudTrail-Notification-Topic)。
  3. AWS SQS コンソールを使用して SQS キュー(CloudTrail-Notification-Queue など)を作成し、SNS トピック ARN がメッセージを送信できるようにアクセス ポリシーを更新します。SQS キューの作成の詳細については、Amazon SQS の使用を開始するをご覧ください。

    SQS ポリシー スニペットの例:

    {
       "Version": "2012-10-17",
       "Id": `PolicyForSNS`,
       "Statement": [
          {
             "Sid": "AllowSNS",
             "Effect": "Allow",
             "Principal": { "Service": "sns.amazonaws.com" },
             "Action": "SQS:SendMessage",
             "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:CloudTrail-Notification-Queue",
             "Condition": {
             "ArnEquals": { "aws:SourceArn": "arn:aws:sns:REGION:ACCOUNT_ID:CloudTrail-Notification-Topic"}
             }
          }
       ]
    }
    
  4. [SNS トピック] → [サブスクリプション] → [サブスクリプションを作成] に移動し、プロトコルを SQS に、エンドポイントを SQS キューの ARN に設定します。

  5. CloudTrail は、新しいログを SNS にネイティブに push しません。通知を有効にするには、管理イベント用の CloudTrail イベント セレクタを使用するか、CloudWatch Logs との CloudTrail 統合を使用して、SNS トピックをターゲットとして設定して通知をトリガーする CloudWatch イベントルールを作成します。詳細については、S3 バケットで通知を設定するをご覧ください。

    イベントパターンの例:

    {
       "source": ["aws.s3"],
       "detail-type": ["AWS API Call via CloudTrail"],
       "detail": {
          "eventName": ["PutObject"],
          "requestParameters": {
             "bucketName": [`CloudTrail-Notification-Topic`]
          }
       }
    }
    
  6. IAM ロールまたはポリシーで、CloudWatch Events が SNS にパブリッシュできるようにし、SNS が SQS にメッセージを送信できるようにします。

AWS IAM ユーザーを構成する

Google SecOps が SQS キュー(使用されるる場合)と S3 バケットの両方にアクセスするために使用する AWS IAM ユーザーを構成します。

  1. AWS コンソールで [IAM] を検索します。
  2. [Users] をクリックし、次の画面で [Create Users] をクリックします。
  3. ユーザー名を指定します(例: chronicle-feed-user)。[Provide user access to the AWS Management Console] を選択します。
  4. [既存のポリシーを直接アタッチする] を選択し、必要に応じて [AmazonS3ReadOnlyAccess] または [AmazonS3FullAccess] を選択します。AWS S3 のストレージの費用を最適化するために、ログの読み取り後に Google SecOps が S3 バケットをクリアする場合は、AmazonS3FullAccess が使用されます。
  5. 前の手順の代わりとして、カスタム ポリシーを作成することで、指定された S3 バケットのみにアクセスをさらに制限できます。[ポリシーを作成] をクリックし、AWS のドキュメントに従ってカスタム ポリシーを作成します。
  6. ポリシーを適用する際は、sqs:DeleteMessage が含まれていることを確認してください。sqs:DeleteMessage 権限が SQS キューにアタッチされていない場合、Google SecOps はメッセージを削除できません。すべてのメッセージは AWS 側に蓄積され、Google SecOps が同じファイルを繰り返し転送しようとするため、遅延が発生します。
  7. [次へ:タグ] をクリックします。
  8. 必要に応じてタグを追加し、[次へ: 確認] をクリックします。
  9. 構成を確認し、[ユーザーを作成] をクリックします。
  10. ユーザーが作成されたら、[セキュリティ認証情報] タブに移動し、[アクセスキーを作成] をクリックします。
  11. [CLI] を選択し、[次へ:タグ] をクリックします。
  12. 必要に応じてタグを追加し、[アクセスキーの作成: 確認] をクリックします。
  13. 作成したユーザーのアクセスキー ID とシークレット アクセスキーをコピーして、次のステップで使用します。

    SubjectID を確認する手順は次のとおりです。

    1. Google SecOps 内で AWS CloudTrail フィードの構成プロセスを開始します。
    2. 指定した Amazon S3 バケットに移動し、AWS CloudTrail ログでフィード設定の試行に関連するエントリを確認します。
    3. 関連するログエントリを開き、未加工の JSON データ内の userIdentity セクションを探します。
    4. このセクションで、principalId フィールドまたは userName フィールドを見つけます。ここに表示される数値は、一意の SubjectID です。
    5. この SubjectID をコピーして AWS IAM ロールの信頼ポリシーに追加し、必要なアクセス権を付与します。

KMS 鍵の権限の構成

サーバーサイドで暗号化された CloudTrail ログを復号するには、KMS 鍵が必要です。AWS KMS は、Amazon S3 に保存されている機密データに対して、強化された暗号化とセキュリティを提供します。

  1. AWS コンソールで [Key Management Service(KMS)] を検索します。
  2. [Create Key:Next] をクリックします。
  3. 鍵のエイリアスを追加します。必要に応じて、説明とタグを追加します。[次へ: 確認] をクリックします。
  4. 構成を確認したら、[次へ] をクリックします。
  5. この鍵へのアクセス権を付与する鍵ユーザーを選択し、[完了] をクリックします。

フィードを設定する

Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。

  • [設定] > [データ管理] > [フィード] > [新しいフィードを追加](SIEM のみのプラットフォームでは、[設定] > [フィード] > [新しいフィードを追加])
  • コンテンツ ハブ > コンテンツ パック > 開始する

AWS CloudTrail フィードの設定方法

  1. [Amazon Cloud Platform] パックをクリックします。
  2. [AWS CloudTrail] ログタイプで、次の値を指定します。
  3. 次のフィールドに値を指定します。

    • ソースタイプ: Amazon SQS V2
    • キュー名: 読み取り元の SQS キュー名
    • S3 URI: バケット URI。
      • s3://your-log-bucket-name/
        • your-log-bucket-name は、S3 バケットの実際の名前に置き換えます。
    • Source deletion options: 取り込みの設定に応じて削除オプションを選択します。

    • ファイルの最長存続期間: 過去数日間に変更されたファイルを含めます。デフォルトは 180 日です。

    • SQS キューのアクセスキー ID: 20 文字の英数字からなるアカウント アクセスキー。

    • SQS キューのシークレット アクセスキー: 40 文字の英数字からなるアカウント アクセスキー。

    詳細オプション

    • フィード名: フィードを識別する事前入力された値。
    • アセットの名前空間: フィードに関連付けられた名前空間。
    • 取り込みラベル: このフィードのすべてのイベントに適用されるラベル。
  4. [フィードを作成] をクリックします。

このプロダクト ファミリー内のさまざまなログタイプに複数のフィードを構成する方法については、プロダクト別にフィードを構成するをご覧ください。

サポートされている AWS CloudTrail ログタイプ

AWS CloudTrail パーサーは、次のサービスをサポートしています。

  • apigateway.amazonaws.com
  • appconfig.amazonaws.com
  • autoscaling.amazonaws.com
  • cloud9.amazonaws.com
  • cloudsearch.amazonaws.com
  • cloudshell.amazonaws.com
  • cloudtrail.amazonaws.com
  • config.amazonaws.com
  • devicefarm.amazonaws.com
  • ds.amazonaws.com
  • dynamodb.amazonaws.com
  • ec2-instance-connect.amazonaws.com
  • ec2.amazonaws.com
  • ecr-public.amazonaws.com
  • ecr.amazonaws.com
  • ecs.amazonaws.com
  • eks.amazonaws.com
  • elasticache.amazonaws.com
  • elasticloadbalancing.amazonaws.com
  • firehose.amazonaws.com
  • guardduty.amazonaws.com
  • health.amazonaws.com
  • iam.amazonaws.com
  • imagebuilder.amazonaws.com
  • kinesis.amazonaws.com
  • kinesisanalytics.amazonaws.com
  • kinesisvideo.amazonaws.com
  • kms.amazonaws.com
  • lambda.amazonaws.com
  • logs.amazonaws.com
  • macie2.amazonaws.com
  • monitoring.amazonaws.com
  • network-firewall.amazonaws.com
  • organizations.amazonaws.com
  • quicksight.amazonaws.com
  • ram.amazonaws.com
  • rds.amazonaws.com
  • resource-explorer-2.amazonaws.com
  • resource-groups.amazonaws.com
  • route53-recovery-readiness.amazonaws.com
  • route53.amazonaws.com
  • route53domains.amazonaws.com
  • route53resolver.amazonaws.com
  • s3-outposts.amazonaws.com
  • s3.amazonaws.com
  • s3express.amazonaws.com
  • secretsmanager.amazonaws.com
  • securityhub.amazonaws.com
  • ses.amazonaws.com
  • signin.amazonaws.com
  • ssm.amazonaws.com
  • sts.amazonaws.com
  • waf-regional.amazonaws.com
  • waf.amazonaws.com
  • wafv2.amazonaws.com

サポートされている AWS CloudTrail ログ形式

AWS CloudTrail パーサーは、JSON 形式のログをサポートしています。

サポートされている AWS CloudTrail のサンプルログ

  • JSON:

    {
      "Records": [{
          "eventVersion": "1.08",
          "userIdentity": {
              "type": "AssumedRole",
              "principalId": "AROAXELJRGZMPHEYTK4Q4:redlock",
              "arn": "arn:aws:sts::111111111111:assumed-role/PrismaCloudReadOnlyRole/redlock",
              "accountId": "111111111111",
              "accessKeyId": "ASIAXELJRGZMNUCV3DC4",
              "sessionContext": {
                  "sessionIssuer": {
                      "type": "Role",
                      "principalId": "AROAXELJRGZMPHEYTK4Q4",
                      "arn": "arn:aws:iam::111111111111:role/PrismaCloudReadOnlyRole",
                      "accountId": "111111111111",
                      "userName": "PrismaCloudReadOnlyRole"
                  },
                  "webIdFederationData": {},
                  "attributes": {
                      "creationDate": "2021-07-01T03:20:01Z",
                      "mfaAuthenticated": "false"
                  }
              }
          },
          "eventTime": "2021-07-01T03:35:42Z",
          "eventSource": "kms.amazonaws.com",
          "eventName": "DescribeKey",
          "awsRegion": "eu-west-1",
          "sourceIPAddress": "198.51.100.0",
          "userAgent": "aws-sdk-java/1.11.1025Linux/4.14.232-176.381.amzn2.x86_64OpenJDK_64-Bit_Server_VM/11.0.10+9java/11.0.10groovy/2.5.12vendor/AdoptOpenJDKcfg/retry-mode/legacy",
          "requestParameters": {
              "keyId": "11a011a1-1010-11a1-a0aa-c4e1a9367642"
          },
          "responseElements": null,
          "requestID": "11a011a1-1010-11a1-a0aa-604ac86fc50e",
          "eventID": "11a011a1-1010-11a1-a0aa-17ef2bdeb889",
          "readOnly": true,
          "resources": [{
              "accountId": "111111111111",
              "type": "AWS::KMS::Key",
              "ARN": "arn:aws:kms:eu-west-1:111111111111:key/11a011a1-1010-11a1-a0aa-c4e1a9367642"
          }],
          "eventType": "AwsApiCall",
          "managementEvent": true,
          "recipientAccountId": "111111111111",
          "eventCategory": "Management"
      }]
    }
    

フィールド マッピングと UDM マッピングの詳細については、AWS Cloudtrail フィールド マッピングをご覧ください。

変更ログ

このパーサーの変更ログを表示する

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