手動パーティショニングを使用して組織全体の証跡用のテーブルを作成する - Amazon Athena

手動パーティショニングを使用して組織全体の証跡用のテーブルを作成する

Athena で組織全体の CloudTrail ログファイル用のテーブルを作成するには、「Athena で手動パーティショニングを使用して CloudTrail ログ用のテーブルを作成する」(Athena で手動パーティショニングを使用して CloudTrail ログ用のテーブルを作成する) の手順に従います。ただし、次の手順に記載されている変更を加えてください。

組織全体の CloudTrail ログ用の Athena テーブルを作成するには
  1. 次の例のように、CREATE TABLE ステートメントで、組織 ID が含まれるように LOCATION 句を変更します。

    LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/organization_id/'
  2. 次の例のように、PARTITIONED BY 句で、アカウント ID のエントリを文字列として追加します。

    PARTITIONED BY (account string, region string, year string, month string, day string)

    次の例は、結合された結果を示しています。

    ... PARTITIONED BY (account string, region string, year string, month string, day string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/organization_id/Account_ID/CloudTrail/'
  3. 次の例のように、ALTER TABLE ステートメントの ADD PARTITION 句には、アカウント ID を含めます。

    ALTER TABLE table_name ADD PARTITION (account='111122223333', region='us-east-1', year='2022', month='08', day='08')
  4. 次の例のように、ALTER TABLE ステートメントの LOCATION 句には、追加する組織 ID、アカウント ID、パーティションを含めます。

    LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/organization_id/Account_ID/CloudTrail/us-east-1/2022/08/08/'

    次の例では、ALTER TABLE ステートメントは結合された結果を示します。

    ALTER TABLE table_name ADD PARTITION (account='111122223333', region='us-east-1', year='2022', month='08', day='08') LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/organization_id/111122223333/CloudTrail/us-east-1/2022/08/08/'

大規模な組織では、この方法を使用して各組織アカウント ID のパーティションを手動で追加および維持するのは面倒である可能性があることに留意してください。このようなシナリオでは、Athena ではなく CloudTrail Lake の利用を検討してください。このようなシナリオにおいて CloudTrail Lake を利用することには、次の利点があります:

  • 組織全体のログを自動的に集約する

  • パーティションまたは Athena テーブルの設定やメンテナンスが不要

  • クエリが CloudTrail コンソールで直接実行される

  • SQL 互換のクエリ言語を使用する

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