

# IAM ポリシーを使用してデータカタログへのアクセスを制御する
<a name="datacatalogs-iam-policy"></a>

データカタログへのアクセスを制御するには、リソースレベルの IAM アクセス許可、またはアイデンティティベースの IAM ポリシーを使用します。

以下の手順は、Athena に固有の手順です。

IAM 固有の情報については、このセクションの最後に表示されているリンク先を参照してください。JSON データカタログポリシーの例については、「[データカタログポリシーの例](datacatalogs-example-policies.md)」を参照してください。

**IAM コンソールのビジュアルエディタを使用してデータカタログポリシーを作成する**

1. AWS マネジメントコンソール にサインインして、IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. 左側のナビゲーションペインで、[**Policies**] (ポリシー)、[**Create policy**] (ポリシーの作成) の順にクリックします。

1. [**Visual editor**] (ビジュアルエディタ) タブで、[**Choose a service**] (サービスの選択) をクリックします。次に、ポリシーに追加する Athena を選択します。

1. **[Select actions]** (アクションの選択) を選択し、ポリシーに追加するアクションを選択します。ビジュアルエディタが Athena で利用できるアクションを表示します。詳細については、「*サービス承認リファレンス*」の「[Amazon Athena のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)」を参照してください。

1. **[Add actions]** (アクションの追加) をクリックして特定のアクションを入力、またはワイルドカード (\$1) を使用して複数のアクションを指定します。

   デフォルトでは、作成しているポリシーが選択するアクションを許可します。Athena 内の `datacatalog` リソースに対するリソースレベルのアクセス許可をサポートするアクションを 1 つ、または複数選択すると、エディタが `datacatalog` リソースをリストします。

1. **[リソース]** (リソース) をクリックして、ポリシーの特定のデータカタログを指定します。JSON データカタログポリシーの例については、「[データカタログポリシーの例](datacatalogs-example-policies.md)」を参照してください。

1. 以下のように `datacatalog` リソースを指定します。

   ```
   arn:aws:athena:<region>:<user-account>:datacatalog/<datacatalog-name>
   ```

1. **[Review policy]** (ポリシーの確認) をクリックして、作成するポリシーの **[Name]** (名前) と **[Description**] (説明) (オプション) を入力します。ポリシー概要を確認して、意図したアクセス許可を付与したことを確認します。

1. [**Create Policy**] (ポリシーの作成) をクリックして、新しいポリシーを保存します。

1. このアイデンティティベースのポリシーをユーザー、グループ、またはロールにアタッチし、それらのユーザー、グループ、またはロールがアクセスできる `datacatalog` リソースを指定します。

