翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lake Formation 許可のリファレンス
AWS Lake Formation オペレーションを実行するには、プリンシパルに Lake Formation 許可と AWS Identity and Access Management (IAM) 許可の両方が必要です。IAM 許可は通常、「Lake Formation 許可の概要 」で説明したように、粗粒度のアクセス制御ポリシーを使用して付与します。コンソール、API、または AWS Command Line Interface () を使用して Lake Formation 許可を付与できますAWS CLI。
Lake Formation 許可を付与または取り消す方法を学ぶには、「Data Catalog リソースに対するアクセス許可の付与」および「データロケーション許可の付与」を参照してください。
注記
このセクションの例は、同じ AWS アカウント内のプリンシパルに許可を付与するを説明するものです。クロスアカウント付与の例については、「Lake Formation でのクロスアカウントデータ共有」を参照してください。
リソースタイプ別の Lake Formation 許可
各リソースで利用できる有効な Lake Formation 許可は次のとおりです。
リソース | アクセス許可 |
---|---|
Database |
ALL (Super ) |
ALTER |
|
CREATE_TABLE |
|
DESCRIBE |
|
DROP |
|
Table |
ALL (Super ) |
ALTER |
|
DELETE |
|
DESCRIBE |
|
DROP
|
|
INSERT
|
|
SELECT |
|
View |
ALL (Super ) |
SELECT |
|
DESCRIBE |
|
DROP |
|
Data Catalog |
CREATE_DATABASE |
Amazon S3 location |
DATA_LOCATION_ACCESS |
LF-Tags |
DROP |
ALTER |
|
LF-Tag values |
ASSOCIATE |
DESCRIBE |
|
GrantWithLFTagExpression |
|
LF-Tag policy - Database |
ALL (Super ) |
ALTER |
|
CREATE_TABLE |
|
DESCRIBE |
|
DROP |
|
LF-Tag policy - Table |
ALL (Super ) |
ALTER |
|
DESCRIBE |
|
DELETE |
|
DROP |
|
INSERT |
|
SELECT |
|
Resource link - Database or Table |
DESCRIBE |
DROP
|
|
Table with data filters |
DESCRIBE |
DROP |
|
SELECT |
|
Table with column filter |
SELECT |
Lake Formation の許可と取り消し AWS CLI コマンド
このセクションの各アクセス許可の説明には、 AWS CLI コマンドを使用してアクセス許可を付与する例が含まれています。Lake Formation grant-permissionsおよび revoke-permissions AWS CLI コマンドの概要は次のとおりです。
grant-permissions [--catalog-id <value>] --principal <value> --resource <value> --permissions <value> [--permissions-with-grant-option <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
revoke-permissions [--catalog-id <value>] --principal <value> --resource <value> --permissions <value> [--permissions-with-grant-option <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>]
これらのコマンドの詳しい説明については、「AWS CLI コマンドリファレンス」の「grant-permissions」および「revoke-permissions」を参照してください。このセクションは、--principal
オプションに関する追加の情報を提供します。
--principal
オプションの値は、以下のいずれかになります。
-
(IAM) ユーザーまたはロールの Amazon リソースネーム AWS Identity and Access Management (ARN)
-
Microsoft アクティブディレクトリフェデレーションサービス (AD FS) などの SAML プロバイダー経由で認証するユーザーまたはグループの ARN
-
Amazon QuickSight ユーザーまたはグループの ARN
-
クロスアカウントアクセス許可、 AWS アカウント ID、組織 ID、または組織単位 ID の場合
以下は、すべての --principal
タイプの構文と例です。
- プリンシパルが IAM ユーザー
-
構文:
--principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:user/<user-name>
例:
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1
- プリンシパルが IAM ロール
-
構文:
--principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:role/<role-name>
例:
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:role/workflowrole
- プリンシパルが SAML プロバイダー経由で認証するユーザー
-
構文:
--principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:saml-provider/<SAMLproviderName>
:user/<user-name>
例:
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:user/datalake_user1
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:user/athena-user@example.com
- プリンシパルが SAML プロバイダー経由で認証するグループ
-
構文:
--principal DataLakePrincipalIdentifier=arn:aws:iam::
<account-id>
:saml-provider/<SAMLproviderName>
:group/<group-name>
例:
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/idp1:group/data-scientists
--principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:saml-provider/AthenaLakeFormationOkta:group/my-group
- プリンシパルが Amazon QuickSight Enterprise Edition ユーザーである
-
構文:
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:
<region>
:<account-id>
:user/<namespace>
/<user-name>
注記
<namespace>
にはdefault
を指定する必要があります。例:
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:user/default/bi_user1
- プリンシパルが Amazon QuickSight Enterprise Edition グループ
-
構文:
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:
<region>
:<account-id>
:group/<namespace>
/<group-name>
注記
<namespace>
にはdefault
を指定する必要があります。例:
--principal DataLakePrincipalIdentifier=arn:aws:quicksight:us-east-1:111122223333:group/default/data_scientists
- プリンシパルが AWS アカウント
-
構文:
--principal DataLakePrincipalIdentifier=
<account-id>
例:
--principal DataLakePrincipalIdentifier=111122223333
- プリンシパルが組織
-
構文:
--principal DataLakePrincipalIdentifier=arn:aws:organizations::
<account-id>
:organization/<organization-id>
例:
--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:organization/o-abcdefghijkl
- プリンシパルが組織単位
-
構文:
--principal DataLakePrincipalIdentifier=arn:aws:organizations::
<account-id>
:ou/<organization-id>
/<organizational-unit-id>
例:
--principal DataLakePrincipalIdentifier=arn:aws:organizations::111122223333:ou/o-abcdefghijkl/ou-ab00-cdefghij
- プリンシパルが IAM Identity Center ID ユーザーまたはグループである
-
例: ユーザー
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::user/
<UserID>
例:グループ:
--principal DataLakePrincipalIdentifier=arn:aws:identitystore:::group/
<GroupID>
- プリンシパルは IAM グループ -
IAMAllowedPrincipals
-
Lake Formation は、Data Catalog 内のすべてのデータベースとテーブルに対する
Super
アクセス許可をIAMAllowedPrincipals
、デフォルトで と呼ばれるグループに設定します。このグループのアクセス許可がデータベースまたはテーブルに存在する場合、アカウント内のすべてのプリンシパルは、 の IAM プリンシパルポリシーを通じてリソースにアクセスできます AWS Glue。Lake Formation アクセス許可を使用して、 の IAM ポリシーで以前に保護されていた Data Catalog リソースを保護すると、下位互換性が得られます AWS Glue。Lake Formation を使用して Data Catalog リソースのアクセス許可を管理する場合は、まずリソースに対するアクセス
IAMAllowedPrincipals
許可を取り消すか、プリンシパルとリソースをハイブリッドアクセスモードにオプトインして Lake Formation のアクセス許可を機能させる必要があります。例:
--principal DataLakePrincipalIdentifier=IAM_Allowed_Principals
- プリンシパルは IAM グループ -
ALLIAMPrincipals
-
Data Catalog リソースで
ALLIAMPrincipals
グループ化するアクセス許可を付与すると、アカウント内のすべてのプリンシパルが Lake Formation アクセス許可と IAM アクセス許可を使用して Data Catalog リソースにアクセスできます。例:
--principal DataLakePrincipalIdentifier=
123456789012
:IAMPrincipals
Lake Formation 許可
このセクションでは、プリンシパルに付与できる Lake Formation 許可を一覧表示します。
ALTER
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
ALTER |
DATABASE |
glue:UpdateDatabase
|
ALTER |
TABLE |
glue:UpdateTable |
ALTER |
LF-Tag |
lakeformation:UpdateLFTag |
この許可を持つプリンシパルは、Data Catalog 内のデータベースまたはテーブルのメタデータを変更できます。テーブルの場合は、列スキーマを変更し、列パラメータを追加することができます。メタデータテーブルがポイントする基盤となるデータの列を変更することはできません。
変更されるプロパティが登録済みの Amazon Simple Storage Service (Amazon S3) ロケーションである場合は、プリンシパルが新しいロケーションに対するデータロケーション許可を持っている必要があります。
次の例では、 AWS アカウント 1111-2222-3333 retail
のデータベースdatalake_user1
のユーザーに アクセスALTER
許可を付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Database": {"Name":"retail"}}'
以下の例は、データベース retail
にあるテーブル inventory
に対する ALTER
をユーザー datalake_user1
に付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ALTER" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
CREATE_DATABASE
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
CREATE_DATABASE |
Data Catalog | glue:CreateDatabase |
この許可を持つプリンシパルは、Data Catalog にメタデータデータベースまたはリソースリンクを作成できます。プリンシパルは、データベースにテーブルを作成することもできます。
次の例ではCREATE_DATABASE
、アカウント 1111-2222-3333 datalake_user1
の ユーザーに AWS を付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_DATABASE" --resource '{ "Catalog": {}}'
プリンシパルが Data Catalog にデータベースを作成するときに、基盤となるデータに対する許可は付与されません。以下の追加のメタデータ許可が、これらの許可を他のユーザーに付与する能力と共に付与されます。
-
データベース内での
CREATE_TABLE
-
データベースの
ALTER
-
データベースの
DROP
プリンシパルは、データベースを作成するときにオプションで Amazon S3 ロケーションを指定できます。プリンシパルがデータロケーション許可を持っているかどうかに応じて、CREATE_DATABASE
許可ではデータベースを作成できない場合があります。以下の 3 つのユースケースを念頭に置いておくことが重要です。
データベースの作成ユースケース | 必要となる許可 |
---|---|
ロケーションプロパティが指定されていない。 | CREATE_DATABASE で十分です。 |
ロケーションプロパティが指定されており、ロケーションが Lake Formation によって管理されていない (登録されていない)。 | CREATE_DATABASE で十分です。 |
ロケーションプロパティが指定されており、ロケーションが Lake Formation によって管理されている (登録されている)。 | CREATE_DATABASE に加えて、指定されたロケーションに対するデータロケーション許可が必要です。 |
CREATE_TABLE
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
CREATE_TABLE |
DATABASE |
glue:CreateTable
|
この許可を持つプリンシパルは、指定したデータベース内の Data Catalog にメタデータテーブルまたはリソースリンクを作成できます。
次の例では、 AWS アカウント 1111-2222-3333 のretail
データベースにテーブルを作成するdatalake_user1
アクセス許可をユーザーに付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
プリンシパルが Data Catalog にテーブルを作成すると、そのテーブルに対するすべての Lake Formation 許可が、これらの許可を他のユーザーに付与する能力と共にプリンシパルに付与されます。
クロスアカウント付与
データベース所有者アカウントが受領者アカウントに CREATE_TABLE
を付与し、受領者アカウントのユーザーが所有者アカウントのデータベースにテーブルを正常に作成する場合、以下のルールが適用されます。
-
受領者アカウントのユーザーとデータレイク管理者には、このテーブルに対するすべての Lake Formation 許可があり、テーブルに対する許可をアカウント内の他のプリンシパルに付与することができます。所有者アカウントまたはその他のアカウントのプリンシパルに許可を付与することはできません。
-
所有者アカウントのデータレイク管理者は、テーブルに対する許可をアカウント内の他のプリンシパルに付与できます。
データロケーション許可
Amazon S3 ロケーションをポイントするテーブルの作成を試みるときは、データロケーション許可を持っているかどうかに応じて、CREATE_TABLE
許可がテーブルの作成に不十分である場合があります。以下の 3 つのユースケースを念頭に置いておくことが重要です。
テーブルの作成ユースケース | 必要となる許可 |
---|---|
指定されたロケーションが Lake Formation によって管理されていない (登録されていない)。 | CREATE_TABLE で十分です。 |
指定されたロケーションが Lake Formation によって管理されて (登録されて) おり、それが含まれるデータベースにロケーションプロパティがないか、テーブルロケーションの Amazon S3 プレフィックスではないロケーションプロパティがある。 | CREATE_TABLE に加えて、指定されたロケーションに対するデータロケーション許可が必要です。 |
指定されたロケーションが Lake Formation によって管理されて (登録されて) おり、それが含まれるデータベースに、登録済みで、かつテーブルロケーションの Amazon S3 プレフィックスであるロケーションをポイントするロケーションプロパティがある。 | CREATE_TABLE で十分です。 |
DATA_LOCATION_ACCESS
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
DATA_LOCATION_ACCESS |
Amazon S3 ロケーション | (このロケーションに対する Amazon S3 許可。これは、ロケーションの登録に使用されたロールによって指定されている必要があります。) |
これが唯一のデータロケーション許可です。この許可を持つプリンシパルは、指定された Amazon S3 ロケーションをポイントするメタデータデータベースまたはテーブルを作成できます。このロケーションは登録される必要があります。ロケーションに対するデータロケーション許可を持つプリンシパルは、子ロケーションに対するロケーション許可も持っています。
以下の例は、 AWS
アカウント 1111-2222-3333 のユーザー datalake_user1
に s3://products/retail
に対するデータロケーション許可を付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DATA_LOCATION_ACCESS" --resource '{ "DataLocation": {"ResourceArn":"arn:aws:s3:::products/retail"}}'
基盤となるデータのクエリや更新に DATA_LOCATION_ACCESS
は必要ありません。この許可は、Data Catalog リソースの作成のみに適用されます。
データロケーション許可については、「Underlying data access control」を参照してください。
DELETE
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
DELETE |
TABLE |
(ロケーションが登録されている場合、追加の IAM 許可は必要ありません。) |
この許可を持つプリンシパルは、テーブルが指定する Amazon S3 ロケーションにある基盤となるデータを削除できます。プリンシパルは、Lake Formation コンソールでテーブルを表示し、AWS Glue API を使用してテーブルに関する情報を取得することもできます。
次の例では、retail
AWS アカウント 1111-2222-3333 のデータベース inventory
の テーブルdatalake_user1
に対する アクセスDELETE
許可をユーザーに付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DELETE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
この許可は、Amazon S3 内のデータにのみ適用され、Amazon Relational Database Service (Amazon RDS) などの他のデータストア内のデータには適用されません。
DESCRIBE
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
DESCRIBE |
テーブルリソースリンク データベースリソースリンク |
|
DESCRIBE |
DATABASE |
glue:GetDatabase |
DESCRIBE |
TABLE |
glue:GetTable |
DESCRIBE |
LF-Tag |
|
この許可を持つプリンシパルは、指定されたデータベース、テーブル、またはリソースリンクを表示できます。これ以外の Data Catalog 許可が黙示的に付与されることはなく、データアクセス許可が黙示的に付与されることもありません。統合サービスのクエリエディタにはデータベースとテーブルが表示されますが、他の Lake Formation 許可 (SELECT
など) が付与されていない限り、それらに対するクエリを実行することはできません。
例えば、データベースに対する DESCRIBE
を持つユーザーは、そのデータベースとすべてのデータベースメタデータ (説明、ロケーションなど) を確認できますが、データベースにどのテーブルが含まれているかは判断できず、データベースでテーブルの削除、変更、または作成を行うことはできません。同様に、テーブルに対する DESCRIBE
を持つユーザーは、テーブルとテーブルメタデータ (説明、スキーマ、ロケーションなど) を確認できますが、テーブルに対してドロップ、変更、またはクエリを実行することはできません。
以下は、DESCRIBE
に関する追加のルールです。
-
ユーザーがデータベース、テーブル、またはリソースリンクに対する他の Lake Formation 許可を持っている場合、
DESCRIBE
が黙示的に付与されます。 -
ユーザーがテーブルについて列のサブセットのみに対する
SELECT
(partialSELECT
) を持っている場合、ユーザーはこれらの列のみの表示に制限されます。 -
テーブルに対する partial SELECT を持つユーザーに
DESCRIBE
を付与することはできません。これとは逆に、DESCRIBE
が付与されているテーブルに、列の包含リストや除外リストを指定することはできません。
次の例では、 AWS アカウント 1111-2222-3333 のデータベースinventory-link
のテーブルリソースリンクretail
に対する アクセスDESCRIBE
許可をユーザーに付与datalake_user1
します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'
DROP
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
DROP |
DATABASE |
glue:DeleteDatabase |
DROP |
TABLE |
glue:DeleteTable
|
DROP |
LF-Tag |
lakeformation:DeleteLFTag
|
DROP |
データベースリソースリンク テーブルリソースリンク |
|
この許可を持つプリンシパルは、Data Catalog 内のデータベース、テーブル、またはリソースリンクをドロップできます。データベースに対する DROP を、外部のアカウントまたは組織に付与することはできません。
警告
データベースをドロップすると、データベース内のすべてのテーブルがドロップされます。
次の例では、retail
AWS アカウント 1111-2222-3333 のデータベースdatalake_user1
のユーザーに アクセスDROP
許可を付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Database": {"Name":"retail"}}'
以下の例は、データベース retail
にあるテーブル inventory
に対する DROP
をユーザー datalake_user1
に付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
以下の例は、データベース retail
にあるテーブルリソースリンク inventory-link
に対する DROP
をユーザー datalake_user1
に付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DROP" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory-link"}}'
INSERT
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
INSERT |
TABLE |
(ロケーションが登録されている場合、追加の IAM 許可は必要ありません。) |
この許可を持つプリンシパルは、テーブルが指定する Amazon S3 ロケーションにある基盤となるデータの挿入、更新、および読み取りを実行できます。プリンシパルは、Lake Formation コンソールでテーブルを表示し、AWS Glue API を使用してテーブルに関する情報を取得することもできます。
次の例では、retail
AWS アカウント 1111-2222-3333 のデータベース inventory
の テーブルdatalake_user1
に対する アクセスINSERT
許可をユーザーに付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "INSERT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
この許可は、Amazon S3 内のデータにのみ適用され、Amazon RDS などの他のデータストア内のデータには適用されません。
SELECT
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
SELECT |
|
(ロケーションが登録されている場合、追加の IAM 許可は必要ありません。) |
この許可を持つプリンシパルは、Data Catalog 内のテーブルを表示し、テーブルが指定するロケーションにある Amazon S3 内の基盤となるデータをクエリすることができます。プリンシパルは、Lake Formation コンソールでテーブルを表示し、AWS Glue API を使用してテーブルに関する情報を取得することができます。この許可の付与時に列フィルタリングが適用された場合、プリンシパルは、包含されている列のメタデータのみを表示でき、包含されている列からのデータのみをクエリできます。
注記
クエリの処理時に列フィルタリングを適用するのは、統合された分析サービスの責任です。
次の例では、retail
AWS アカウント 1111-2222-3333 のデータベース inventory
の テーブルdatalake_user1
に対する アクセスSELECT
許可をユーザーに付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
この許可は、Amazon S3 内のデータにのみ適用され、Amazon RDS などの他のデータストア内のデータには適用されません。
オプションの包含リストまたは除外リストを使用して、特定の列をフィルタリング (それらへのアクセスを制限) できます。包含リストは、アクセスできる列を指定します。除外リストは、アクセスできない列を指定します。包含リストまたは除外リストがない場合は、すべてのテーブル列にアクセスできます。
glue:GetTable
の結果は、呼び出し元が表示許可を持っている列のみを返します。Amazon Athena および Amazon Redshift などの統合サービスは、包含リストと除外リストに従います。
以下の例は、包含リストを使用して、テーブル inventory
に対する SELECT
をユーザー datalake_user1
に付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnNames": ["prodcode","location","period","withdrawals"]}}'
次の例は、除外リストを使用して、inventory
テーブルに対する SELECT
を付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"retail", "Name":"inventory", "ColumnWildcard": {"ExcludedColumnNames": ["intkey", "prodcode"]}}}'
SELECT
許可には以下の制限が適用されます。
-
列フィルタリングが適用されている場合、
SELECT
を付与するときに grant オプションを含めることはできません。 -
パーティションキーである列に対するアクセス制御を制限することはできません。
-
テーブル内の列のサブセットに対する
SELECT
許可を持つプリンシパルに、そのテーブルに対するALTER
、DROP
、DELETE
またはINSERT
許可を付与することはできません。同様に、テーブルに対するALTER
、DROP
、DELETE
またはINSERT
許可を持つプリンシパルに、列フィルタリングを伴うSELECT
許可を付与することはできません。
SELECT
許可は常に、Lake Formation コンソールの [Data permissions] (データの許可) ページに個別の行として表示されます。以下の画像は、inventory
テーブル内のすべての列に対する SELECT
が、ユーザー datalake_user2
と datalake_user3
に付与されていることを示しています。
Super
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
Super |
DATABASE |
glue:*Database*
|
Super |
TABLE |
glue:*Table*, glue:*Partition* |
この許可は、プリンシパルが、データベースまたはテーブルでサポートされているすべての Lake Formation 操作を実行できるようにします。データベースに対する Super
を、外部アカウントに付与することはできません。
この許可は、他の Lake Formation 許可と共存できます。例えば、メタデータテーブルに対する Super
、SELECT
、および INSERT
許可を付与することができます。そうすることで、プリンシパルはテーブルに対してサポートされているすべての操作を実行できるようになります。Super
を取り消すときは、SELECT
と INSERT
許可が残り、プリンシパルは選択操作と挿入操作のみを実行できます。
Super
は、個々のプリンシパルに付与する代わりに、グループ IAMAllowedPrincipals
に付与することができます。IAMAllowedPrincipals
グループは自動的に作成され、IAM ポリシーによって Data Catalog リソースへのアクセスを許可されるすべての IAM ユーザーとロールが含まれます。Data Catalog リソースに対する Super
が IAMAllowedPrincipals
に付与される場合、リソースへのアクセスは、実質的に IAM ポリシーのみで制御されることになります。
Lake Formation コンソールの設定ページでオプションを利用することで、新しいカタログリソースIAMAllowedPrincipals
に対して に自動的に付与するSuper
アクセス許可を持つことができます。
-
すべての新しいデータベースに対する
Super
をIAMAllowedPrincipals
に付与するには、[Use only IAM access control for new databases] (新しいデータベースに IAM アクセス制御のみを使用) を選択します。 -
新しいデータベース内のすべての新しいテーブルに対する
Super
をIAMAllowedPrincipals
に付与するには、[Use only IAM access control for new databases] (新しいデータベースに IAM アクセス制御のみを使用) を選択します。注記
このオプションを選択すると、[Create database] (データベースの作成) ダイアログボックスの [Use only IAM access control for new tables in this database] (このデータベース内の新しいテーブルには IAM アクセス制御のみを使用する) チェックボックスがデフォルトでオンになります。それ以上は何も行われません。
IAMAllowedPrincipals
へのSuper
の付与を有効にするのは、[Create database] (データベースの作成) ダイアログボックスにあるチェックボックスです。
これらの [Settings] (設定) ページオプションは、デフォルトで有効になっています。詳細については、次を参照してください。
ASSOCIATE
許可 | 付与対象リソース | 付与対象に必要な追加の許可 |
---|---|---|
ASSOCIATE |
LF-Tag |
|
LF タグに対してこの許可を持つプリンシパルは、LF タグを Data Catalog リソースに割り当てることができます。ASSOCIATE
の付与は、DESCRIBE
を黙示的に付与します。
この例は、module
キーを持つ LF タグに対する ASSOCIATE
アクセス許可をユーザー datalake_user1
に付与します。これは、そのキーのすべての値 (アスタリスク (*) で指定) を表示して割り当てる許可を付与します。
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "ASSOCIATE" --resource '{ "LFTag": {"CatalogId":"111122223333","TagKey":"module","TagValues":["*"]}}'