AWS CloudTrail に Amazon EMR API 呼び出しをログ記録する - Amazon EMR

AWS CloudTrail に Amazon EMR API 呼び出しをログ記録する

Amazon EMR は、Amazon EMR でユーザー、ロール、または AWS サービスが実行したアクションを記録するためのサービスである AWS CloudTrail と統合されています。CloudTrail は、Amazon EMR に対するすべての API 呼び出しをイベントとしてキャプチャします。キャプチャされる呼び出しには、Amazon EMR コンソールからの呼び出しと、Amazon EMR API 操作へのコード呼び出しが含まれます。証跡を作成すると、Amazon EMR に対するイベントなどの、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にできます。追跡を設定しない場合でも、CloudTrail コンソールの [Event history] (イベント履歴) で最新のイベントを表示できます。CloudTrail で収集された情報を使用して、Amazon EMR に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。

CloudTrail の詳細については、AWS CloudTrail ユーザーガイドを参照してください。

CloudTrail 内の Amazon EMR 情報

AWS アカウントを作成すると、そのアカウントに対して CloudTrail が有効になります。Amazon EMR でアクティビティが発生すると、そのアクティビティは他の AWS サービスのイベントとともに CloudTrail イベントの [イベント履歴] に記録されます。AWS アカウントで最近のイベントを表示、検索、ダウンロードできます。詳細については、「CloudTrail Event 履歴でのイベントの表示」を参照してください。

Amazon EMR に対するイベントなどの、AWS アカウントの進行中のイベントを記録するには、証跡を作成します。追跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで追跡を作成するときに、追跡がすべての AWS リージョンに適用されます。追跡は、AWSパーティションのすべてのリージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。さらに、CloudTrail ログで収集したイベントデータをより詳細に分析し、それに基づく対応するためにその他の AWS のサービスを設定できます。詳細については、次を参照してください。

すべてのAmazon EMR アクションは、CloudTrail が記録します。これらの説明については、「Amazon EMR API リファレンス」を参照してください。例えば、RunJobFlowListClusterDescribeClusterの各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。アイデンティティ情報は、以下を判別するのに役立ちます。

  • リクエストが、ルート認証情報と AWS Identity and Access Management (IAM) ユーザー認証情報のどちらを使用して送信されたか。

  • リクエストがロールまたはフェデレーティッドユーザーのテンポラリなセキュリティ認証情報を使用して行われたかどうか。

  • リクエストが、別の AWS のサービスによって送信されたかどうか。

ユーザーではなくプロセスがクラスターを作成する場合は、principalId 識別子を使用して、クラスターの作成に関連付けられているユーザーを特定できます。詳細については、「CloudTrail userIdentity エレメント」を参照してください。

例: Amazon EMR ログファイルのエントリ

「トレイル」は、指定した Simple Storage Service (Amazon S3) バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルには、単一か複数のログエントリがあります。イベントはあらゆるソースからの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどの情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

RunJobFlow アクションを示す CloudTrail ログエントリの例を次に示します。

{ "Records": [ { "eventVersion":"1.01", "userIdentity":{ "type":"IAMUser", "principalId":"EX_PRINCIPAL_ID", "arn":"arn:aws:iam::123456789012:user/temporary-user-xx-7M", "accountId":"123456789012", "userName":"temporary-user-xx-7M" }, "eventTime":"2018-03-31T17:59:21Z", "eventSource":"elasticmapreduce.amazonaws.com", "eventName":"RunJobFlow", "awsRegion":"us-west-2", "sourceIPAddress":"192.0.2.1", "userAgent":"aws-sdk-java/unknown-version Linux/xx Java_HotSpot(TM)_64-Bit_Server_VM/xx", "requestParameters":{ "tags":[ { "value":"prod", "key":"domain" }, { "value":"us-west-2", "key":"realm" }, { "value":"VERIFICATION", "key":"executionType" } ], "instances":{ "slaveInstanceType":"m5.xlarge", "ec2KeyName":"emr-integtest", "instanceCount":1, "masterInstanceType":"m5.xlarge", "keepJobFlowAliveWhenNoSteps":true, "terminationProtected":false }, "visibleToAllUsers":false, "name":"MyCluster", "ReleaseLabel":"emr-5.16.0" }, "responseElements":{ "jobFlowId":"j-2WDJCGEG4E6AJ" }, "requestID":"2f482daf-b8fe-11e3-89e7-75a3d0e071c5", "eventID":"b348a38d-f744-4097-8b2a-e68c9b424698" }, ...additional entries ] }