AWS Glue による AWS CloudTrail API コールのログ記録
AWS Glue は AWS CloudTrail という、AWS Glue の ユーザー、ロール、または AWS のサービスが実行したアクションを記録するサービスと統合しています。CloudTrail は、AWS Glue のすべての API コールをイベントとしてキャプチャします。キャプチャされたコールには、AWS Glue コンソールのコールと、AWS Glue API オペレーションへのコードのコールが含まれます。証跡を作成する場合は、AWS Glue のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます 証跡を設定しない場合でも、「CloudTrail」 コンソールの 「イベント履歴」 で最新のイベントを表示できます。CloudTrail が収集した情報を使用して、AWS Glue に対して行われた要求、要求が行われた IP アドレス、要求を行った人、要求が行われた日時、および追加の詳細を判別できます。
CloudTrail の詳細については、「AWS CloudTrail ユーザーガイド」を参照してください。
CloudTrail の AWS Glue 情報
CloudTrailは、アカウントを作成するとAWSアカウントで有効になります。AWS Glue でアクティビティが発生すると、そのアクティビティは Event history イベント履歴で AWS のその他のサービスのイベントと共に CloudTrail イベントに記録されます。最近のイベントは、AWSアカウントで表示、検索、ダウンロードできます。詳細については、「CloudTrailイベント履歴でのイベントの表示」を参照してください。
AWSのイベントなど、AWS Glueアカウントのイベントの継続的なレコードについては、追跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成すると、すべての AWS リージョンに証跡が適用されます。証跡は、AWSパーティションのすべてのリージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。さらに、CloudTrail ログで収集したイベントデータをより詳細に分析し、それに基づいて対応するため、他の AWS サービスを構成できます。詳細については、次を参照してください:
すべての AWS Glue アクションは CloudTrail によってログに記録され、AWS Glue API に記録されます。例えば、CreateDatabase
、CreateTable
、CreateScript
の各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。
各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。同一性情報は次の判断に役立ちます。
-
リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。
-
リクエストがロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報を使用して行われたかどうか。
-
リクエストが別の AWS サービスによって行われたかどうか。
詳細については、「CloudTrail userIdentity Element」(CloudTrail userIdentity 要素) を参照してください。
ただし、CloudTrail は呼び出しに関するすべての情報は記録しません。たとえば、接続リクエストで使用される ConnectionProperties
などの機密情報は記録せず、次の API によって返される応答の代わりに null
を記録します。
BatchGetPartition GetCrawlers GetJobs GetTable
CreateScript GetCrawlerMetrics GetJobRun GetTables
GetCatalogImportStatus GetDatabase GetJobRuns GetTableVersions
GetClassifier GetDatabases GetMapping GetTrigger
GetClassifiers GetDataflowGraph GetObjects GetTriggers
GetConnection GetDevEndpoint GetPartition GetUserDefinedFunction
GetConnections GetDevEndpoints GetPartitions GetUserDefinedFunctions
GetCrawler GetJob GetPlan
AWS Glue ログファイルエントリの理解
追跡は、指定したAmazon S3バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントは任意ソースからの単一リクエストを表し、リクエストされたアクション、アクションの日時、リクエストパラメータなどの情報を含みます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。
以下の例は、DeleteCrawler
アクションを示す CloudTrail ログエントリです。
{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:user/johndoe", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "johndoe" }, "eventTime": "2017-10-11T22:29:49Z", "eventSource": "glue.amazonaws.com", "eventName": "DeleteCrawler", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.198.64", "userAgent": "aws-cli/1.11.148 Python/3.6.1 Darwin/16.7.0 botocore/1.7.6", "requestParameters": { "name": "tes-alpha" }, "responseElements": null, "requestID": "b16f4050-aed3-11e7-b0b3-75564a46954f", "eventID": "e73dd117-cfd1-47d1-9e2f-d1271cad838c", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }
この例では、CreateConnection
アクションを表す CloudTrail ログエントリを示しています。
{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:user/johndoe", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "johndoe" }, "eventTime": "2017-10-13T00:19:19Z", "eventSource": "glue.amazonaws.com", "eventName": "CreateConnection", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.198.66", "userAgent": "aws-cli/1.11.148 Python/3.6.1 Darwin/16.7.0 botocore/1.7.6", "requestParameters": { "connectionInput": { "name": "test-connection-alpha", "connectionType": "JDBC", "physicalConnectionRequirements": { "subnetId": "subnet-323232", "availabilityZone": "us-east-1a", "securityGroupIdList": [ "sg-12121212" ] } } }, "responseElements": null, "requestID": "27136ebc-afac-11e7-a7d6-ab217e5c3f19", "eventID": "e8b3baeb-c511-4597-880f-c16210c60a4a", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }