イベントデータストアのフェデレーション - AWS CloudTrail

イベントデータストアのフェデレーション

イベントデータストアのフェデレーションを行うと、AWS Glue Data Catalog 内のイベントデータストアに関連付けられたメタデータを表示できるようになり、Data Catalog が AWS Lake Formation に登録され、Amazon Athena を使用してイベントデータに対して SQL クエリを実行できるようになります。AWS Glue データカタログにあるテーブルメタデータにより、Athena クエリエンジンは、クエリするデータを検索、読み込み、および処理する方法を把握できるようになります。

CloudTrail コンソール、AWS CLI、または EnableFederation API オペレーションを使用してフェデレーションを有効にできます。Lake クエリフェデレーションを有効にすると、CloudTrail は aws:cloudtrail という名前のマネージドデータベース (データベースがまだ存在しない場合) とマネージドフェデレーションテーブルを AWS Glue Data Catalog に作成します。イベントデータストア ID はテーブル名に使用されます。CloudTrail は、フェデレーションロール ARN とイベントデータストアを、AWS Glue Data Catalog 内のフェデレーションリソースのきめ細かなアクセス制御を可能にするサービスである AWS Lake Formation に登録します。

Lake クエリフェデレーションを有効にするには、新しい IAM ロールを作成するか、既存のロールを選択する必要があります。Lake Formation はこのロールを使用して、フェデレーションイベントデータストアのアクセス許可を管理します。CloudTrail コンソールを使用して新しいロールを作成すると、ロールには必要なアクセス許可が CloudTrail により自動的に作成されます。既存のロールを選択する場合は、ロールが最小限のアクセス許可を提供していることを確認してください。

CloudTrail コンソール、AWS CLI、または DisableFederation API オペレーションを使用してフェデレーションを無効にできます。フェデレーションを無効にすると、CloudTrail は、AWS Glue、AWS Lake Formation、および Amazon Athena との統合を無効にします。Lake クエリフェデレーションを無効にした後は、Athena でイベントデータをクエリできなくなります。フェデレーションを無効にしても CloudTrail Lake のデータは削除されず、CloudTrail Lake で引き続きクエリを実行できます。

CloudTrail Lake イベントデータストアのフェデレーションには CloudTrail の料金はかかりません。Amazon Athena でクエリを実行するにはコストがかかります。Athena の料金の詳細については、「Amazon Athena の料金」を参照してください。

考慮事項

イベントデータストアのフェデレーションを行う場合は、以下の要素を考慮してください。

  • CloudTrail Lake イベントデータストアのフェデレーションには CloudTrail の料金はかかりません。Amazon Athena でクエリを実行するにはコストがかかります。Athena の料金の詳細については、「Amazon Athena の料金」を参照してください。

  • Lake Formation は、フェデレーションリソースのアクセス許可を管理するために使用されます。フェデレーションロールを削除したり、Lake Formation や AWS Glue からのリソースへのアクセス許可を取り消したりすると、Athena からクエリを実行できなくなります。Lake Formation 操作の詳細については、AWS Lake Formation による CloudTrail レイクフェデレーションリソースの管理 を参照してください。

  • Lake Formation に登録されたデータのクエリに Amazon Athena を使用するユーザーには、lakeformation:GetDataAccess アクションを許可する IAM アクセス許可ポリシーが必要です。AWS 管理ポリシー AmazonAthenaFullAccess は、このアクションを許可します。インラインポリシーを使用する場合は、このアクションを許可するように許可ポリシーを更新してください。詳細については、「Lake Formation と Athena ユーザー許可の管理」を参照してください。

  • Athena のフェデレーションテーブルにビューを作成するには、aws:cloudtrail 以外の送信先データベースが必要です。これは、aws:cloudtrail データベースが CloudTrail によって管理されているためです。

  • Amazon QuickSight でデータセットを作成するには、[カスタム SQL を使用] オプションを選択する必要があります。詳細については、「Amazon Athena データを使用したデータセットの作成」を参照してください。

  • フェデレーションが有効になっている場合、イベントデータストアを削除することはできません。フェデレーションイベントデータストアを削除するには、まず、フェデレーションを無効化し、終了保護が有効になっている場合はこれも無効にする必要があります。

  • 組織のイベントデータストアには、次の考慮事項が適用されます。

    • 組織のイベントデータストアでフェデレーションを有効にできるのは、委任された管理者アカウントの 1 つ、または管理アカウントだけです。他の委任された管理者アカウントも、Lake Formation データ共有機能を使用して情報をクエリおよび共有することはできます。

    • すべての委任された管理者アカウントも組織の管理アカウントもフェデレーションを無効にできます。

