Lake Formation 許可のリファレンス - AWS Lake Formation

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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_user1s3://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

テーブルリソースリンク

データベースリソースリンク

glue:GetTable

glue:GetDatabase

DESCRIBE DATABASE glue:GetDatabase
DESCRIBE TABLE glue:GetTable
DESCRIBE LF-Tag

glue:GetTable

glue:GetDatabase

lakeformation:GetResourceLFTags

lakeformation:ListLFTags

lakeformation:GetLFTag

lakeformation:SearchTablesByLFTags

lakeformation:SearchDatabasesByLFTags

この許可を持つプリンシパルは、指定されたデータベース、テーブル、またはリソースリンクを表示できます。これ以外の Data Catalog 許可が黙示的に付与されることはなく、データアクセス許可が黙示的に付与されることもありません。統合サービスのクエリエディタにはデータベースとテーブルが表示されますが、他の Lake Formation 許可 (SELECT など) が付与されていない限り、それらに対するクエリを実行することはできません。

例えば、データベースに対する DESCRIBE を持つユーザーは、そのデータベースとすべてのデータベースメタデータ (説明、ロケーションなど) を確認できますが、データベースにどのテーブルが含まれているかは判断できず、データベースでテーブルの削除、変更、または作成を行うことはできません。同様に、テーブルに対する DESCRIBE を持つユーザーは、テーブルとテーブルメタデータ (説明、スキーマ、ロケーションなど) を確認できますが、テーブルに対してドロップ、変更、またはクエリを実行することはできません。

以下は、DESCRIBE に関する追加のルールです。

  • ユーザーがデータベース、テーブル、またはリソースリンクに対する他の Lake Formation 許可を持っている場合、DESCRIBE が黙示的に付与されます。

  • ユーザーがテーブルについて列のサブセットのみに対する SELECT (partial SELECT) を持っている場合、ユーザーはこれらの列のみの表示に制限されます。

  • テーブルに対する 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

データベースリソースリンク

テーブルリソースリンク

glue:DeleteDatabase

glue:DeleteTable

この許可を持つプリンシパルは、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
  • TABLE

(ロケーションが登録されている場合、追加の 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 許可を持つプリンシパルに、そのテーブルに対する ALTERDROPDELETE または INSERT 許可を付与することはできません。同様に、テーブルに対する ALTERDROPDELETE または INSERT 許可を持つプリンシパルに、列フィルタリングを伴う SELECT 許可を付与することはできません。

SELECT 許可は常に、Lake Formation コンソールの [Data permissions] (データの許可) ページに個別の行として表示されます。以下の画像は、inventory テーブル内のすべての列に対する SELECT が、ユーザー datalake_user2datalake_user3 に付与されていることを示しています。

[Data permissions] (データの許可) ページに、ユーザー datalake_user1 とテーブルインベントリの 2 つの行が表示されています。最初の行には Delete (削除) と Insert (挿入) の許可とともにリソースタイプ Table (テーブル) がリストされており、2 行目には Select (選択) 許可と Column (列) リソースタイプがリストされ、リソースとして retail.inventory.* が表示されています。

Super

許可 付与対象リソース 付与対象に必要な追加の許可
Super DATABASE glue:*Database*
Super TABLE glue:*Table*, glue:*Partition*

この許可は、プリンシパルが、データベースまたはテーブルでサポートされているすべての Lake Formation 操作を実行できるようにします。データベースに対する Super を、外部アカウントに付与することはできません。

この許可は、他の Lake Formation 許可と共存できます。例えば、メタデータテーブルに対する SuperSELECT、および INSERT 許可を付与することができます。そうすることで、プリンシパルはテーブルに対してサポートされているすべての操作を実行できるようになります。Super を取り消すときは、SELECTINSERT 許可が残り、プリンシパルは選択操作と挿入操作のみを実行できます。

Super は、個々のプリンシパルに付与する代わりに、グループ IAMAllowedPrincipals に付与することができます。IAMAllowedPrincipals グループは自動的に作成され、IAM ポリシーによって Data Catalog リソースへのアクセスを許可されるすべての IAM ユーザーとロールが含まれます。Data Catalog リソースに対する SuperIAMAllowedPrincipals に付与される場合、リソースへのアクセスは、実質的に IAM ポリシーのみで制御されることになります。

Lake Formation コンソールの設定ページでオプションを利用することで、新しいカタログリソースIAMAllowedPrincipalsに対して に自動的に付与するSuperアクセス許可を持つことができます。

[Data catalog settings] (Data Catalog 設定) ダイアログボックスには、「Default permissions for newly created databases and tables」(新しく作成されたデータベースとテーブルのデフォルト許可) というサブタイトルが付いており、テキストで説明されている 2 つのチェックボックスがあります。
  • すべての新しいデータベースに対する SuperIAMAllowedPrincipals に付与するには、[Use only IAM access control for new databases] (新しいデータベースに IAM アクセス制御のみを使用) を選択します。

  • 新しいデータベース内のすべての新しいテーブルに対する SuperIAMAllowedPrincipals に付与するには、[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

glue:GetDatabase

glue:GetTable

lakeformation:AddLFTagsToResource"

lakeformation:RemoveLFTagsFromResource"

lakeformation:GetResourceLFTags

lakeformation:ListLFTags

lakeformation:GetLFTag

lakeformation:SearchTablesByLFTags

lakeformation:SearchDatabasesByLFTags

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":["*"]}}'