AWS Elastic MapReduce ログを収集する

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

このドキュメントでは、AWS Elastic MapReduce(EMR)ログを Google Security Operations に取り込む方法について説明します。AWS EMR は、大量のデータを迅速に処理するクラウドネイティブのビッグデータ プラットフォームです。EMR ログを Google SecOps に統合すると、クラスタ アクティビティを分析して、潜在的なセキュリティ上の脅威を検出できます。

始める前に

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

  • 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 EMR を構成する方法

  1. AWS Management Console にログインします。
  2. 検索バーに「EMR」と入力し、サービスリストから [Amazon EMR] を選択します。
  3. [クラスタ] をクリックします。
  4. ロギングを有効にする EMR クラスタを見つけて選択します。
  5. [クラスタの詳細] ページで、[編集] をクリックします。
  6. [クラスタの編集] 画面で、[ロギング] セクションに移動します。
  7. [ロギングを有効にする] を選択します。
  8. ログが保存される S3 バケットを指定します。
  9. S3 URIs3://your-bucket-name/ の形式で指定します(これにより、すべての EMR ログがバケットのルートに保存されます)。
  10. 次のログタイプを選択します。
    • Step logs
    • Application logs
    • YARN logs
    • System logs
    • HDFS Logs(Hadoop を使用している場合)
  11. [保存] をクリックします。

フィードを設定する

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

  • [SIEM 設定] > [フィード] > [新しいフィードを追加]
  • Content Hub > Content Packs > Get Started

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

  1. [Amazon Cloud Platform] パックをクリックします。
  2. AWS EMR ログタイプを見つけます。
  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 マッピング ロジック
