

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

# メタデータのアクセスコントロール
<a name="access-control-metadata"></a>

Data Catalog リソースのアクセスコントロールに関する以下の説明は、Lake Formation 許可を使用した細粒度のアクセスコントロールと、IAM ポリシーを使用した粗粒度のアクセスコントロールを前提としています。

Data Catalog リソースに対する Lake Formation 許可を付与するには、以下の 2 つの異なる方式があります。
+ **名前付きリソースでのアクセスコントロール** – この方式では、データベース名またはテーブル名を指定することで、特定のデータベースまたはテーブルに対する許可を付与します。付与はこのような形式になります。

  Grant *(アクセス許可)* to *(プリンシパル)* on *(リソース)* [with grant option]

  grant オプションは、付与対象者が他のプリンシパルに許可を付与することを可能にします。
+ **タグベースのアクセスコントロール** – この方式では、Data Catalog のデータベース、テーブル、および列に 1 つまたは複数の LF タグを割り当てて、1 つまたは複数の LF タグに対するアクセス許可をプリンシパルに付与します。各 LF タグは、`department=sales` のようなキーと値のペアです。Data Catalog リソースの LF タグと一致する LF タグを持つプリンシパルが、そのリソースにアクセスできます。この方式は、多数のデータベースとテーブルを持つデータレイクに推奨されます。これは、「[Lake Formation のタグベースのアクセス制御](tag-based-access-control.md)」で詳しく説明されています。

プリンシパルがリソースに対して持っている許可は、両方の方式によって付与された許可を結合したものです。

以下の表は、Data Catalog リソースに対して利用できる Lake Formation 許可の要約です。列の見出しは、許可が付与されるリソースを示しています。


| カタログ | データベース | テーブル | 
| --- | --- | --- | 
| CREATE\$1DATABASE | CREATE\$1TABLE | ALTER | 
|  | ALTER | DROP | 
|  | DROP | DESCRIBE | 
|  | DESCRIBE | SELECT\$1 | 
|  |  | INSERT\$1 | 
|  |  | DELETE\$1 | 

例えば、データベースに対する `CREATE_TABLE` 許可が付与されるとします。これは、プリンシパルがそのデータベース内にテーブルを作成できることを意味します。

アスタリスク (\$1) が付いた許可は Data Catalog リソースについて付与されますが、基盤となるデータに適用されます。例えば、メタデータテーブルに対する `DROP` 許可は、Data Catalog からテーブルをドロップできるようにします。一方で、同じテーブルについて付与された `DELETE` 許可は、Amazon S3 内にあるテーブルの基盤となるデータを、SQL `DELETE` 文などを使用して削除できるようにします。これらの許可があれば、Lake Formation コンソールでテーブルを表示したり、AWS Glue API を使用してテーブルに関する情報を取得したりすることもできます。したがって、`SELECT`、`INSERT`、および `DELETE` は、Data Catalog 許可とデータアクセス許可の両方になります。

テーブルに対する `SELECT` を付与するときは、1 つ、または複数の列を包含する、または除外するフィルターを追加できます。これは、メタデータテーブル列に対する細粒度のアクセスコントロールを可能にして、統合されたサービスのユーザーがクエリを実行するときに表示される列を制限します。この機能は、IAM ポリシーのみを使用して利用することはできません。

`Super` という名前の特別な許可もあります。この `Super` 許可は、プリンシパルが、許可の対象であるデータベースまたはテーブルで、サポートされているすべての Lake Formation 操作を実行できるようにします。この許可は、他の Lake Formation 許可と共存できます。例えば、メタデータテーブルに対する `Super`、`SELECT`、および `INSERT` を付与することができます。プリンシパルは、サポートされているすべてのアクションをテーブルで実行でき、`Super` 許可を取り消しても、`SELECT` と `INSERT` 許可は残ります。

各許可の詳細については、「[Lake Formation 許可のリファレンス](lf-permissions-reference.md)」を参照してください。

**重要**  
別のユーザーが作成した Data Catalog テーブルを表示するには、そのテーブルに対する Lake Formation 許可が、少なくとも 1 つ付与されている必要があります。テーブルに対する許可が少なくとも 1 つ付与されている場合は、テーブルが含まれているデータベースも表示することができます。

Data Catalog 許可は、Lake Formation コンソール、API、または AWS Command Line Interface (AWS CLI) を使用して付与または取り消すことができます。以下は、`retail`データベースにテーブルを作成するアクセス`datalake_user1`許可をユーザーに付与する AWS CLI コマンドの例です。

```
aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 
 --permissions "CREATE_TABLE" --resource '{ "Database": {"Name":"retail"}}'
```

以下は、Lake Formation 許可による細粒度のアクセスコントロールを補完する粗粒度のアクセスコントロール IAM ポリシーの例です。これは、任意のメタデータデータベースまたはテーブルに対するすべての操作を許可します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:*Database*",
                "glue:*Table*",
                "glue:*Partition*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

次の例も粗粒度ですが、制限が多少厳しくなります。これは、指定されたアカウントとリージョン内の Data Catalog にある、すべてのメタデータデータベースおよびテーブルに対する読み取り専用操作を許可します。

------
#### [ JSON ]

****  

```
{  
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetTables",
                "glue:SearchTables",
                "glue:GetTable",
                "glue:GetDatabase", 
                "glue:GetDatabases"
            ],
            "Resource": "arn:aws:glue:us-east-1:111122223333:*"
        } 
    ]   
}
```

------

これらのポリシーを、IAM ベースの細粒度のアクセスコントロールを実装する以下のポリシーと比較してください。これは、指定されたアカウントとリージョン内の顧客関係管理 (CRM) メタデータデータベースにあるテーブルのサブセットのみに対する許可を付与します。

------
#### [ JSON ]

****  

```
{  
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetTables",
                "glue:SearchTables",
                "glue:GetTable",
                "glue:GetDatabase", 
                "glue:GetDatabases"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:111122223333:catalog",
                "arn:aws:glue:us-east-1:111122223333:database/CRM",
                "arn:aws:glue:us-east-1:111122223333:table/CRM/P*"
            ]
        } 
    ]   
}
```

------

粗粒度のアクセスコントロールポリシーの追加例については、「[Lake Formation のペルソナと IAM 許可のリファレンス](permissions-reference.md)」を参照してください。