翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
属性ベースのアクセスコントロールを使用したアクセス許可の付与
このトピックでは、Data Catalog リソースに対する属性ベースのアクセス許可を付与するために必要な手順について説明します。Lake Formation コンソールまたは コマンドラインインターフェイス (AWS CLI) AWS を使用できます。
https://console.aws.amazon.com/lakeformation/
で Lake Formation コンソールを開き、データレイク管理者、リソース作成者、またはリソースに対する付与可能なアクセス許可を持つ IAM ユーザーとしてサインインします。 次のいずれかを行います:
ナビゲーションペインの [Permissions] (許可) で [Data lake permissions] (データレイクの許可) を選択します。次に、[Grant] (付与) を選択します。
ナビゲーションペインで、データカタログの下にあるカタログを選択します。 次に、 アクセス許可のアクションメニューからカタログオブジェクト (カタログ、データベース、テーブル、データフィルター) を選択し、許可を選択します。
アクセス許可の付与ページで、属性別のプリンシパルを選択します。
属性キーと値 (複数可) を指定します。複数の値を選択した場合は、
OR演算子を使用して属性式を作成します。つまり、IAM ロールまたはユーザーに割り当てられた属性タグ値のいずれかが一致した場合、ロール/ユーザーはリソースに対するアクセス許可を取得します。複数の属性タグを指定する場合、
AND演算子を使用して属性式を作成します。プリンシパルには、IAM ロール/ユーザーが属性式の各属性タグに一致するタグを割り当てられた場合にのみ、Data Catalog リソースに対するアクセス許可が付与されます。コンソールに表示される Cedar ポリシー式を確認します。
アクセス許可の範囲を選択します。被付与者が外部アカウントに属している場合は、外部アカウントを選択し、 AWS アカウント ID を入力します。
次に、Data Catalog アカウントまたは外部アカウントの を選択します。アクセス許可の付与を正常に完了するには、リソースに対して対応する付与可能なアクセス許可が必要です。
一致する属性を持つプリンシパル (ユーザーまたはロール) が実行するアクションを指定します。アクセスは、指定した属性式の少なくとも 1 つに一致するタグと値が割り当てられた IAM エンティティに付与されます。コンソールで Cedar ポリシー式を確認します。Cedar の詳細については、「Cedar とは」を参照してください。| Cedar ポリシー言語リファレンスGuideLink
。 次に、アクセスを許可するデータカタログリソースを選択します。カタログ、データベース、テーブル、データフィルターなど、さまざまなデータカタログリソースに対してこれらのアクセス許可を定義できます。
[Grant] (付与) を選択します。
このアプローチにより、属性に基づいてアクセスを制御できるため、適切なタグを持つユーザーまたはロールのみが、指定されたリソースに対して特定のアクションを実行できます。
次の例は、リソースで使用可能なすべてのアクセス許可を受け取るために満たす必要がある属性式を示しています。または、Select、、 Describeなどの個々のアクセス許可を指定することもできますDrop。式は Cedar ポリシー式を使用します。Cedar の詳細については、「Cedar とは」を参照してください。| Cedar ポリシー言語リファレンスGuideLink
この条件は、IAM プリンシパルにdepartmentタグがあり、departmentタグ値が に等しいかどうかを確認しますsales。
aws lakeformation grant-permissions --principal '{"DataLakePrincipalIdentifier": "111122223333:IAMPrincipals"}' \ --resource '{"Database": {"CatalogId":111122223333, "Name": "abac-db"}}' \ --permissionsALL\ --condition '{"Expression": "context.iam.principalTags.hasTag(\"department\") \ && context.iam.principalTags.getTag(\"department\") == \"sales\""}'