app_id additional.fields[].key 値「APP」はパーサーによって割り当てられます
app_id additional.fields[].value.string_value 未加工ログの APP フィールドから直接マッピングされます。
app_name additional.fields[].key 値「APPNAME」はパーサーによって割り当てられます
app_name additional.fields[].value.string_value 未加工ログの APPNAME フィールドから直接マッピングされます。
blockid additional.fields[].key 値「blockid」はパーサーによって割り当てられます
blockid additional.fields[].value.string_value 未加工ログの blockid フィールドから直接マッピングされます。
bytes network.received_bytes 未加工ログの bytes フィールドから直接マッピングされ、符号なし整数に変換されます。
cliID additional.fields[].key 値「cliID」はパーサーによって割り当てられます
cliID additional.fields[].value.string_value 未加工ログの cliID フィールドから直接マッピングされます。
cmd target.process.command_line 未加工ログの cmd フィールドから直接マッピングされます。
comp_name additional.fields[].key 値「COMP」はパーサーによって割り当てられます
comp_name additional.fields[].value.string_value 未加工ログの COMP フィールドから直接マッピングされます。
configuration_version additional.fields[].key 値「configuration_version」はパーサーによって割り当てられます
configuration_version additional.fields[].value.string_value 未加工ログの configuration_version フィールドから直接マッピングされ、文字列に変換されます。
containerID additional.fields[].key 値「containerID」はパーサーによって割り当てられます
containerID additional.fields[].value.string_value 未加工ログの CONTAINERID フィールドから直接マッピングされます。
description security_result.description 未加工ログの description フィールドから直接マッピングされます。
dfs.FSNamesystem.* additional.fields[].key キーは、「dfs.FSNamesystem.」と JSON データのキーを連結して生成されます。
dfs.FSNamesystem.* additional.fields[].value.string_value 値は dfs.FSNamesystem JSON オブジェクトの対応する値から直接マッピングされ、文字列に変換されます。
duration additional.fields[].key 値「duration」はパーサーによって割り当てられます
duration additional.fields[].value.string_value 未加工ログの duration フィールドから直接マッピングされます。
duration network.session_duration.seconds 未加工ログの duration フィールドから直接マッピングされ、整数に変換されます。
environment additional.fields[].key 値「environment」はパーサーによって割り当てられます
environment additional.fields[].value.string_value 未加工ログの environment フィールドから直接マッピングされます。Grok と文字列操作を使用して ip_port フィールドから抽出されます。grok と文字列操作を使用して ip_port フィールドから抽出され、整数に変換されます。
event_type metadata.event_type principaltarget の情報の有無に基づいてパーサー ロジックによって決定されます。NETWORK_CONNECTIONUSER_RESOURCE_ACCESSSTATUS_UPDATEGENERIC_EVENT のいずれかになります。
file_path target.file.full_path 未加工ログの file_path フィールドから直接マッピングされます。
host principal.hostname 未加工ログの host フィールドから直接マッピングされます。
host target.hostname 未加工ログの host フィールドから直接マッピングされます。
host_ip principal.ip 未加工ログの host_ip フィールドから直接マッピングされます。
host_port principal.port 未加工ログの host_port フィールドから直接マッピングされ、整数に変換されます。
http_url target.url 未加工ログの http_url フィールドから直接マッピングされます。
index additional.fields[].key 値「index」はパーサーによって割り当てられます
index additional.fields[].value.string_value 未加工ログの index フィールドから直接マッピングされます。
kind metadata.product_event_type 未加工ログの kind フィールドから直接マッピングされます。値「AWS_EMR」はパーサーによって割り当てられます。値「AWS EMR」はパーサーによって割り当てられます。値「AMAZON」はパーサーによって割り当てられます。
offset additional.fields[].key 値「offset」はパーサーによって割り当てられます
offset additional.fields[].value.string_value 未加工ログの offset フィールドから直接マッピングされます。
op metadata.product_event_type 未加工ログの op フィールドまたは OPERATION フィールドから直接マッピングされます。
proto network.application_protocol grok を使用して http_url フィールドから抽出され、大文字に変換されます。
puppet_version additional.fields[].key 値「puppet_version」はパーサーによって割り当てられます
puppet_version additional.fields[].value.string_value 未加工ログの puppet_version フィールドから直接マッピングされます。
queue_name additional.fields[].key 値「queue_name」はパーサーによって割り当てられます
queue_name additional.fields[].value.string_value 未加工ログの queue_name フィールドから直接マッピングされます。
report_format additional.fields[].key 値「report_format」はパーサーによって割り当てられます
report_format additional.fields[].value.string_value 未加工ログの report_format フィールドから直接マッピングされ、文字列に変換されます。
resource additional.fields[].key 値「resource」はパーサーによって割り当てられます
resource additional.fields[].value.string_value 未加工ログの resource フィールドから直接マッピングされます。
result security_result.action_details 未加工ログの RESULT フィールドから直接マッピングされます。
security_id additional.fields[].key 値「security_id」はパーサーによって割り当てられます
security_id additional.fields[].value.string_value 未加工ログの security_id フィールドから直接マッピングされます。
severity security_result.severity 未加工ログの severity フィールドからマッピングされます。INFOINFORMATIONAL にマッピングされ、WARNMEDIUM にマッピングされます。
srvID additional.fields[].key 値「srvID」はパーサーによって割り当てられます
srvID additional.fields[].value.string_value 未加工ログの srvID フィールドから直接マッピングされます。
status additional.fields[].key 値「status」はパーサーによって割り当てられます
status additional.fields[].value.string_value 未加工ログの status フィールドから直接マッピングされます。
summary security_result.summary 未加工ログの summary フィールドから直接マッピングされます。
target_app target.application 未加工ログの TARGET フィールドから直接マッピングされます。
target_ip target.ip 未加工ログの target_ip フィールドまたは IP フィールドから直接マッピングされます。
target_port target.port 未加工ログの target_port フィールドから直接マッピングされ、整数に変換されます。
timestamp metadata.event_timestamp 未加工ログの timestamp フィールドから直接マッピングされ、ISO8601 タイムスタンプとして解析されます。
timestamp event.timestamp 未加工ログの timestamp フィールドから直接マッピングされ、ISO8601 タイムスタンプとして解析されます。
trade_date additional.fields[].key 値「trade_date」はパーサーによって割り当てられます
trade_date additional.fields[].value.string_value 未加工ログの trade_date フィールドから直接マッピングされます。
transaction_uuid additional.fields[].key 値「transaction_uuid」はパーサーによって割り当てられます
transaction_uuid additional.fields[].value.string_value 未加工ログの transaction_uuid フィールドから直接マッピングされます。
type additional.fields[].key 値「type」はパーサーによって割り当てられます
type additional.fields[].value.string_value 未加工ログの type フィールドから直接マッピングされます。
user target.user.userid 未加工ログの USER フィールドまたは ugi フィールドから直接マッピングされます。

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