名前付きリソース方式を使用したデータベースのアクセス権限の付与
以下は、名前付きリソース方式を使用してデータベース許可を付与する方法を説明する手順です。
- Console
-
Lake Formation コンソールの [データレイクのアクセス許可を付与] ページを使用します。このページは、以下のセクションに分かれています。
-
[プリンシパル] – アクセス許可の付与先となる IAM ユーザー、ロール、IAM アイデンティティセンターユーザーとグループ、AWS アカウント、組織、または組織単位。
-
[LF タグまたはカタログリソース] – 付与する許可の対象となるデータベース、テーブル、ビュー、またはリソースリンク。
-
[Permissions] (許可) – 付与される Lake Formation 許可。
注記
データベースリソースリンクに対する許可を付与するには、「リソースリンク許可の付与」を参照してください。
[データレイクのアクセス許可を付与] ページを開きます
AWS Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/
) を開き、データレイク管理者、データベース作成者、またはデータベースに対する [Grantable permissions] (付与可能なアクセス許可) を持っている IAM ユーザーとしてサインインします。 次のいずれかを行います。
-
ナビゲーションペインの [Permissions] (許可) で [Data lake permissions] (データレイクの許可) を選択します。次に、[Grant] (付与) を選択します。
-
ナビゲーションペインの [データカタログ] で [データベース] を選択します。次に、[データベース] ページでデータベースを選択し、[アクション] メニューの [許可] で [付与] を選択します。
注記
データベースに対する許可は、そのリソースリンクを使用して付与できます。これを実行するには、[Database] (データベース) ページでリソースリンクを選択し、[Actions] (アクション) メニューで [Grant on target] (ターゲットに対して付与) を選択します。詳細については、「Lake Formation でのリソースリンクの仕組み」を参照してください。
-
-
次に、[プリンシパル] セクションでプリンシパルタイプを選択してから、アクセス許可の付与先となるプリンシパルを指定します。
- IAM ユーザーとロール
-
[IAM users and roles] (IAM ユーザーおよびロール) リストから、1 人、または複数のユーザーまたはロールを選択します。
- IAM アイデンティティセンター
-
[ユーザーとグループ] リストから、1 人、または複数のユーザーまたはグループを選択します。ユーザーまたはグループをさらに追加するには、[追加] を選択します。
- SAML ユーザーとグループ
-
[SAML and Amazon QuickSight users and groups] (SAML および Amazon QuickSight のユーザーとグループ) の場合は、SAML 経由でフェデレートされたユーザーまたはグループに 1 つ、または複数の Amazon リソースネーム (ARN) を入力するか、Amazon QuickSight のユーザーまたはグループに ARN を入力します。各 ARN の後で Enter キーを押します。
ARN の構築方法については、「Lake Formation の grant および revoke AWS CLI コマンド」を参照してください。
注記
Lake Formation の Amazon QuickSight との統合がサポートされるのは、Amazon QuickSight Enterprise Edition のみです。
- 外部アカウント
-
AWS アカウント、AWS 組織、または IAM プリンシパルには、IAM ユーザーまたはロールの 1 つ以上の有効な AWS アカウント ID、組織 ID、組織単位 ID、または ARN を入力します。各 ID の後で [Enter] キーを押します。
組織 ID は、最初の「o-」と、その後に続く 10~32 個の小文字または数字で構成されています。
組織単位 ID は「ou-」で始まり、その後に 4~32 個の小文字または数字 (OU が含まれるルートの ID) が続きます。この文字列の後には、2 番目の「-」ダッシュと 8~32 個の追加の小文字または数字が続きます。
-
[LF タグまたはカタログリソース] セクションで、[名前付きのデータカタログリソース] を選択します。
-
[Database] (データベース) のリストから、1 つ、または複数のデータベースを選択します。1 つ以上のテーブルやデータフィルターを選択することもできます。
-
[Permissions] (許可) セクションで、許可と付与可能な許可を選択します。[Database permissions] (データベースの許可) で、付与する許可を 1 つ、または複数選択します。
注記
登録されたロケーションをポイントするロケーションプロパティを持ったデータベースに対する
Create Table
またはAlter
を付与した後は、プリンシパルにもそのロケーションに対するデータロケーション許可を付与するようにしてください。詳細については、「データロケーション許可の付与」を参照してください。 -
(オプション) [Grantable permissions] (付与可能な許可) で、付与対象者がそれぞれの AWS アカウント内の他のプリンシパルに付与できる許可を選択します。このオプションは、外部アカウントから IAM プリンシパルにアクセス許可を付与する場合はサポートされません。
-
[Grant] (付与) を選択します。
-
- AWS CLI
-
データベース許可は、名前付きリソース方式と AWS Command Line Interface (AWS CLI) を使用して付与することができます。
AWS CLI を使用してデータベース許可を付与する
-
grant-permissions
コマンドを実行し、付与される許可に応じて、データベースまたは Data Catalog をリソースとして指定します。以下の例の
<account-id>
は、有効な AWS アカウント ID に置き換えてください。例 – データベースを作成するための付与
この例では、
CREATE_DATABASE
をユーザーdatalake_user1
に付与します。この許可が付与されるリソースは Data Catalog であるため、コマンドはresource
パラメータとして空のCatalogResource
構造を指定します。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:user/datalake_user1 --permissions "CREATE_DATABASE" --resource '{ "Catalog": {}}'例 – 指定されたデータベースでテーブルを作成するための付与
次の例は、データベース
retail
でのCREATE_TABLE
をユーザーdatalake_user1
に付与します。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'例 – 付与オプションを使用した外部 AWS アカウントへの付与
次の例は、データベース
retail
に対する grant オプション付きのCREATE_TABLE
を外部アカウント 1111-2222-3333 に付与します。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333 --permissions "CREATE_TABLE" --permissions-with-grant-option "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
例 – 組織への付与
次の例は、データベース
issues
に対する grant オプション付きのALTER
を組織o-abcdefghijkl
に付与します。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl --permissions "ALTER" --permissions-with-grant-option "ALTER" --resource '{ "Database": {"Name":"issues"}}'
例 - 同じアカウントで
ALLIAMPrincipals
に付与次の例では、同じアカウントのすべてのプリンシパルにデータベース
retail
へのCREATE_TABLE
アクセス許可を付与します。このオプションを使用すると、アカウント内のすべてのプリンシパルがデータベースにテーブルを作成し、統合クエリエンジンが共有データベースとテーブルにアクセスできるようにするテーブルリソースリンクを作成できます。このオプションは、プリンシパルがクロスアカウント付与を受け取っていて、リソースリンクを作成するアクセス許可を持っていない場合に特に役立ちます。このシナリオでは、データレイク管理者がプレースホルダーデータベースを作成してALLIAMPrincipal
グループにCREATE_TABLE
アクセス許可を付与し、アカウント内の各 IAM プリンシパルがプレースホルダーデータベースにリソースリンクを作成できるようにします。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333:IAMPrincipals --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"temp","CatalogId":"111122223333"}}'
例 - 外部アカウントでの
ALLIAMPrincipals
への付与次の例では、外部アカウントのすべてのプリンシパルにデータベース
retail
へのCREATE_TABLE
を付与します。このオプションにより、アカウント内の各プリンシパルがデータベースにテーブルを作成できます。aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=111122223333:IAMPrincipals --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail","CatalogId":"123456789012"}}'
注記
登録されたロケーションをポイントするロケーションプロパティを持ったデータベースに対する
CREATE_TABLE
またはALTER
を付与した後は、プリンシパルにもそのロケーションに対するデータロケーション許可を付与するようにしてください。詳細については、「データロケーション許可の付与」を参照してください。 -