AWS CloudTrail を使用した AWS Lake Formation API コールのロギング - AWS Lake Formation

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CloudTrail を使用した AWS Lake Formation API コールのロギング

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

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

CloudTrail 内の Lake Formation 情報

新しい AWS アカウントを作成すると、CloudTrail がデフォルトで有効になります。Lake Formation でアクティビティが発生すると、そのアクティビティは、他の AWS のサービスのイベントとともに、CloudTrail イベントとして [Event history] (イベント履歴) に記録されます。イベントは、あらゆるソースからの単一のリクエストを表し、リクエストされたアクション、アクションの日時、およびリクエストパラメータに関する情報が含まれています。さらに、すべてのイベントまたはログエントリには、リクエストの生成元に関する情報も含まれています。アイデンティティ情報は、以下を判断するために役立ちます。

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

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

  • リクエストが別の AWS サービスによって行われたかどうか。

詳細については、「CloudTrail userIdentity エレメント」を参照してください。

AWS アカウントの最近のイベントを、表示、検索、およびダウンロードすることができます。詳細については、「CloudTrail Event 履歴でのイベントの表示」を参照してください。

Lake Formation のイベントを含めた AWS アカウントにおけるイベントを継続的に記録するには、証跡を作成します。証跡は、CloudTrail がログファイルを Amazon S3 バケットに配信することを可能にします。デフォルトでは、コンソールで追跡を作成すると、すべての AWS リージョンに追跡が適用されます。追跡は、AWS パーティション内のすべてのリージョンからのイベントをログに記録し、ユーザー指定の Amazon S3 バケットにログファイルを配信します。さらに、Amazon Athena などのその他の AWS のサービスを設定して、CloudTrail ログで収集されたデータをより詳細に分析し、それに基づく対応を行うことができます。CloudTrail は、Amazon CloudWatch Logs および CloudWatch Events にログファイルを配信することもできます。

詳細については、以下を参照してください。

Lake Formation イベントについて

Lake Formation API のすべてのアクションは CloudTrail によってログに記録され、これらは「AWS Lake Formation デベロッパーガイド」に記載されています。例えば PutDataLakeSettingsGrantPermissions、および RevokePermissions アクションに対する呼び出しは、CloudTrail ログファイルにエントリを生成します。

以下は、GrantPermissions アクションに対する CloudTrail イベントを示す例です。このエントリには、許可を付与したユーザー (datalake_admin)、許可が付与されたプリンシパル (datalake_user1)、および付与された許可 (CREATE_TABLE) が含まれています。このエントリは、resource 引数にターゲットデータベースが指定されていなかったために、付与が失敗したことも示しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "AIDAZKE67KM3P775X74U2", "arn": "arn:aws:iam::111122223333:user/datalake_admin", "accountId": "111122223333", "accessKeyId": "...", "userName": "datalake_admin" }, "eventTime": "2021-02-06T00:43:21Z", "eventSource": "lakeformation.amazonaws.com", "eventName": "GrantPermissions", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.198.65", "userAgent": "aws-cli/1.19.0 Python/3.6.12 Linux/4.9.230-0.1.ac.223.84.332.metal1.x86_64 botocore/1.20.0", "errorCode": "InvalidInputException", "errorMessage": "Resource must have one of the have either the catalog, table or database field populated.", "requestParameters": { "principal": { "dataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1" }, "resource": {}, "permissions": [ "CREATE_TABLE" ] }, "responseElements": null, "requestID": "b85e863f-e75d-4fc0-9ff0-97f943f706e7", "eventID": "8d2ccef0-55f3-42d3-9ede-3a6faedaa5c1", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }

以下は、GetDataAccess アクションに対する CloudTrail ログエントリを示す例です。プリンシパルは、この API を直接コール呼び出しません。むしろ、プリンシパル、または統合された AWS のサービスが、Lake Formation に登録されているデータレイク内のデータにアクセスするための一時的な認証情報をリクエストするたびに、GetDataAccess がログに記録されます。

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AROAQGFTBBBGOBWV2EMZA:GlueJobRunnerSession", "accountId": "111122223333" }, "eventSource": "lakeformation.amazonaws.com", "eventName": "GetDataAccess", ... ... "additionalEventData": { "requesterService": "GLUE_JOB", "lakeFormationPrincipal": "arn:aws:iam::111122223333:role/ETL-Glue-Role", "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-G13T0Rmng2" }, ... }
以下も参照してください。