AWS Elastic MapReduce ログを収集する

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

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

このドキュメントでは、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. [Access Keys] セクションで [Create Access Key] をクリックします。
  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. [Edit Cluster] 画面で、[Logging] セクションに移動します。
  7. [ロギングを有効にする] を選択します。
  8. ログを保存する S3 バケットを指定します。
  9. s3://your-bucket-name/ の形式で S3 URI を指定します(これにより、すべての EMR ログがバケットのルートに保存されます)。
  10. 次のログタイプを選択します。
    • Step logs
    • Application logs
    • YARN logs
    • System logs
    • HDFS Logs(Hadoop を使用している場合)
  11. [保存] をクリックします。

フィードを設定する

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

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

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 文字の英数字からなるアカウント アクセスキー。

    詳細オプション

    • フィード名: フィードを識別する事前入力された値。
    • アセットの名前空間: フィードに関連付けられた名前空間。
    • 取り込みラベル: このフィードのすべてのイベントに適用されるラベル。
  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 principal と target の情報の有無に基づいてパーサー ロジックによって決定されます。NETWORK_CONNECTION、USER_RESOURCE_ACCESS、STATUS_UPDATE、GENERIC_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 フィールドからマッピングされます。INFO は INFORMATIONAL にマッピングされ、WARN は MEDIUM にマッピングされます。
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 のプロフェッショナルから回答を得ることができます。