AWS Lake Formation による CloudTrail レイクフェデレーションリソースの管理 - AWS CloudTrail

AWS Lake Formation による CloudTrail レイクフェデレーションリソースの管理

イベントデータストアのフェデレーションを行うと、CloudTrail は、フェデレーションロール ARN とイベントデータストアを、AWS Glue Data Catalog 内のフェデレーションリソースのきめ細かなアクセス制御を可能にするサービスである AWS Lake Formation に登録します。このセクションでは、Lake Formation を使用して CloudTrail Lake フェデレーションリソースを管理する方法について説明します。

フェデレーションを有効にすると、CloudTrail は AWS Glue Data Catalog に次のリソースを作成します。

  • マネージドデータベース – CloudTrail は、アカウントごとに aws:cloudtrail という名前で 1 つのデータベースを作成します。CloudTrail はデータベースを管理します。AWS Glue でデータベースを削除したり変更したりすることはできません。

  • マネージドフェデレーションテーブル – CloudTrail はフェデレーションイベントデータストアごとに 1 つのテーブルを作成し、テーブル名にはイベントデータストア ID を使用します。CloudTrail がテーブルを管理します。AWS Glue でテーブルを削除したり変更したりすることはできません。テーブルを削除するには、イベントデータストアのフェデレーションを無効化する必要があります。

フェデレーションリソースへのアクセスの制御

2 つのアクセス許可方式のいずれかを使用して、マネージドデータベースとテーブルへのアクセスを制御できます。

  • IAM のみのアクセス制御 – IAM のみのアクセス制御では、必要な IAM アクセス許可が付与されたアカウントのすべてのユーザーに、すべての Data Catalog リソースへのアクセス権が付与されます。AWS Glue と IAM の連携については、「AWS Glue と IAM の連携方法」を参照してください。

    Lake Formation コンソールでは、この方式が [Use only IAM access control] (IAM アクセスコントロールのみを使用する) として表示されます。

    注記

    データフィルターを作成して他の Lake Formation 機能を使用する場合は、Lake Formation アクセス制御を使用する必要があります。

  • Lake Formation のアクセス制御 – この方式には以下の利点があります。

アクセス制御の詳細については、「細粒度のアクセスコントロールのための方式」を参照してください。

フェデレーションリソースのアクセス許可方式の決定

初めてフェデレーションを有効にすると、CloudTrail は Lake Formation データレイク設定を使用してマネージドデータベースとマネージドフェデレーションテーブルを作成します。

CloudTrail がフェデレーションを有効にすると、マネージドデータベースとマネージドフェデレーションテーブルに使用しているアクセス許可方式を、それらのリソースのアクセス許可をチェックすることで確認できます。リソースに [ALL (Super) to IAM_ALLOWED_PRINCIPALS ] 設定がある場合、リソースは IAM アクセス許可によってのみ管理されます。設定がない場合、リソースは Lake Formation アクセス許可によって管理されます。Lake Formation のアクセス許可の詳細については、「Lake Formation の許可リファレンス」を参照してください。

マネージドデータベースとマネージドフェデレーションテーブルのアクセス許可方式は異なる場合があります。例えば、データベースとテーブルの値を確認すると、次のようになっている場合があります。

  • データベースでは、ALL (Super) を IAM_ALLOWED_PRINCIPALS に割り当てた値がアクセス許可に存在し、データベースに対して IAM のみのアクセス制御を使用していることを示しています。

  • テーブルでは、ALL (Super) を IAM_ALLOWED_PRINCIPALS に割り当てた値が存在せず、Lake Formation アクセス許可によるアクセス制御を示しています。

Lake Formation のフェデレーションリソースの IAM_ALLOWED_PRINCIPALS アクセス許可に ALL (Super) を追加または削除することで、いつでもアクセス方式を切り替えることができます。

Lake Formation を使用したクロスアカウント共有

このセクションでは、Lake Formation を使用してマネージドデータベースとマネージドフェデレーションテーブルをアカウント間で共有する方法について説明します。

次の手順を実行すると、マネージドデータベースをアカウント間で共有できます。

  1. クロスアカウントデータ共有のバージョンをバージョン 4 に更新します。

  2. データベースに IAM_ALLOWED_PRINCIPALS への Super アクセス許可がある場合は削除して、Lake Formation アクセス制御に切り替えます。

  3. データベースで、外部のアカウントに Describe アクセス許可を付与します。

  4. Data Catalog のリソースが AWS アカウント と共有され、そのアカウントが共有元のアカウントと同じ AWS 組織内にない場合は、AWS Resource Access Manager (AWS RAM) からのリソース共有招待を承諾します。詳細については、「AWS RAM からのリソース共有招待の承諾」を参照してください。

これらの手順を完了すると、データベースは外部アカウントに表示されるはずです。デフォルトでは、データベースを共有しても、データベース内のどのテーブルへのアクセス権も付与されません。

次の手順を実行すると、すべてまたは個別のマネージドフェデレーションテーブルを外部アカウントと共有できます。

  1. クロスアカウントデータ共有のバージョンをバージョン 4 に更新します。

  2. テーブルに IAM_ALLOWED_PRINCIPALS への Super アクセス許可がある場合は削除して、Lake Formation アクセス制御に切り替えます。

  3. (オプション) 任意のデータフィルターを指定して列や行を制限します。

  4. テーブルで、外部のアカウントに Select アクセス許可を付与します。

  5. Data Catalog のリソースが AWS アカウント と共有され、そのアカウントが共有元のアカウントと同じ AWS 組織内にない場合は、AWS Resource Access Manager (AWS RAM) からのリソース共有招待を承諾します。組織の場合、RAM 設定を使用して自動承諾できます。詳細については、「AWS RAM からのリソース共有招待の承諾」を参照してください。

  6. これで、テーブルが表示されるはずです。このテーブルで Amazon Athena クエリを有効にするには、共有テーブルとのリソースリンクをこのアカウントで作成します。

所有アカウントは、外部アカウントのアクセス許可を Lake Formation から削除するか、CloudTrail でフェデレーションを無効化することで、いつでも共有を取り消すことができます。