

# DAX のサービスにリンクされた IAM ロールの使用
<a name="using-service-linked-roles"></a>

この Amazon DynamoDB Accelerator (DAX) では、AWS Identity and Access Management (IAM) の[サービスにリンクされたロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)が使用されます。サービスにリンクされたロールは、DAX に直接リンクされた一意のタイプの IAM ロールです。サービスにリンクされたロールは、DAX で事前定義されており、ユーザーの代わりに必要なサービスから他の AWS のサービスを呼び出すための、すべてのアクセス許可が付与されています。

サービスにリンクされたロールを使用することで、必要なアクセス許可を手動で追加する必要がなくなるため、DAX の設定が簡単になります。サービスにリンクされたロールのアクセス許可は DAX により定義され、他に特別な定義がある場合を除き、DAX のみがそのロールを引き受けることができます。定義されたアクセス権限には、信頼ポリシーとアクセス権限ポリシーが含まれます。このアクセス許可ポリシーを他の IAM エンティティにアタッチすることはできません。

ロールを削除するには、まず関連リソースを削除します。これにより、DAX リソースに対するアクセス権限が意図せずに削除されることがなくなり、リソースを保護できます。

サービスにリンクされたロールをサポートしているその他のサービスの詳細については、*IAM ユーザーガイド*の「[IAM と連携する AWS のサービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。[**サービスにリンクされたロール**] 列が [**はい**] になっているサービスを見つけます。該当するサービスにリンクされたロールに関するドキュメントを表示するには、[**あり**] リンクを選択します。

**Topics**
+ [DAX のサービスにリンクされたロールにおけるアクセス許可](#service-linked-role-permissions)
+ [DAX でサービスにリンクされたロールの作成](#create-service-linked-role)
+ [DAX のサービスにリンクされたロールの編集](#edit-service-linked-role)
+ [DAX でサービスにリンクされたロールの削除](#delete-service-linked-role)

## DAX のサービスにリンクされたロールにおけるアクセス許可
<a name="service-linked-role-permissions"></a>

DAX では、`AWSServiceRoleForDAX` という名前のサービスにリンクされたロールを使用します。このロールにより、ユーザーの DAX クラスターに代わってサービスを呼び出すことを、DAX に許可します。

**重要**  
サービスにリンクされたロール `AWSServiceRoleForDAX` により、DAX クラスターのセットアップと保守が簡単になります。ただし、このロールを使用する前に、各クラスターに DynamoDB へのアクセス許可を付与する必要があります。詳細については、「」を参照してください[DAX のアクセスコントロール](DAX.access-control.md)

`AWSServiceRoleForDAX` サービスリンクロールは、ロールの引き受けについて以下のサービスを信頼します。
+ `dax.amazonaws.com`

ロールのアクセス許可ポリシーは、DAX に対し、指定したリソースで以下のアクションを実行することを許可します。
+ `ec2` でのアクション:
  + `AuthorizeSecurityGroupIngress`
  + `CreateNetworkInterface`
  + `CreateSecurityGroup`
  + `DeleteNetworkInterface`
  + `DeleteSecurityGroup`
  + `DescribeAvailabilityZones`
  + `DescribeNetworkInterfaces`
  + `DescribeSecurityGroups`
  + `DescribeSubnets`
  + `DescribeVpcs`
  + `ModifyNetworkInterfaceAttribute`
  + `RevokeSecurityGroupIngress`

サービスにリンクされたロールの作成、編集、削除を IAM エンティティ (ユーザー、グループ、ロールなど) に許可するには、アクセス許可を設定する必要があります。詳細については、*IAM ユーザーガイド*の「[サービスにリンクされたロールの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)」を参照してください。

**IAM エンティティが AWSServiceRoleForDAX サービスにリンクされたロールを作成するには**

 以下のポリシーステートメントを IAM エンティティのアクセス許可に追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole"
    ],
    "Resource": "*",
    "Condition": {"StringLike": {"iam:AWSServiceName": "dax.amazonaws.com"}}
}
```

## DAX でサービスにリンクされたロールの作成
<a name="create-service-linked-role"></a>

サービスにリンクされたロールを手動で作成する必要はありません。サービスにリンクされたロールは、クラスターの作成時に DAX により自動的に作成されます。

**重要**  
2018 年 2 月 28日より前に DAX サービスを使用していた場合は、サービスにリンクされたロールのサポートが開始された時点で、`AWSServiceRoleForDAX` ロールが DAX によってアカウントに作成されています。詳細については、*IAM ユーザーガイド*の「[AWS アカウントに新しいロールが表示される](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)」を参照してください。

サービスにリンクされたこのロールを削除したが、再作成する必要がある場合は、同じプロセスで、アカウントにロールを再作成することができます。インスタンスまたはクラスターを作成するたびに、(ユーザーに代わり) DAX により、サービスにリンクされたロールが再作成されます。

## DAX のサービスにリンクされたロールの編集
<a name="edit-service-linked-role"></a>

DAX では、サービスにリンクされたロール `AWSServiceRoleForDAX` を編集することはできません。サービスにリンクされたロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用してロールの説明を編集することはできます。詳細については、*IAM ユーザーガイド*の「[サービスにリンクされたロールの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)」を参照してください。

## DAX でサービスにリンクされたロールの削除
<a name="delete-service-linked-role"></a>

サービスリンクロールを必要とする機能またはサービスが不要になった場合には、そのロールを削除することをお勧めします。そうすることで、積極的にモニタリングまたは保守されていない未使用のエンティティを排除できます。ただし、サービスにリンクされたロールを削除する前に、すべての DAX クラスターを削除する必要があります。

### サービスにリンクされたロールのクリーンアップ
<a name="service-linked-role-review-before-delete"></a>

IAM を使用してサービスにリンクされたロールを削除するには、まずそのロールにアクティブなセッションがないことを確認し、そのロールで使用されているリソースをすべて削除する必要があります。

**サービスにリンクされたロールにアクティブなセッションがあるかどうかを、IAM コンソールで確認するには**

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

1. IAM コンソールのナビゲーションペインで [**ロール**] を選択します。次に、**AWSServiceRoleForDAX** ロールの名前 (チェックボックスではありません) を選択します。

1. 選択したロールの [**Summary**] ページで、[**Access Advisor**] タブを選択します。

1. [**Access Advisor**] タブで、サービスにリンクされたロールの最新のアクティビティを確認します。
**注記**  
DAX で `AWSServiceRoleForDAX` ロールが使用されているかどうかが不明な場合は、このロールの削除を試みることができます。サービスがロールを使用している場合、削除は失敗し、ロールが使用されているリージョンを表示できます。ロールが使用されている場合は、そのロールを削除する前に DAX クラスターを削除する必要があります。サービスにリンクされたロールのセッションを取り消すことはできません。

`AWSServiceRoleForDAX` ロールを削除する場合は、最初にすべての DAX クラスターを削除する必要があります。

#### すべての DAX クラスターの削除
<a name="delete-service-linked-role.clusters"></a>

以下のいずれかの手順を使用して、各 DAX クラスターを削除します。

**DAX クラスターを削除するには (コンソール)**

1. DynamoDB コンソール ([https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)) を開きます。

1. ナビゲーションペインの、[**DAX**] で、[**クラスター**]を選択します。

1. [**アクション**] を選択して、[**削除**] を選択します。

1. [**Delete cluster confirmation (クラスターの削除の確認)**] ボックスで、[**削除**] を選択します。

**DAX クラスターを削除するには (AWS CLI)**  
*AWS CLI コマンドリファレンス*の「[delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/dax/delete-cluster.html)」を参照してください。

**DAX クラスターを削除するには (API)**  
「Amazon DynamoDB API リファレンス」の「[DeleteCluster](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_dax_DeleteCluster.html)」を参照してください。

#### サービスにリンクされたロールの削除
<a name="delete-service-linked-role.slr"></a>

**IAM を使用して、サービスにリンクされたロールを手動で削除するには**

`AWSServiceRoleForDAX` サービスにリンクされたロールを削除するには、IAM コンソール、IAM CLI、または IAM API を使用します。詳細については、*IAM ユーザーガイド*の「[サービスにリンクされたロールの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)」を参照してください。