詳細については、「*Service Authorization Reference*」と「*IAM ユーザーガイド*」に記載されている以下のトピックを参照してください。
+ [Amazon Athena のアクション、リソース、および条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonathena.html)
+ [ビジュアルエディタでのポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor)
+ [IAM ポリシーの追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)
+ [リソースへのアクセスの制御](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html#access_controlling-resources)

JSON データカタログポリシーの例については、「[データカタログポリシーの例](datacatalogs-example-policies.md)」を参照してください。

AWS Glue のアクセス許可および AWS Glue クローラーのアクセス許可の詳細については、「*AWS Glue デベロッパーガイド*」の「[AWS Glue 用の IAM アクセス許可のセットアップ](https://docs.aws.amazon.com/glue/latest/dg/getting-started-access.html)」および「[クローラーの前提条件](https://docs.aws.amazon.com/glue/latest/dg/crawler-prereqs.html)」を参照してください。

Amazon Athena アクションの完全なリストについては、「[Amazon Athena API リファレンス](https://docs.aws.amazon.com/athena/latest/APIReference/)」の API アクション名を参照してください。

# データカタログポリシーの例
<a name="datacatalogs-example-policies"></a>

このセクションには、データカタログに対するさまざまなアクションを有効にするために使用できるポリシーの例が含まれています。

データカタログは、Athena によって管理されている IAM リソースです。そのため、データカタログポリシーで `datacatalog` を入力として取るアクションを使用する場合、データカタログの ARN を次のように指定する必要があります。

```
"Resource": [arn:aws:athena:<region>:<user-account>:datacatalog/<datacatalog-name>]
```

`<datacatalog-name>` は、データカタログの名前です。例えば、`test_datacatalog` という名前のデータカタログの場合は、次のようにリソースとして指定します。

```
"Resource": ["arn:aws:athena:us-east-1:123456789012:datacatalog/test_datacatalog"]
```

Amazon Athena アクションの完全なリストについては、「[Amazon Athena API リファレンス](https://docs.aws.amazon.com/athena/latest/APIReference/)」の API アクション名を参照してください。IAM ポリシーの詳細については、「*IAM ユーザーガイド*」で「[ビジュアルエディタでのポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-visual-editor)」を参照してください。ワークグループ用の IAM ポリシーの作成に関する詳細については、「[IAM ポリシーを使用してデータカタログへのアクセスを制御する](datacatalogs-iam-policy.md)」を参照してください。
+ [Example Policy for Full Access to All Data Catalogs](#datacatalog-policy-full-access-to-all-data-catalogs)
+ [Example Policy for Full Access to a Specified Data Catalog](#datacatalog-policy-full-access-to-a-specified-catalog)
+ [Example Policy for Querying a Specified Data Catalog](#datacatalog-policy-querying-a-specified-data-catalog)
+ [Example Policy for Management Operations on a Specified Data Catalog](#datacatalog-policy-management-operations-on-a-specified-catalog)
+ [Example Policy for Listing Data Catalogs](#datacatalog-policy-listing-data-catalogs)
+ [Example Policy for Metadata Operations on Data Catalogs](#datacatalog-policy-metadata-operations)

**Example すべてのデータカタログへの完全なアクセスのためのポリシー例**  
以下のポリシーは、アカウントに存在している可能性があるすべてのデータカタログリソースへの完全なアクセスを許可します。アカウントの他のすべてのユーザーのデータカタログを管理する必要があるユーザーにこのポリシーを使用することをお勧めします。    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "athena:*"
         ],
         "Resource":[
            "*"
         ]
      }
   ]
}
```

**Example 指定されたデータカタログへの完全なアクセスのためのポリシー例**  
次のポリシーでは、`datacatalogA` という名前の 1 つの特定のデータカタログリソースへのフルアクセスを許可します。特定のデータカタログを完全に制御しているユーザーにこのポリシーを使用できます。    
****  

```
{ "Version":"2012-10-17",		 	 	  "Statement":[ { "Effect":"Allow", "Action":[
   "athena:ListDataCatalogs", "athena:ListWorkGroups", "athena:GetDatabase", "athena:ListDatabases",
   "athena:ListTableMetadata", "athena:GetTableMetadata" ], "Resource":"*" }, { "Effect":"Allow",
   "Action":[ "athena:StartQueryExecution", "athena:GetQueryResults", "athena:DeleteNamedQuery",
   "athena:GetNamedQuery", "athena:ListQueryExecutions", "athena:StopQueryExecution",
   "athena:GetQueryResultsStream", "athena:ListNamedQueries", "athena:CreateNamedQuery",
   "athena:GetQueryExecution", "athena:BatchGetNamedQuery", "athena:BatchGetQueryExecution",
   "athena:DeleteWorkGroup", "athena:UpdateWorkGroup", "athena:GetWorkGroup",
   "athena:CreateWorkGroup" ], "Resource":[
      "arn:aws:athena:us-east-1:123456789012:workgroup/*"
   ] }, { "Effect":"Allow", "Action":[ "athena:CreateDataCatalog", "athena:DeleteDataCatalog",
   "athena:GetDataCatalog", "athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases",
   "athena:ListTableMetadata", "athena:UpdateDataCatalog" ],
      "Resource":"arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA"
   } ] }
```

**Example 指定されたデータカタログをクエリするためのポリシー例**  
次のポリシーでは、ユーザーは指定した `datacatalogA` に対してクエリを実行することを許可されています。ユーザーは、データカタログの更新や削除など、データカタログ自体の管理タスクを実行することはできません。    
****  

```
{ "Version":"2012-10-17",		 	 	  "Statement":[ { "Effect":"Allow", "Action":[
   "athena:StartQueryExecution" ], "Resource":[
      "arn:aws:athena:us-east-1:123456789012:workgroup/*"
   ] }, { "Effect":"Allow", "Action":[ "athena:GetDataCatalog" ], "Resource":[
      "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA"
   ] } ] }
```

**Example 指定されたデータカタログに対する管理オペレーションのためのポリシー例**  
次のポリシーでは、ユーザーはデータカタログ `datacatalogA` の作成、削除、詳細の取得、および更新を許可されています。    
****  

```
{ "Version":"2012-10-17",		 	 	  "Statement": [ { "Effect": "Allow", "Action": [
    "athena:CreateDataCatalog", "athena:GetDataCatalog", "athena:DeleteDataCatalog",
    "athena:UpdateDataCatalog" ], "Resource": [
        "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA"
    ] } ] }
```

**Example データカタログをリスト化するためのポリシー例**  
以下のポリシーは、すべてのユーザーがすべてのデータカタログをリストアップすることを許可します。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:ListDataCatalogs"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example データカタログでのメタデータオペレーションのためのポリシー例**  
以下のポリシーは、データカタログに対するメタデータオペレーションを許可します。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:GetDatabase",
                "athena:GetTableMetadata",
                "athena:ListDatabases",
                "athena:ListTableMetadata"
            ],
            "Resource": "*"
        }
    ]
}
```