翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lake Formation のタグベースのアクセス制御
Lake Formation タグベースのアクセスコントロール (LF-TBAC) は、属性に基づいてアクセス許可を定義する認証戦略です。これらの属性は、Lake Formation で LF タグと呼ばれています。LF タグを Data Catalog リソースにアタッチし、これらの LF タグを使用して、それらのリソースの Lake Formation プリンシパルにアクセス許可を付与できます。Lake Formation では、プリンシパルのタグ値がリソースタグ値と一致する場合に、これらのリソースに対するオペレーションを許可します。LF-TBAC は、急速に成長している環境で役立ち、ポリシー管理が面倒になる状況に役立ちます。
LF-TBAC は、多数の Data Catalog リソースがある場合に Lake Formation のアクセス許可を付与するために推奨される方法です。LF-TBAC は、名前付きリソースメソッドよりもスケーラブルで、アクセス許可管理のオーバーヘッドが少なくて済みます。
注記
IAM タグは LF タグとは異なります。これらのタグは置き換え可能ではありません。LF タグは Lake Formation に許可を付与するために使用されます。IAMタグはIAMポリシーの定義に使用されます。
Lake Formation のタグベースのアクセス制御の仕組み
各 LF タグは、department=sales
や classification=restricted
などのキーと値のペアです。キーは、department=sales,marketing,engineering,finance
など複数の定義された値を持つことができます。
LF-TBAC メソッドを使用するには、データレイク管理者とデータエンジニアが以下のタスクを実行します。
タスク | タスクの詳細 |
---|---|
1. LF タグのプロパティと関係を定義します。 |
- |
2. Lake Formation で LF タグ作成者を作成します。 |
LF タグ作成者の追加 |
3. Lake Formation で LF タグを作成します。 |
LF タグの作成 |
4. LF タグを Data Catalog リソースに割り当てます。 |
Data Catalog リソースへの LF タグの割り当て |
5. LF タグをリソースに割り当てる許可 (オプションで付与オプションを使用) を他のプリンシパルに付与します。 |
LF タグ値のアクセス許可の管理 |
6. LF タグ式 (オプションで付与オプションを使用) をプリンシパルに付与します。 |
LF-TBAC メソッドを使用したデータレイクアクセス許可の付与 |
7. (推奨) プリンシパルが LF-TBAC メソッドを使用して正しいリソースにアクセスできることを確認したら、名前付きリソースメソッドを使用して付与されたアクセス許可を取り消します。 |
- |
3 つのデータベースと 7 つのテーブルに対するアクセス許可を 3 人のプリンシパルに付与する必要がある場合を考えてみましょう。
上の図に示されているアクセス許可を名前付きリソース方法を使用して実現するには、以下のように、17 の付与を行う必要があります (擬似コードを使用)。
GRANT CREATE_TABLE ON Database A TO PRINCIPAL 1 GRANT SELECT, INSERT ON Table A.1 TO PRINCIPAL 1 GRANT SELECT, INSERT ON Table A.2 TO PRINCIPAL 1 GRANT SELECT, INSERT ON Table B.2 TO PRINCIPAL 1 ... GRANT SELECT, INSERT ON Table A.2 TO PRINCIPAL 2 GRANT CREATE_TABLE ON Database B TO PRINCIPAL 2 ... GRANT SELECT, INSERT ON Table C.3 TO PRINCIPAL 3
次に、LF- を使用してアクセス許可を付与する方法を考えてみましょうTBAC。次の図は、LF タグをデータベースとテーブルに割り当てて、LF タグに対するアクセス許可をプリンシパルに付与したことを示しています。
この例では、LF タグは、エンタープライズリソースプランニング (ERP) アプリケーションスイートのさまざまなモジュールの分析を含むデータレイクの領域を表します。さまざまなモジュールの分析データへのアクセスを制御できます。すべての LF タグは、module
というキーと、Sales
、Orders
、および Customers
の可能な値を持っています。LF タグの例は以下のようになります。
module=Sales
この図は LF タグの値のみを示しています。
Data Catalog リソースへのタグ割り当てと継承
テーブルはデータベースから LF タグを継承し、列はテーブルから LF タグを継承します。継承された値は上書きすることができます。上記の図では、淡色表示の LF タグが継承されています。
継承が行われるため、データレイク管理者は、リソースに対して以下の 5 つの LF タグの割り当てを行うだけで済みます (擬似コードを使用)。
ASSIGN TAGS module=Sales TO database A ASSIGN TAGS module=Orders TO table A.2 ASSIGN TAGS module=Orders TO database B ASSIGN TAGS module=Customers TO table B.2 ASSIGN TAGS module=Customers TO database C
プリンシパルへのタグの付与
データベースとテーブルに LF タグを割り当てた後、データレイク管理者は、以下のようにプリンシパルに対して LF タグを 4 回付与するだけで済みます (擬似コードを使用)。
GRANT TAGS module=Sales TO Principal 1 GRANT TAGS module=Customers TO Principal 1 GRANT TAGS module=Orders TO Principal 2 GRANT TAGS module=Customers TO Principal 3
これで、LF タグ module=Sales
を持つプリンシパルは LF タグ module=Sales
を持つ Data Catalog リソース (例えば、データベース A) にアクセスでき、LF タグ module=Customers
を持つプリンシパルは LF タグ module=Customers
を持つリソースにアクセスできる、というようになります。
上記の grant コマンドは不完全です。これらは、プリンシパルが許可を持つ Data Catalog リソースを LF タグで示してはいるものの、プリンシパルがそれらのリソースに対してどの Lake Formation 許可 (SELECT
、ALTER
など) を持っているかを正確に示していないためです。したがって、以下の擬似コードのコマンドが、LF タグを使用して Data Catalog リソースに対する Lake Formation 許可を付与する方法のより正確な表現になります。
GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Sales TO Principal 1 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Sales TO Principal 1 GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Customers TO Principal 1 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Customers TO Principal 1 GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Orders TO Principal 2 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Orders TO Principal 2 GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Customers TO Principal 3 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Customers TO Principal 3
まとめ – 結果として得られたリソースに対するアクセス許可
以下の表は、上記の図のデータベースとテーブルに割り当てられた LF タグと、図の中でプリンシパルに付与された LF タグを前提とした、プリンシパルが持つデータベースとテーブルに対する Lake Formation 許可のリストです。
プリンシパル | LF タグを通じて付与された許可 |
---|---|
プリンシパル 1 |
|
プリンシパル 2 |
|
プリンシパル 3 |
|
結論
このシンプルな例では、5 つの割り当て操作と 8 つの付与操作を使用することで、データレイク管理者が 17 個の許可を指定できました。数十のデータベースと数百のテーブルがある場合、名前付きリソースメソッドよりも LF-TBAC メソッドの利点が明確になります。すべてのプリンシパルにすべてのリソースへのアクセス権を付与する必要があり、n(P)
をプリンシパルの数、n(R)
をリソースの数とする仮定上のケースでは、以下のようになります。
-
名前付きリソース方式では、必要な付与数が
n(P)
×n(R)
個になります。 -
LF-TBAC メソッドでは、単一の LF タグを使用して、プリンシパルへの許可とリソースへの割り当ての合計数は
n(P)
+ ですn(R)
。