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 のアクセス制御 – この方式には以下の利点があります。
-
データフィルターを作成することで、列レベル、行レベル、およびセルレベルのセキュリティを実装することができます。詳細については、AWS 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 を使用してマネージドデータベースとマネージドフェデレーションテーブルをアカウント間で共有する方法について説明します。
次の手順を実行すると、マネージドデータベースをアカウント間で共有できます。
-
クロスアカウントデータ共有のバージョンをバージョン 4 に更新します。
-
データベースに
IAM_ALLOWED_PRINCIPALSへのSuperアクセス許可がある場合は削除して、Lake Formation アクセス制御に切り替えます。 -
データベースで、外部のアカウントに
Describeアクセス許可を付与します。 -
Data Catalog のリソースが AWS アカウント と共有され、そのアカウントが共有元のアカウントと同じ AWS 組織内にない場合は、AWS Resource Access Manager (AWS RAM) からのリソース共有招待を承諾します。詳細については、「AWS RAM からのリソース共有招待の承諾」を参照してください。
これらの手順を完了すると、データベースは外部アカウントに表示されるはずです。デフォルトでは、データベースを共有しても、データベース内のどのテーブルへのアクセス権も付与されません。
次の手順を実行すると、すべてまたは個別のマネージドフェデレーションテーブルを外部アカウントと共有できます。
-
クロスアカウントデータ共有のバージョンをバージョン 4 に更新します。
-
テーブルに
IAM_ALLOWED_PRINCIPALSへのSuperアクセス許可がある場合は削除して、Lake Formation アクセス制御に切り替えます。 -
(オプション) 任意のデータフィルターを指定して列や行を制限します。
-
テーブルで、外部のアカウントに
Selectアクセス許可を付与します。 -
Data Catalog のリソースが AWS アカウント と共有され、そのアカウントが共有元のアカウントと同じ AWS 組織内にない場合は、AWS Resource Access Manager (AWS RAM) からのリソース共有招待を承諾します。組織の場合、RAM 設定を使用して自動承諾できます。詳細については、「AWS RAM からのリソース共有招待の承諾」を参照してください。
-
これで、テーブルが表示されるはずです。このテーブルで Amazon Athena クエリを有効にするには、共有テーブルとのリソースリンクをこのアカウントで作成します。
所有アカウントは、外部アカウントのアクセス許可を Lake Formation から削除するか、CloudTrail でフェデレーションを無効化することで、いつでも共有を取り消すことができます。