フェデレーションに必要なアクセス許可

イベントデータストアのフェデレーションを行う前に、フェデレーションロールとフェデレーションの有効化と無効化に必要なすべてのアクセス許可があることを確認してください。フェデレーションロールのアクセス許可を更新する必要があるのは、既存の IAM ロールを選択してフェデレーションを有効にする場合だけです。CloudTrail コンソールを使用して新しい IAM ロールを作成する場合、CloudTrail によってロールに必要なアクセス許可がすべて提供されます。

イベントデータストアのフェデレーションのための IAM アクセス許可

フェデレーションを有効にする際に、新しい IAM ロールを作成するか、既存の IAM ロールを使用するか選択できます。新しい IAM ロールを選択すると、CloudTrail は必要な許可を持つ IAM ロールを作成するため、お客様側でそれ以上のアクションは必要ありません。

既存のロールを選択する場合は、IAM ロールのポリシーがフェデレーションを有効にするために必要なアクセス許可を付与していることを確認してください。このセクションでは、必要な IAM ロールのアクセス許可と信頼ポリシーの例を示します。

次の例は、フェデレーションロールのアクセス許可ポリシーを示しています。最初のステートメントには、Resource のイベントデータストアの完全な ARN を指定します。

このポリシーの 2 番目のステートメントにより、Lake Formation は KMS キーで暗号化されたイベントデータストアのデータを復号できます。key-regionaccount-idkey-id は KMS キーの値に置き換えてください。イベントデータストアが暗号化に KMS キーを使用しない場合は、このステートメントを省略できます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFederationEDSDataAccess", "Effect": "Allow", "Action": "cloudtrail:GetEventDataStoreData", "Resource": "arn:aws:cloudtrail:eds-region:account-id:eventdatastore/eds-id" }, { "Sid": "LakeFederationKMSDecryptAccess", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:key-region:account-id:key/key-id" } ] }

次の例は IAM 信頼ポリシーを示しています。これにより、AWS Lake Formation は、フェデレーションイベントデータストアのアクセス許可を管理する IAM ロールを引き受けることができます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

フェデレーションの有効化に必要なアクセス許可

次のポリシーの例は、イベントデータストアでフェデレーションを有効にするために最低限必要なアクセス許可を提供します。このポリシーにより、CloudTrail はイベントデータストアのフェデレーションを有効し、AWS Glue は AWS Glue Data Catalog にフェデレーションリソースを作成し、AWS Lake Formation はリソース登録を管理できるようになります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudTrailEnableFederation", "Effect": "Allow", "Action": "cloudtrail:EnableFederation", "Resource": "arn:aws:cloudtrail:region:account-id:eventdatastore/eds-id" }, { "Sid": "FederationRoleAccess", "Effect": "Allow", "Action": [ "iam:PassRole", "iam:GetRole" ], "Resource": "arn:aws:iam::region:role/federation-role-name" }, { "Sid": "GlueResourceCreation", "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:CreateTable", "glue:PassConnection" ], "Resource": [ "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/aws:cloudtrail", "arn:aws:glue:region:account-id:table/aws:cloudtrail/eds-id", "arn:aws:glue:region:account-id:connection/aws:cloudtrail" ] }, { "Sid": "LakeFormationRegistration", "Effect": "Allow", "Action": [ "lakeformation:RegisterResource", "lakeformation:DeregisterResource" ], "Resource": "arn:aws:lakeformation:region:account-id:catalog:account-id" } ] }

フェデレーションの無効化に必要なアクセス許可

次のポリシーの例は、イベントデータストアでフェデレーションを無効にするために最低限必要なリソースを提供します。このポリシーにより、CloudTrail はイベントデータストアのフェデレーションを無効にし、AWS Glue は AWS Glue Data Catalog のマネージドフェデレーションテーブルを削除し、Lake Formation はフェデレーションリソースの登録を解除できます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CloudTrailDisableFederation", "Effect": "Allow", "Action": "cloudtrail:DisableFederation", "Resource": "arn:aws:cloudtrail:region:account-id:eventdatastore/eds-id" }, { "Sid": "GlueTableDeletion", "Effect": "Allow", "Action": "glue:DeleteTable", "Resource": [ "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/aws:cloudtrail", "arn:aws:glue:region:account-id:table/aws:cloudtrail/eds-id" ] }, { "Sid": "LakeFormationDeregistration", "Effect": "Allow", "Action": "lakeformation:DeregisterResource", "Resource": "arn:aws:lakeformation:region:account-id:catalog:account-id" } ] }