AWS Control Tower ログを収集する

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

このドキュメントでは、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. [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
  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. [トレイルを作成] をクリックして、新しいトレイルを作成します。

  5. [Trail Settings] を指定します。

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

CloudTrail の構成方法

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

フィードを設定する

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

  • [SIEM 設定] > [フィード]
  • [Content Hub] > [Content Packs]

[SIEM 設定] > [フィード] でフィードを設定する

このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。

1 つのフィードを設定する手順は次のとおりです。

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで、[単一フィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: AWS Control Tower Logs)。
  5. [ソースタイプ] として [Amazon S3] を選択します。
  6. [ログタイプ] として [AWS Control Tower] を選択します。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    • リージョン: Amazon S3 バケットが配置されているリージョン。
    • S3 URI: バケット URI。
      • s3://your-log-bucket-name/
        • your-log-bucket-name は、実際の S3 バケットの名前に置き換えます。
    • URI is a: バケット構造に応じて、[ディレクトリ] または [サブディレクトリを含むディレクトリ] を選択します。
    • Source deletion options: 取り込みの設定に応じて削除オプションを選択します。

    • アクセスキー ID: S3 バケットから読み取る権限を持つユーザーのアクセスキー。

    • シークレット アクセスキー: S3 バケットから読み取る権限を持つユーザーのシークレット キー。

    • アセットの名前空間: アセットの名前空間

    • Ingestion labels: このフィードのイベントに適用されるラベル。

  9. [次へ] をクリックします。

  10. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

コンテンツ ハブからフィードを設定する

次のフィールドに値を指定します。

  • リージョン: Amazon S3 バケットが配置されているリージョン。
  • S3 URI: バケット URI。
    • s3://your-log-bucket-name/
      • your-log-bucket-name は、実際の S3 バケットの名前に置き換えます。
  • URI is a: バケット構造に応じて、[ディレクトリ] または [サブディレクトリを含むディレクトリ] を選択します。
  • Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
  • アクセスキー ID: S3 バケットから読み取る権限を持つユーザーのアクセスキー。

  • シークレット アクセスキー: S3 バケットから読み取る権限を持つユーザーのシークレット キー。

詳細オプション

  • フィード名: フィードを識別する事前入力された値。
  • ソースタイプ: Google SecOps にログを収集するために使用される方法。
  • Asset Namespace: フィードに関連付けられた名前空間
  • Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。

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 のプロフェッショナルから回答を得ることができます。