名前付きリソース方式を使用したテーブル許可の付与 - AWS Lake Formation

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

名前付きリソース方式を使用したテーブル許可の付与

Lake Formation コンソールと AWS CLI を使用して、データカタログテーブルに対する Lake Formation 許可を付与することができます。個々のテーブルに対する許可を付与する、または 1 回の付与操作で、データベース内のすべてのテーブルに対する許可を付与することができます。

データベース内のすべてのテーブルに対する許可を付与すると、データベースに対する DESCRIBE 許可を黙示的に付与することになります。その後は、データベースがコンソールの [Databases] (データベース) ページに表示され、GetDatabases API 操作によって返されます。

付与する許可として SELECT を選択するときは、列フィルター、行フィルター、またはセルフィルターを適用するオプションがあります。

Console

以下は、名前付きリソース方式と、Lake Formation コンソールの [データレイクのアクセス許可を付与] ページを使用して、テーブル許可を付与する方法を説明する手順です。このページは、これらのセクションに分けられています。

  • [Principals] (プリンシパル) – 許可の付与先となるユーザー、ロール、AWS アカウント、組織、または組織単位。

  • [LF-Tags or catalog resources] (LF タグまたはカタログリソース) – 付与される許可の対象となるデータベース、テーブル、またはリソースリンク。

  • [Permissions] (許可) – 付与される Lake Formation 許可。

注記

