AWS Control Tower ログを収集する

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

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

このドキュメントでは、AWS Control Tower のログを Google Security Operations に取り込む方法について説明します。AWS Control Tower を使用すると、複数の AWS アカウントにわたってガバナンス、コンプライアンス、セキュリティ モニタリングを行うことができます。この統合により、AWS Control Tower のログを分析して、可視性とセキュリティ ポスチャーを向上させることができます。

始める前に

次の前提条件を満たしていることを確認します。

  • Google SecOps インスタンス
  • AWS への特権アクセス

Amazon S3 バケットを構成する

  1. バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
  2. 後で使用するために、バケットの名前とリージョンを保存します。
  3. IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
  4. 作成したユーザーを選択します。
  5. [セキュリティ認証情報] タブを選択します。
  6. [Access Keys] セクションで [Create Access Key] をクリックします。
  7. [ユースケース] として [サードパーティ サービス] を選択します。
  8. [次へ] をクリックします。
  9. (省略可)説明タグを追加します。
  10. [アクセスキーを作成] をクリックします。
  11. [CSV ファイルをダウンロード] をクリックし、[アクセスキー] と [シークレット アクセスキー] を保存して、後で使用できるようにします。
  12. [完了] をクリックします。
  13. [権限] タブを選択します。
  14. [権限ポリシー] セクションで [権限を追加] をクリックします。
  15. [権限を追加] を選択します。
  16. [ポリシーを直接アタッチする] を選択します。
  17. AmazonS3FullAccess ポリシーと CloudWatchLogsFullAccess ポリシーを検索して選択します。
  18. [次へ] をクリックします。
  19. [権限を追加] をクリックします。

AWS Control Tower で CloudTrail を構成する

  1. AWS Management Console にログインします。
  2. AWS Control Tower に移動します。
  3. 検索バーに「CloudTrail」と入力し、サービスリストから選択します。
  4. [Create Trail] をクリックして、新しいトレイルを作成します。

  5. トライアル設定を指定する:

    • Trail name: トレイルにわかりやすい名前を付けます(例: ControlTowerTrail)。
    • すべてのリージョンに証跡を適用する: [すべてのリージョンに証跡を適用する] で [はい] を選択します。
    • 管理イベント: 読み取り / 書き込みイベントが [すべて] に設定されていることを確認します。
    • 省略可: データイベント: S3 データイベントと Lambda データイベントを有効にして、詳細なデータ アクティビティをキャプチャします。
    • 省略可: ログファイルの検証: これを有効にすると、ログファイルが保存された後に改ざんされないようにすることができます。
  6. [Event] セレクタで、[Management events] と [Data events] をログに記録するように選択します。

CloudTrail の構成方法

  1. AWS IAM コンソールに移動します。
  2. [役割] をクリックします。
  3. CloudTrail が使用するロール AWSServiceRoleForCloudTrail を検索します(このロールは、CloudTrail を設定するときに自動的に作成されます)。
  4. ロールの [Permissions] タブで、[Attach policies] をクリックします。
  5. CloudTrailS3DeliveryPolicy を検索します。
  6. CloudTrailS3DeliveryPolicy ポリシーの横にあるチェックボックスをオンにします。
  7. [ポリシーをアタッチ] をクリックします。
  8. AWS CloudTrail コンソールに移動します。
  9. [Storage location] セクションで、ログファイルの保存先として [S3] を選択します。
  10. 前に作成した S3 バケットを選択します。
  11. 選択したバケットにログを書き込む権限を CloudTrail に付与するよう求められたら、[Allow] をクリックします。
  12. 設定を確認し、[Create] をクリックします(既存のトレイルを編集している場合は [Save changes] をクリックします)。

フィードを設定する

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

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

AWS Control Tower フィードを設定する方法

  1. [Amazon Cloud Platform] パックをクリックします。
  2. AWS Control Tower ログタイプを見つけます。
  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 文字の英数字からなるアカウント アクセスキー。

    詳細オプション

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

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

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
awsAccountId target.user.group_identifiers イベントに関連付けられた AWS アカウント ID。
digestPublicKeyFingerprint target.file.sha1 ダイジェストの署名に使用される公開鍵のフィンガープリント。
digestPublicKeyFingerprint target.resource.attribute.labels.value ダイジェストの署名に使用される公開鍵のフィンガープリント。
digestS3Bucket target.resource.name ダイジェストが保存される S3 バケットの名前。
digestS3Object target.file.full_path S3 バケット内のダイジェスト オブジェクトへのパス。
digestSignatureAlgorithm network.tls.cipher ダイジェストの署名に使用されるアルゴリズム。
digestSignatureAlgorithm target.resource.attribute.labels.value ダイジェストの署名に使用されるアルゴリズム。
digestStartTime metadata.event_timestamp ダイジェスト期間の開始時刻。eventTime が使用できない場合に、イベント時間として使用されます。
eventCategory security_result.category_details イベントのカテゴリ。
eventID metadata.product_log_id イベントの一意の ID。
eventName metadata.product_event_type イベントの名前。
eventName security_result.summary イベントの名前。セキュリティ結果の要約の生成に使用されます。
eventSource target.application イベントのソース。
eventTime metadata.event_timestamp イベントの発生時間。
eventType additional.fields.value.string_value イベントのタイプ。
logFiles.hashValue about.file.sha256 ログファイルの SHA-256 ハッシュ。
logFiles.s3Bucket about.resource.name ログファイルが保存されている S3 バケットの名前。
logFiles.s3Object about.file.full_path S3 バケット内のログファイル オブジェクトのパス。
previousDigestHashValue target.file.sha256 前のダイジェストの SHA-256 ハッシュ。
recipientAccountId target.resource.attribute.labels.value イベントの受信者の AWS アカウント ID。
Records.awsRegion principal.location.name イベントが発生した AWS リージョン。
Records.errorCode security_result.rule_id リクエストに関連付けられているエラーコード(存在する場合)。
Records.errorMessage security_result.description リクエストに関連付けられているエラー メッセージ(存在する場合)。
Records.eventCategory security_result.category_details イベントのカテゴリ。
Records.eventID metadata.product_log_id イベントの一意の ID。
Records.eventName metadata.product_event_type イベントの名前。
Records.eventName security_result.summary イベントの名前。セキュリティ結果の要約の生成に使用されます。
Records.eventSource target.application イベントのソース。
Records.eventTime metadata.event_timestamp イベントの発生時間。
Records.eventType additional.fields.value.string_value イベントのタイプ。
Records.requestID target.resource.attribute.labels.value リクエストの ID。
Records.requestParameters.groupName target.group.group_display_name リクエストに関連付けられているグループの名前(存在する場合)。
Records.requestParameters.userName src.user.userid リクエストに関連付けられているユーザーの名前(存在する場合)。
Records.requestParameters.userName src.user.user_display_name リクエストに関連付けられているユーザーの名前(存在する場合)。
Records.responseElements.ConsoleLogin security_action コンソール ログイン試行の結果。
Records.responseElements.ConsoleLogin security_result.summary コンソール ログイン試行の結果。セキュリティ結果の概要の生成に使用されます。
Records.sourceIPAddress principal.hostname プリンシパルの IP アドレス。有効な IP でない場合はホスト名として使用されます。
Records.sourceIPAddress principal.ip プリンシパルの IP アドレス。
Records.tlsDetails.cipherSuite network.tls.cipher TLS 接続に使用される暗号スイート。
Records.tlsDetails.tlsVersion network.tls.version 接続に使用される TLS バージョン。
Records.userAgent network.http.user_agent リクエストのユーザー エージェント。
Records.userIdentity.accessKeyId additional.fields.value.string_value リクエストに使用されるアクセスキー ID。
Records.userIdentity.accountId principal.user.group_identifiers ユーザーの AWS アカウント ID。
Records.userIdentity.arn principal.user.attribute.labels.value ユーザーの ARN。
Records.userIdentity.arn target.user.userid ユーザーの ARN。userName が使用できない場合に userid として使用されます。
Records.userIdentity.principalId principal.user.product_object_id ユーザーのプリンシパル ID。
Records.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels.value リクエストに MFA が使用されたかどうか。
Records.userIdentity.sessionContext.sessionIssuer.userName principal.user.userid セッションを発行したユーザーのユーザー名。
Records.userIdentity.type principal.resource.type リクエストに使用される ID のタイプ。
Records.userIdentity.userName target.user.userid ユーザーのユーザー名。
- extensions.auth.mechanism 「REMOTE」に設定します。
- metadata.event_type eventName に基づいて「STATUS_UPDATE」、「USER_RESOURCE_ACCESS」、「USER_LOGIN」、「GENERIC_EVENT」のいずれかに設定されます。
- metadata.log_type 「AWS_CONTROL_TOWER」に設定します。
- metadata.product_name 「AWS Control Tower」に設定します。
- metadata.vendor_name 「AWS」に設定します。
- principal.asset.attribute.cloud.environment 「AMAZON_WEB_SERVICES」に設定します。
- security_result.action errorCode に基づいて「ALLOW」または「BLOCK」に設定されます。
- security_result.severity 「INFORMATIONAL」に設定します。

変更ログ

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

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