テーブルリソースリンクに対する許可を付与するには、「リソースリンク許可の付与」を参照してください。

  1. [データレイクのアクセス許可を付与] ページを開きます。

    AWS Lake Formation コンソール (https://console.aws.amazon.com/lakeformation/) を開き、データレイク管理者、データベース作成者、またはデータベースに対する grant オプション付きの Lake Formation 許可を付与されたユーザーとしてサインインします。

    次のいずれかを行います:

    • ナビゲーションペインの [許可][データレイクの許可] を選択します。次に、[Grant] (付与) を選択します。

    • ナビゲーションペインで [Table] (テーブル) を選択します。次に、[Tables] (テーブル) ページでテーブルを選択し、[Actions] (アクション) メニューの [Permissions] (許可) で [Grant] (付与) を選択します。

    注記

    テーブルに対する許可は、リソースリンクを使用して付与することができます。これを実行するには、[Tables] (テーブル) ページでリソースリンクを選択し、[Actions] (アクション) メニューで [Grant on target] (ターゲットに対して付与) を選択します。詳細については、「Lake Formation でのリソースリンクの仕組み」を参照してください。

  2. 次に、[プリンシパル] セクションでプリンシパルタイプを選択して、アクセス許可の付与先となるプリンシパルを指定します。

    
                  [Principals] (プリンシパル) セクションには、次のテキストを使用した名前が付いている 3 つのタイルが含まれています。各タイルには、オプションボタンとテキストがあります。[IAM アイデンティティセンターのユーザーとグループ] タイルが選択されており、タイルの下に [IAM ユーザーおよびロール] ドロップダウンリストがあります。
    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 の付与コマンドと取り消し 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 個の追加の小文字または数字が続きます。

  3. [LF-Tags or catalog resources] (LF タグまたはカタログリソース) セクションで、データベースを選択します。次に、1 つ、または複数のテーブルを選択するか、[All tables] (すべてのテーブル) を選択します。

    
                  [LF-Tags or catalog resources] (LF タグまたはカタログリソース) セクションには、水平に配置された 2 つのタイルがあり、各タイルにはオプションボタンと説明テキストが含まれています。オプションは、[LF タグに一致するリソース] と [名前付きの Data Catalog リソース] です。名前付き Data Catalog リソースが選択されています。タイルの下には、[Database] (データベース) と [Table] (テーブル) の 2 つのドロップダウンリストがあります。[Database] (データベース) ドロップダウンリストには、その下に選択したデータベース名が含まれるタイルがあります。[Table] (テーブル) ドロップダウンリストには、その下に選択したテーブル名が含まれるタイルがあります。
  4. データフィルタリングを使用せずに許可を指定する

    [許可] セクションで、付与するテーブル許可を選択し、オプションで付与可能な許可を選択します。

    
                           [Table and column permissions] (テーブルと列の許可) セクションには、[Table permissions] (テーブルの許可) と [Grantable permissions] (付与可能な許可) の 2 つのサブセクションがあります。各サブセクションには、[Alter] (変更)、[Insert] (挿入)、[Drop] (ドロップ)、[Delete] (削除)、[Select] (選択)、[Describe] (記述)、および [Super] (スーパー) の可能な Lake Formation 許可ごとのチェックボックスがあります。[Super] (スーパー) 許可は他の許可の右側に設置されており、「This permission allows the principal to grant any of the permissions to the left, and supersedes those grantable permissions」(この許可は、プリンシパルが左側にあるどの許可でも付与できるようにし、これらの付与可能な許可に優先します」という説明があります。

    [Select] (選択) を付与する場合は、[Table and column permissions] (テーブルと列の許可) セクションの下に、[All data access] (すべてのデータアクセス) オプションがデフォルトで選択された [Data permissions] (データの許可) セクションが表示されます。デフォルトを受け入れます。

    
                           このセクションには水平に配置された 3 つのタイルがあり、それぞれにオプションボタンと説明があります。オプションボタンは、[All data access] (すべてのデータアクセス) (選択済み)、[Simple column-based access] (シンプルな列ベースのアクセス)、および [Advanced cell-level filters] (高度なセルレベルのフィルター) です。
  5. [Grant] (付与) を選択します。

  6. データフィルタリングを使用して選択許可を指定する

    [Select] (選択) 許可を選択します。他の許可は選択しないでください。

    [Data permissions] (データの許可) セクションが、[Table and column permissions] (テーブルと列の許可) セクションの下に表示されます。

  7. 以下のいずれかを実行します。

    • シンプルな列フィルタリングのみを適用します。

      1. [Simple column-based access] (シンプルな列ベースのアクセス) を選択します。

        
                                       最上部のセクションは、[Table and column permissions] (テーブルと列の許可) セクションです。これは、前述のスクリーンショットで説明されています。これには、テーブル許可と付与可能な許可のチェックボックスが含まれています。最下部のセクションである [Data permission] (データ許可) には 3 つのタイルが水平に配置されており、各タイルにはオプションボタンと説明があります。オプションは、[All data access] (すべてのデータアクセス)、[Simple column-based access] (シンプルな列ベースのアクセス)、および [Advanced cell-level filters] (高度なセルレベルのフィルター) です。[Simple column-based access] (シンプルな列ベースのアクセス) オプションが選択されています。タイルの下には、[Choose permission filter] (許可フィルターの選択) というラベルが付いたオプションボタングループがあります。オプションには、[列を含める] と [列を除外する] があります。オプショングループの下には [Select columns] (列の選択) ドロップダウンリストがあり、その下には、[Select] (選択) というラベルが付いた単一のチェックボックスがあります。
      2. 列を含めるか除外するかを選択してから、含める、または除外する列を選択します。

        外部の AWS アカウントまたは組織に許可を付与する場合は、含めるリストのみがサポートされます。

      3. (オプション) [Grantable permissions] (付与可能な許可) で、[Select] (選択) に対して grant オプションをオンにします。

        Grant オプションを含めると、付与対象者は、ユーザーが付与対象者に付与する列に対する許可のみを付与できます。

      注記

      また、列フィルターは、列フィルターを指定し、すべての行を行フィルターとして指定するデータフィルターを作成することによってのみ、適用できます。ただし、これには追加の手順が必要になります。

    • 列、行、またはセルのフィルタリングを適用します。

      1. [Advanced cell-level filters] (高度なセルレベルのフィルター) を選択します。

        
                                       [Data permissions] (データの許可) というタイトルのこのセクションは、[Table permissions] (テーブルの許可) セクションの下にあります。これには水平に配置された 3 つのタイルがあり、各タイルにオプションボタンと説明があります。オプションは、[All data access] (すべてのデータアクセス)、[Simple column-based access] (シンプルな列ベースのアクセス)、および [Advanced cell-level filters] (高度なセルレベルのフィルター) です。[Advanced cell-level filters] (高度なセルレベルのフィルター) オプションが選択されています。そのタイルの下には [View existing permissions] (既存の許可を表示) というラベルがあり、左側に一覧表示用の三角形があります。既存の許可は一覧表示されていません。その下には、[Data filters to grant] (付与するデータフィルター) というタイトルのセクションがあります。タイトルの右側には、更新、[Manage filters] (フィルターを管理)、および [Create new filter] (新しいフィルターを作成) の 3 つのボタンがあります。タイトルとボタンの下には、プレースホルダテキストである「Find filter」(フィルターを検索) が表示されたテキストフィールドがあります。その下には、既存のフィルターの表があります。各行の左側にチェックボックスがあります。列の見出しは、[Filter name] (フィルター名)、[Table] (テーブル)、[Database] (データベース)、および [Table catalog ID] (テーブルカタログ ID) です。2 つの行があります。最初の行のフィルター名は restrict-pharma です。2 行目の名前は no-pharma です。
      2. (オプション) [View existing permissions] (既存の許可を表示) を展開します。

      3. (オプション) [Create new filter] (新しいフィルターを作成) を選択します。

      4. (オプション) リストされたフィルターの詳細を表示する、または新しいフィルターの作成や既存のフィルターの削除を実行するには、[Manage filters] (フィルターを管理) を選択します。

        [Data filters] (データフィルター) ページは、新しいブラウザで開きます。

        [Data filters] (データフィルター) ページでの作業を終えたら、[Grant permissions] (許可の付与) ページに戻り、必要に応じてページを更新して、作成した新しいデータフィルターを表示します。

      5. この付与に適用する 1 つ、または複数のデータフィルターを選択します。

        注記

        リストにデータフィルターがない場合は、選択したテーブルに対してデータフィルターが作成されていないことを意味します。

  8. [Grant] (付与) を選択します。

AWS CLI

テーブル許可は、名前付きリソース方式と AWS Command Line Interface (AWS CLI) を使用して付与することができます。

AWS CLI を使用してテーブル許可を付与する
  • grant-permissions コマンドを実行し、リソースとしてテーブルを指定します。

例 – 単一のテーブルに対する付与 – フィルタリングなし

以下の例は、データベース retail のテーブル inventory に対する SELECT および ALTER を、AWS アカウント 1111-2222-3333 のユーザー datalake_user1 に付与します。

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" "ALTER" --resource '{ "Table": {"DatabaseName":"retail", "Name":"inventory"}}'
注記

登録されたロケーションに基盤となるデータを持つテーブルに対する ALTER 許可を付与する場合は、そのロケーションに対するデータロケーション許可もプリンシパルに付与するようにしてください。詳細については、「データロケーション許可の付与」を参照してください。

例 – 付与オプションを使用したすべてのテーブルに対する付与 – フィルタリングなし

次の例は、データベース retail 内のすべてのテーブルに対する grant オプション付きの SELECT を付与します。

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --permissions-with-grant-option "SELECT" --resource '{ "Table": { "DatabaseName": "retail", "TableWildcard": {} } }'
例 – シンプルな列フィルタリングを使用する付与

次の例は、表 persons 内の列のサブセットに対する SELECT を付与します。これは、シンプルな列フィルタリングを使用します。

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "SELECT" --resource '{ "TableWithColumns": {"DatabaseName":"hr", "Name":"persons", "ColumnNames":["family_name", "given_name", "gender"]}}'
例 – データフィルターを適用する付与

この例は、orders テーブルに対する SELECT を付与し、restrict-pharma データフィルターを適用します。

aws lakeformation grant-permissions --cli-input-json file://grant-params.json

以下は、ファイル grant-params.json の内容です。

{ "Principal": {"DataLakePrincipalIdentifier": "arn:aws:iam::111122223333:user/datalake_user1"}, "Resource": { "DataCellsFilter": { "TableCatalogId": "111122223333", "DatabaseName": "sales", "TableName": "orders", "Name": "restrict-pharma" } }, "Permissions": ["SELECT"], "PermissionsWithGrantOption": ["SELECT"] }