

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

# ElastiCache リソースに対するアクセス許可の管理の概要
<a name="IAM.Overview"></a>

すべてのAWSリソースはAWSアカウントによって所有され、リソースを作成またはアクセスするためのアクセス許可はアクセス許可ポリシーによって管理されます。アカウント管理者は、IAM アイデンティティ (つまり、ユーザー、グループ、ロール) に許可ポリシーをアタッチできます。さらに、Amazon ElastiCache では、アクセス許可ポリシーをリソースにアタッチすることもできます。

**注記**  
*アカウント管理者* (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、「*IAM ユーザーガイド*」の「[IAM のベストプラクティス](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)」を参照してください。

アクセス権限を付与するにはユーザー、グループ、またはロールにアクセス許可を追加します。
+ のユーザーとグループAWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンターユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド* の [ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) の指示に従います。

**Topics**
+ [Amazon ElastiCache のリソースとオペレーション](#IAM.Overview.ResourcesAndOperations)
+ [リソース所有権についての理解](#access-control-resource-ownership)
+ [リソースへのアクセスの管理](#IAM.Overview.ManagingAccess)
+ [AWS Amazon ElastiCache の マネージドポリシー](IAM.IdentityBasedPolicies.PredefinedPolicies.md)
+ [Amazon ElastiCache でのアイデンティティベースのポリシー (IAM ポリシー) の使用](IAM.IdentityBasedPolicies.md)
+ [リソースレベルのアクセス許可](IAM.ResourceLevelPermissions.md)
+ [条件キーの使用](IAM.ConditionKeys.md)
+ [Amazon ElastiCache でのサービスにリンクされたロールの使用](using-service-linked-roles.md)
+ [ElastiCache API のアクセス許可: アクション、リソース、条件リファレンス](IAM.APIReference.md)

## Amazon ElastiCache のリソースとオペレーション
<a name="IAM.Overview.ResourcesAndOperations"></a>

ElastiCache リソースのタイプとその ARN のリストを確認するには、「**サービス認可リファレンス」の「[Amazon ElastiCache で定義されるリソース](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-resources-for-iam-policies)」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「[Amazon ElastiCache で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-actions-as-permissions)」を参照してください。

## リソース所有権についての理解
<a name="access-control-resource-ownership"></a>

*リソース所有者*は、リソースを作成したAWSアカウントです。つまり、リソース所有者は、リソースを作成するリクエストを認証するプリンシパルエンティティのAWSアカウントです。*プリンシパルエンティティ* はルートアカウント、IAM ユーザー、または IAM ロールです。次の例は、この仕組みを示しています。
+ AWSアカウントのルートアカウントの認証情報を使用してキャッシュクラスターを作成するとします。この場合、AWSアカウントはリソースの所有者です。ElastiCache では、リソースはクラスターです。
+ AWSアカウントに IAM ユーザーを作成し、そのユーザーにクラスターを作成するアクセス許可を付与するとします。この場合、ユーザーはクラスターを作成できます。ただし、ユーザーが属するAWSアカウントはクラスターリソースを所有します。
+ クラスターを作成するアクセス許可を持つ IAM ロールをAWSアカウントに作成するとします。この場合、ロールを引き受けることができるいずれのユーザーもクラスターを作成できます。ロールが属するAWSアカウントは、キャッシュクラスターリソースを所有します。

## リソースへのアクセスの管理
<a name="IAM.Overview.ManagingAccess"></a>

*アクセス権限ポリシー* では、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス許可ポリシーを作成するために使用可能なオプションについて説明します。

**注記**  
このセクションでは、Amazon ElastiCache のコンテキストでの IAM の使用について説明します。ここでは、IAM サービスに関する詳細情報を提供しません。完全な IAM ドキュメンテーションについては、「*IAM ユーザーガイド*」の「[IAM とは](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)」を参照してください。IAM ポリシー構文の詳細と説明については、*IAM ユーザーガイド*の [AWS IAM ポリシーの参照](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)を参照してください。

IAM アイデンティティにアタッチされているポリシーは、*アイデンティティベース*のポリシー (IAM ポリシー) と呼ばれます。リソースに添付されたポリシーは、リソースベースのポリシーと呼ばれます。

**Topics**
+ [アイデンティティベースのポリシー (IAM ポリシー）](#IAM.Overview.ManagingAccess.IdentityBasedPolicies)
+ [ポリシー要素の指定: アクション、効果、リソース、プリンシパル](#IAM.Overview.PolicyElements)
+ [ポリシーでの条件の指定](#IAM.Overview.Conditions)

### アイデンティティベースのポリシー (IAM ポリシー）
<a name="IAM.Overview.ManagingAccess.IdentityBasedPolicies"></a>

ポリシーを IAM アイデンティティにアタッチできます。例えば、次のオペレーションを実行できます。
+ **アカウントのユーザーまたはグループにアクセス許可ポリシーをアタッチする** – アカウント管理者は、特定のユーザーに関連付けられるアクセス許可ポリシーを使用して、アクセス許可を付与できます。この場合、アクセス許可は、そのユーザーがキャッシュクラスター、パラメータグループ、セキュリティグループなどの ElastiCache リソースを作成するためのものです。
+ **アクセス権限ポリシーをロールにアタッチする (クロスアカウントの許可を付与)** - ID ベースのアクセス権限ポリシーを IAM ロールにアタッチして、クロスアカウントの権限を付与することができます。たとえば、アカウント A の管理者は、次のように別のAWSアカウント (アカウント B など) またはAWSサービスにクロスアカウントアクセス許可を付与するロールを作成できます。

  1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースに許可を付与するロールに許可ポリシーをアタッチします。

  1. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別するロールに、信頼ポリシーをアタッチします。

  1. アカウント B の管理者は、アカウント B のユーザーにロールを引き受けるアクセス許可を委任できます。これにより、アカウント B のユーザーがアカウント A のリソースを作成またはアクセスできるようになります。場合によっては、ロールを引き受けるアクセス許可をAWSサービスに付与する場合があります。このアプローチをサポートするために、信頼ポリシーのプリンシパルをAWSのサービスのプリンシパルにすることもできます。

  IAM を使用した許可の委任の詳細については、「IAM ユーザーガイド」の「[アクセス管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)」を参照してください。

以下は、ユーザーがAWSアカウントの `DescribeCacheClusters`アクションを実行できるようにするポリシーの例です。ElastiCache では、API アクションのリソース ARN を使用した特定のリソースの識別もサポートしています。(このアプローチは、リソースレベルのアクセス許可とも呼ばれます)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeCacheClusters",
            "Effect": "Allow",
            "Action": [
                "elasticache:DescribeCacheClusters"
            ],
            "Resource": "arn:aws:iam::*:role/*"
        }
    ]
}
```

------

ElastiCache でアイデンティティベースのポリシーを使用する場合の詳細については、「[Amazon ElastiCache でのアイデンティティベースのポリシー (IAM ポリシー) の使用](IAM.IdentityBasedPolicies.md)」を参照してください。ユーザー、グループ、ロール、アクセス許可の詳細については、*IAM ユーザーガイド*の「[アイデンティティ (ユーザー、グループ、ロール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)」を参照してください。

### ポリシー要素の指定: アクション、効果、リソース、プリンシパル
<a name="IAM.Overview.PolicyElements"></a>

サービスは、Amazon ElastiCache リソースごとに ([Amazon ElastiCache のリソースとオペレーション](#IAM.Overview.ResourcesAndOperations) を参照)、一連の API オペレーションを定義します ([アクション](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_Operations.html)を参照)。こうした API オペレーションへのアクセス権限を付与するために、ElastiCache は一連のアクションをポリシーに定義します。例えば、ElastiCache クラスターリソースに対して、アクション `CreateCacheCluster`、`DeleteCacheCluster`、`DescribeCacheCluster` を定義します。1 つの API オペレーションの実行で、複数のアクションのアクセス権限が必要になる場合があります。

最も基本的なポリシーの要素を次に示します。
+ **リソース**– ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。詳細については、「[Amazon ElastiCache のリソースとオペレーション](#IAM.Overview.ResourcesAndOperations)」を参照してください。
+ **アクション** – アクションキーワードを使用して、許可または拒否するリソース操作を特定します。たとえば、指定した `Effect` に応じて、`elasticache:CreateCacheCluster` アクセス許可では、Amazon ElastiCache `CreateCacheCluster` オペレーションの実行をユーザーに許可または拒否します。
+ **効果** – ユーザーが特定のアクションを要求する際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に付与 (許可) していない場合、アクセスは暗黙的に拒否されます。リソースへのアクセスを明示的に拒否することもできます。例えば、別のポリシーでリソースへのアクセスが許可されているユーザーに対して、そのリソースへのアクセスを禁止できます。
+ **プリンシパル** - ID ベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、アクセス許可 (リソースベースのポリシーにのみ適用) を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。

IAM ポリシー構文の詳細と説明については、*IAM ユーザーガイド*の「[AWS IAM ポリシーリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)」を参照してください。

すべての Amazon ElastiCache API アクションを示す表については、「[ElastiCache API のアクセス許可: アクション、リソース、条件リファレンス](IAM.APIReference.md)」を参照してください。

### ポリシーでの条件の指定
<a name="IAM.Overview.Conditions"></a>

許可を付与するとき、IAM ポリシー言語を使用して、ポリシーが有効になる必要がある条件を指定できます。例えば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。ポリシー言語での条件の指定の詳細については、「*IAM ユーザーガイド*」の「[条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition)」を参照してください。

条件を表すには、あらかじめ定義された条件キーを使用します。ElastiCache 固有の条件キーを使用するには、「[条件キーの使用](IAM.ConditionKeys.md)」を参照してください。必要に応じて使用できるAWS広範な条件キーがあります。AWS全体のキーの完全なリストについては、*IAM ユーザーガイド*の[「条件に使用可能なキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)」を参照してください。



# AWS Amazon ElastiCache の マネージドポリシー
<a name="IAM.IdentityBasedPolicies.PredefinedPolicies"></a>





AWS管理ポリシーは、 によって作成および管理されるスタンドアロンポリシーですAWS。AWS管理ポリシーは、ユーザー、グループ、ロールにアクセス許可の割り当てを開始できるように、多くの一般的なユースケースにアクセス許可を提供するように設計されています。

AWS管理ポリシーは、すべてのAWSお客様が使用できるため、特定のユースケースに対して最小特権のアクセス許可を付与しない場合があることに注意してください。ユースケースに固有の[カスタマー管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)を定義して、アクセス許可を絞り込むことをお勧めします。

AWS管理ポリシーで定義されているアクセス許可は変更できません。がAWSマネージドポリシーで定義されたアクセス許可AWSを更新すると、ポリシーがアタッチされているすべてのプリンシパル ID (ユーザー、グループ、ロール) に影響します。AWSは、新しい が起動されるか、新しい API オペレーションAWS のサービスが既存のサービスで使用できるようになったときに、AWSマネージドポリシーを更新する可能性が高くなります。

詳細については、「**IAM ユーザーガイド」の「[AWSマネージドポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」を参照してください。













## AWSマネージドポリシー: ElastiCacheServiceRolePolicy
<a name="security-iam-awsmanpol-ElastiCacheServiceRolePolicy"></a>

IAM エンティティに ElastiCacheServiceRolePolicy をアタッチすることはできません。このポリシーは、ユーザーに代わって ElastiCache がアクションを実行することを許可する、サービスリンクロールにアタッチされます。

このポリシーにより、ElastiCache はキャッシュを管理するために必要なAWSリソースをユーザーに代わって管理できます。
+ `ec2` — VPC エンドポイント (サーバーレスキャッシュ用)、Elastic Network Interface (ENI) (ノードベースのクラスター用)、セキュリティグループなど、キャッシュノードに接続する EC2 ネットワークリソースを管理します。
+ `cloudwatch` — サービスから CloudWatch にメトリクスデータを送信します。
+ `outposts` –AWS Outposts でのキャッシュノードの作成を許可します。

[ElastiCacheServiceRolePolicy](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/ElastiCacheServiceRolePolicy) ポリシーは IAM コンソールにあり、[ElastiCacheServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ElastiCacheServiceRolePolicy.html) は「*AWSマネージドポリシーリファレンスガイド*」にあります。

## AWSマネージドポリシー: AmazonElastiCacheFullAccess
<a name="security-iam-awsmanpol-AmazonElastiCacheFullAccess"></a>

`AmazonElastiCacheFullAccess` ポリシーを IAM アイデンティティにアタッチできます。

このポリシーは、プリンシパルにAWSマネジメントコンソールを使用した ElastiCache へのフルアクセスを許可します。
+ `elasticache` — すべての API にアクセスします。
+ `iam` — サービスの運用に必要なサービスリンクロールを作成します。
+ `ec2` — キャッシュ作成に必要な依存型 EC2 リソース (VPC、サブネット、セキュリティグループ) を記述し、VPC エンドポイント (サーバーレスキャッシュ用) の作成を許可します。
+ `kms` — カスタマー管理の CMK を保管時の暗号化に使用できるようにします。
+ `cloudwatch` — コンソールに ElastiCache メトリクスを表示するためのメトリクスへのアクセスを許可します。
+ `application-autoscaling` — キャッシュの自動スケーリングポリシーを記述するためのアクセスを許可します。
+ `logs` — コンソールのログ配信機能のログストリームを入力するために使用されます。
+ `firehose` — コンソールのログ配信機能の配信ストリームを入力するために使用されます。
+ `s3` — コンソールのスナップショット復元機能用の S3 バケットを入力するために使用されます。
+ `outposts` — コンソールでキャッシュ作成のためにAWS Outposts に入力するために使用されます。
+ `sns` — コンソールの通知機能用の SNS トピックの入力に使用されます。

[AmazonElastiCacheFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonElastiCacheFullAccess) ポリシーは IAM コンソールに、[AmazonElastiCacheFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonElastiCacheFullAccess.html) は「*AWSマネージドポリシーリファレンスガイド*」に記載されています。

## AWSマネージドポリシー: AmazonElastiCacheReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonElastiCacheReadOnlyAccess"></a>

`AmazonElastiCacheReadOnlyAccess` ポリシーを IAM アイデンティティにアタッチできます。

このポリシーは、AWSマネジメントコンソールを使用した ElastiCache への読み取り専用アクセスをプリンシパルに許可します。
+ `elasticache` — 読み取り専用 `Describe` API にアクセスできます。

[AmazonElastiCacheReadOnlyAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AmazonElastiCacheReadOnlyAccess) ポリシーは IAM コンソールに、[AmazonElastiCacheReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonElastiCacheReadOnlyAccess.html) は「*AWSマネージドポリシーリファレンスガイド*」に記載されています。

## AWS管理ポリシーに対する ElastiCache の更新
<a name="security-iam-awsmanpol-updates"></a>

このサービスがこれらの変更の追跡を開始してからの ElastiCache のAWSマネージドポリシーの更新に関する詳細を表示します。このページの変更に関する自動通知については、「ElastiCache ドキュメント履歴」ページの RSS フィードをサブスクライブしてください。




| 変更 | 説明 | 日付 | 
| --- | --- | --- | 
|  [AmazonElastiCacheFullAccess](#security-iam-awsmanpol-AmazonElastiCacheFullAccess) — 既存のポリシーの更新  |  ElastiCache は、アクション `elasticache:ModifyCacheCluster` に対して、MemCached の垂直スケーリングを可能にする新しいアクセス許可を追加しました。  | 2025 年 3 月 27 日 | 
|  [AmazonElastiCacheFullAccess](#security-iam-awsmanpol-AmazonElastiCacheFullAccess) — 既存のポリシーの更新  |  ElastiCache に、サーバーレスキャッシュを管理し、コンソールからすべてのサービス機能を使用できるようにする新しいアクセス許可が追加されました。  | 2023 年 11 月 27 日 | 
|  [ElastiCacheServiceRolePolicy](#security-iam-awsmanpol-ElastiCacheServiceRolePolicy) — 既存のポリシーの更新  |  ElastiCache に、サーバーレスキャッシュリソースの VPC エンドポイントを管理するための新しいアクセス許可が追加されました。  | 2023 年 11 月 27 日 | 
|  ElastiCache が変更の追跡を開始  |  ElastiCache はAWS、管理ポリシーの変更の追跡を開始しました。  | 2020 年 2 月 7 日 | 

# Amazon ElastiCache でのアイデンティティベースのポリシー (IAM ポリシー) の使用
<a name="IAM.IdentityBasedPolicies"></a>

このトピックでは、アカウント管理者が IAM ID (ユーザー、グループ、ロール) へのアクセス許可ポリシーをアタッチする、ID ベースのポリシーの例を示します。

**重要**  
最初に、Amazon ElastiCache リソースへのアクセスを管理するための基本的な概念とオプションについて説明するトピックを読むことをお勧めします。詳細については、「[ElastiCache リソースに対するアクセス許可の管理の概要](IAM.Overview.md)」を参照してください。

このセクションでは、次のトピックを対象としています。
+ [AWS Amazon ElastiCache の マネージドポリシー](IAM.IdentityBasedPolicies.PredefinedPolicies.md)
+ [カスタマーマネージドポリシーの例](#IAM.IdentityBasedPolicies.CustomerManagedPolicies)

以下に、Redis OSS を使用する場合のアクセス許可ポリシーの例を示します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowClusterPermissions",
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateServerlessCache",
                "elasticache:CreateCacheCluster",
                "elasticache:DescribeServerlessCaches",
                "elasticache:DescribeReplicationGroups",
                "elasticache:DescribeCacheClusters",
                "elasticache:ModifyServerlessCache",
                "elasticache:ModifyReplicationGroup",
                "elasticache:ModifyCacheCluster"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowUserToPassRole",
            "Effect": "Allow",
            "Action": [ "iam:PassRole" ],
            "Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster"
        }
    ]
}
```

------

以下に、Memcached を使用する場合のアクセス許可ポリシーの例を示します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "AllowClusterPermissions",
        "Effect": "Allow",
        "Action": [
            "elasticache:CreateServerlessCache",
            "elasticache:CreateCacheCluster",
            "elasticache:DescribeServerlessCaches",
            "elasticache:DescribeCacheClusters",
            "elasticache:ModifyServerlessCache",
            "elasticache:ModifyCacheCluster"
        ],
        "Resource": "*"
    },
    {
        "Sid": "AllowUserToPassRole",
        "Effect": "Allow",
        "Action": [ "iam:PassRole" ],
        "Resource": "arn:aws:iam::123456789012:role/EC2-roles-for-cluster"
    }
    ]
}
```

------

このポリシーには以下の 2 つのステートメントがあります。
+ 最初のステートメントは、Amazon ElastiCache アクション (`elasticache:Create*`、`elasticache:Describe*`、`elasticache:Modify*`) のアクセス許可を付与します。
+ 2 番目のステートメントは、`Resource` 値の最後に指定した IAM ロール名での IAM アクション`iam:PassRole`のアクセス許可を付与します。

ID ベースのポリシーでアクセス許可を得るプリンシパルを指定していないため、ポリシーでは `Principal` 要素を指定していません。ユーザーにポリシーをアタッチすると、そのユーザーが暗黙のプリンシパルになります。IAM ロールにアクセス権限ポリシーをアタッチすると、ロールの信頼ポリシーで識別されたプリンシパルがアクセス権限を得ることになります。

すべての Amazon ElastiCache API アクションとそれらが適用されるリソースの表については、「[ElastiCache API のアクセス許可: アクション、リソース、条件リファレンス](IAM.APIReference.md)」を参照してください。

## カスタマーマネージドポリシーの例
<a name="IAM.IdentityBasedPolicies.CustomerManagedPolicies"></a>

デフォルトポリシーを使用せず、カスタムマネージドポリシーを使用することを選択した場合は、以下の 2 点のいずれかを確認してください。`iam:createServiceLinkedRole` を呼び出すためのアクセス許可があることが必要です (詳細については、「[例 4: ユーザーが IAM CreateServiceLinkedRole API を呼び出すことを許可する](#create-service-linked-role-policy)」を参照)。または、ElastiCache サービスにリンクされたロールを作成済みであることが必要です。

Amazon ElastiCache コンソールを使用するために必要な最小限のアクセス権限と組み合わせて、このセクションでのポリシーの例は、追加のアクセス権限を付与します。これらの例は、AWS SDKsと にも関連していますAWS CLI。

IAM ユーザーおよびグループのセットアップ手順については、*IAM ユーザーガイド*の「[最初の IAM ユーザーおよび管理者グループの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)」を参照してください。

**重要**  
IAM ポリシーは必ず、本稼働環境での使用前にテストしてください。ElastiCache のアクションによっては、シンプルに見えても、ElastiCache コンソールの使用時にそれらのアクションをサポートするために、他のアクションが必要になる場合があります。例えば、`elasticache:CreateCacheCluster` は、ElastiCache クラスターを作成するアクセス許可を付与します。ただし、このオペレーションを実行するために、ElastiCache コンソールでは `Describe` と `List` の多数のアクションが使用されて、リストが事前設定されます。

**Topics**
+ [例 1: ユーザーに ElastiCache リソースへの読み取り専用アクセスを許可する](#example-allow-list-current-elasticache-resources)
+ [例 2: ユーザーに一般的な ElastiCache システム管理者タスクの実行を許可する](#example-allow-specific-elasticache-actions)
+ [例 3: ユーザーにすべての ElastiCache API アクションへのアクセスを許可する](#allow-unrestricted-access)
+ [例 4: ユーザーが IAM CreateServiceLinkedRole API を呼び出すことを許可する](#create-service-linked-role-policy)
+ [例 5: ユーザーが IAM 認証を使用してサーバーレスキャッシュに接続することを許可する](#iam-connect-policy)

### 例 1: ユーザーに ElastiCache リソースへの読み取り専用アクセスを許可する
<a name="example-allow-list-current-elasticache-resources"></a>

以下のポリシーでは、リソースを一覧表示する ElastiCache アクションを実行するためのアクセス許可をユーザーに付与します。通常、このタイプのアクセス権限ポリシーは管理者グループにアタッチします。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[{
      "Sid": "ECReadOnly",
      "Effect":"Allow",
      "Action": [
          "elasticache:Describe*",
          "elasticache:List*"],
      "Resource":"*"
      }
   ]
}
```

------

### 例 2: ユーザーに一般的な ElastiCache システム管理者タスクの実行を許可する
<a name="example-allow-specific-elasticache-actions"></a>

一般的なシステム管理者タスクには、リソースの変更が含まれます。システム管理者は ElastiCache イベントに関する情報を取得することが必要になる場合もあります。以下のポリシーでは、これらの一般的なシステム管理タスクに必要な ElastiCache アクションを実行するためのアクセス権限をユーザーに付与します。通常、このタイプのアクセス権限ポリシーはシステム管理者グループにアタッチします。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[{
      "Sid": "ECAllowMutations",
      "Effect":"Allow",
      "Action":[
          "elasticache:Modify*",
          "elasticache:Describe*",
          "elasticache:ResetCacheParameterGroup"
      ],
      "Resource":"*"
      }
   ]
}
```

------

### 例 3: ユーザーにすべての ElastiCache API アクションへのアクセスを許可する
<a name="allow-unrestricted-access"></a>

以下のポリシーでは、ユーザーにすべての ElastiCache アクションへのアクセスを許可します。このタイプのアクセス権限ポリシーは管理者ユーザーにのみ付与することをお勧めします。

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

****  

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

------

### 例 4: ユーザーが IAM CreateServiceLinkedRole API を呼び出すことを許可する
<a name="create-service-linked-role-policy"></a>

次のポリシーでは、ユーザーが IAM `CreateServiceLinkedRole` API を呼び出すことを許可します。mutative ElastiCache オペレーションを実行するユーザーには、このタイプのアクセス許可ポリシーを与えることをお勧めします。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Sid":"CreateSLRAllows",
      "Effect":"Allow",
      "Action":[
        "iam:CreateServiceLinkedRole"
      ],
      "Resource":"*",
      "Condition":{
        "StringLike":{
        "iam:AWSServiceName":"elasticache.amazonaws.com"
        }
      }
    }
  ]
}
```

------

### 例 5: ユーザーが IAM 認証を使用してサーバーレスキャッシュに接続することを許可する
<a name="iam-connect-policy"></a>

次のポリシーでは、どのユーザーにも、IAM 認証を使用して 2023 年 4 月 1 日 から 2023 年 6 月 30 日 までのサーバーレスキャッシュに接続することを許可します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" :
  [
    {
      "Effect" : "Allow",
      "Action" : ["elasticache:Connect"],
      "Resource" : [
        "arn:aws:elasticache:us-east-1:123456789012:serverlesscache:*"
      ],
      "Condition": {
        "DateGreaterThan": {"aws:CurrentTime": "2023-04-01T00:00:00Z"},
        "DateLessThan": {"aws:CurrentTime": "2023-06-30T23:59:59Z"}
      }
    },
    {
      "Effect" : "Allow",
      "Action" : ["elasticache:Connect"],
      "Resource" : [
        "arn:aws:elasticache:us-east-1:123456789012:user:*"
      ]
    }
  ]
}
```

------

# リソースレベルのアクセス許可
<a name="IAM.ResourceLevelPermissions"></a>

IAM ポリシーでリソースを指定することで、アクセス許可の範囲を制限できます。ElastiCache API アクションの多くは、アクションの動作に応じて異なるリソースタイプをサポートしています。各 IAM ポリシーステートメントによって、リソースで実行されるアクションに対するアクセス許可が付与されます。アクションが名前の付いたリソースで動作しない場合、またはすべてのリソースに対してアクションを実行するアクセス許可を付与した場合、ポリシー内のリソースの値はワイルドカード (\$1) になります。多くの API アクションでは、リソースの Amazon リソースネーム (ARN)、または複数のリソースに一致する ARN パターンを指定することによって、ユーザーが変更できるリソースを制限できます。リソース別にアクセス許可を制限するには、ARN 別にリソースを指定します。

ElastiCache リソースのタイプとその ARN のリストを確認するには、「**サービス認可リファレンス」の「[Amazon ElastiCache で定義されるリソース](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-resources-for-iam-policies)」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、[「Amazon ElastiCache で定義されるアクション」](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-actions-as-permissions) を参照してください。

**Topics**
+ [例 1: 特定の ElastiCache リソースタイプへのフルアクセスをユーザーに許可する](#example-allow-list-current-elasticache-resources-resource)
+ [例 2: サーバーレスキャッシュへのユーザーアクセスを拒否する。](#example-allow-specific-elasticache-actions-resource)

## 例 1: 特定の ElastiCache リソースタイプへのフルアクセスをユーザーに許可する
<a name="example-allow-list-current-elasticache-resources-resource"></a>

次のポリシーでは、すべてのリソースタイプのサーバーレスキャッシュを明示的に許可します。

```
{
        "Sid": "Example1",
        "Effect": "Allow",
        "Action": "elasticache:*",
        "Resource": [
             "arn:aws:elasticache:us-east-1:account-id:serverlesscache:*"
        ]
}
```

## 例 2: サーバーレスキャッシュへのユーザーアクセスを拒否する。
<a name="example-allow-specific-elasticache-actions-resource"></a>

次の例では、特定のサーバーレスキャッシュへのアクセスを明示的に拒否します。

```
{
        "Sid": "Example2",
        "Effect": "Deny",
        "Action": "elasticache:*",
        "Resource": [
            "arn:aws:elasticache:us-east-1:account-id:serverlesscache:name"
        ]
}
```

# 条件キーの使用
<a name="IAM.ConditionKeys"></a>

IAM ポリシーを有効にする方法を決める条件を指定できます。ElastiCache では、JSON ポリシーの `Condition` 要素を使用して、リクエストコンテキストのキーを、ポリシーで指定したキー値と比較できます。ポリシー要素の詳細については、[IAM JSON policy elements: Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) を参照してください。

ElastiCache の条件キーのリストを確認するには、「*サービス認可リファレンス*」の「[Amazon ElastiCache の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-policy-keys)」を参照してください。

グローバル条件キーのリストについては、「[AWSグローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

**AWSグローバル条件キーでの ElastiCache の使用 **

ElastiCache の[プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-services)を必要とする [AWSグローバル条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)を使用する場合は、`elasticache.amazonaws.com` と `ec.amazonaws.com` の*両方*のプリンシパルで `OR` 条件を使用します。

**注記**  
ElastiCache の両方のプリンシパルを追加しないと、ポリシーに一覧表示されているいずれのリソースに対しても、意図した「許可」または「拒否」のアクションが正しく適用されません。

 `aws:CalledVia` グローバル条件キーを使用したポリシーの例:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ec2:*", 
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "aws:CalledVia": [
            "ec.amazonaws.com",
            "elasticache.amazonaws.com"
          ]
        }
      }
    }
  ]
}
```

------

## 条件の指定: 条件キーの使用
<a name="IAM.SpecifyingConditions"></a>

きめ細かなコントロールを実装するには、特定のリクエストに対して個別のパラメータセットを制御するための条件を指定した IAM アクセス許可ポリシーを作成します。次に、IAM コンソールを使用して作成する IAM ユーザー、グループ、またはロールにそのポリシーを適用します。

条件を適用するには、条件情報を IAM ポリシーステートメントに追加します。次の例では、作成されたノードベースのクラスターがノードタイプ `cache.r5.large` になるという条件を指定します。

**注記**  
`String` 型の条件キーを使用して `Condition` 要素を構築するには、大文字と小文字を区別しない条件演算子 `StringEqualsIgnoreCase` または `StringNotEqualsIgnoreCase` を使用して、キーと文字列値を比較します。
ElastiCache は、大文字と小文字を区別しない方法で `CacheNodeType` および `CacheParameterGroupName` の入力引数を処理します。このため、文字列条件演算子 `StringEqualsIgnoreCase`および `StringNotEqualsIgnoreCase` は、それらを参照するアクセス許可ポリシーで使用する必要があります。

以下に、Valkey または Redis OSS を使用する場合のこのアクセス許可ポリシーの例を示します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateCacheCluster",
                "elasticache:CreateReplicationGroup"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:parametergroup:*",
                "arn:aws:elasticache:*:*:subnetgroup:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateCacheCluster",
                "elasticache:CreateReplicationGroup"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:cluster:*",
                "arn:aws:elasticache:*:*:replicationgroup:*"
            ],
            "Condition": {
                "StringEquals": {
                    "elasticache:CacheNodeType": [
                        "cache.r5.large"
                    ]
                }
            }
        }
    ]
}
```

------

以下に、Memcached を使用する場合のこのアクセス許可ポリシーの例を示します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateCacheCluster"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:parametergroup:*",
                "arn:aws:elasticache:*:*:subnetgroup:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:CreateCacheCluster"
            ],
            "Resource": [
                "arn:aws:elasticache:*:*:cluster:*"
            ],
            "Condition": {
                "StringEquals": {
                    "elasticache:CacheNodeType": [
                        "cache.r5.large"
                    ]
                }
            }
        }
    ]
}
```

------

詳細については、「[ElastiCache リソースのタグ付け](Tagging-Resources.md)」を参照してください。

ポリシー条件演算子の使用に関する詳細については、「[ElastiCache API のアクセス許可: アクション、リソース、条件リファレンス](IAM.APIReference.md)」を参照してください。

## ポリシー例: きめ細かなパラーメータコントロールのための IAM ポリシー条件の使用
<a name="IAM.ExamplePolicies"></a>

このセクションでは、前述の ElastiCache パラメータに対してきめ細かなアクセスコントロールを実装するためのポリシー例について説明します。

1. **elasticache:MaximumDataStorage**: サーバーレスキャッシュの最大データストレージを指定します。指定された条件を使用して、特定の量を超えるデータを保存できるキャッシュを作成することはできません。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowDependentResources",
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:serverlesscachesnapshot:*",
                   "arn:aws:elasticache:*:*:snapshot:*",
                   "arn:aws:elasticache:*:*:usergroup:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:serverlesscache:*"
               ],
               "Condition": {
                   "NumericLessThanEquals": {
                       "elasticache:MaximumDataStorage": "30"
                   },
                   "StringEquals": {
                       "elasticache:DataStorageUnit": "GB"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:MaximumECPUPerSecond**: サーバーレスキャッシュの 1 秒あたりの最大 ECPU 値を指定します。指定された条件では、1 秒あたりに特定の数を超える ECPU を実行できるキャッシュを作成することはできません。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowDependentResources",
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:serverlesscachesnapshot:*",
                   "arn:aws:elasticache:*:*:snapshot:*",
                   "arn:aws:elasticache:*:*:usergroup:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:serverlesscache:*"
               ],
               "Condition": {
                   "NumericLessThanEquals": {
                       "elasticache:MaximumECPUPerSecond": "100000"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:CacheNodeType**: ユーザーが作成できる NodeType を指定します。指定された条件を使用して、ノードタイプの単一値または範囲値を指定できます。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:CacheNodeType": [
                           "cache.t2.micro",
                           "cache.t2.medium"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:CacheNodeType**: Memcached で、ユーザーが作成できる NodeType を指定します。指定された条件を使用して、ノードタイプの単一値または範囲値を指定できます。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:CacheNodeType": [
                           "cache.t2.micro",
                           "cache.t2.medium"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:NumNodeGroups**: 20 未満のノードグループを持つレプリケーショングループを作成します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
               	"elasticache:CreateReplicationGroup"
               ],
               "Resource": [
               	"arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "NumericLessThanEquals": {
                       "elasticache:NumNodeGroups": "20"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:ReplicasPerNodeGroup**: ノードごとのレプリカを 5～10 の間で指定します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "NumericGreaterThanEquals": {
                       "elasticache:ReplicasPerNodeGroup": "5"
                   },
                   "NumericLessThanEquals": {
                       "elasticache:ReplicasPerNodeGroup": "10"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:EngineVersion**: バージョン 5.0.6 の使用量を指定します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
        {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
              "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:EngineVersion": "5.0.6"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:EngineVersion**: Memcached エンジンバージョン 1.6.6 の使用量を指定します

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
        {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:EngineVersion": "1.6.6"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:EngineType**: Valkey または Redis OSS エンジンのみを使用するよう指定します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:EngineType": "redis"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:AtRestEncryptionEnabled**: レプリケーショングループが暗号化を有効にしてのみ作成されるように指定します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:AtRestEncryptionEnabled": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:TransitEncryptionEnabled**

   1. [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html) アクションの `elasticache:TransitEncryptionEnabled` 条件キーを `false` に設定して、TLS を使用していない場合にのみレプリケーショングループを作成できるように指定します。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:CreateReplicationGroup"
                  ],
                  "Resource": [
                      "arn:aws:elasticache:*:*:parametergroup:*",
                      "arn:aws:elasticache:*:*:subnetgroup:*"
                  ]
              },
      
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:CreateReplicationGroup"
                  ],
                  "Resource": [
                      "arn:aws:elasticache:*:*:replicationgroup:*"
                  ],
                  "Condition": {
                      "Bool": {
                          "elasticache:TransitEncryptionEnabled": "false"
                      }
                  }
              }
          ]
      }
      ```

------

      [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html) アクションのポリシーで `elasticache:TransitEncryptionEnabled` 条件キーが `false` に設定されている場合、TLS が使用されていない (つまり、リクエストで `TransitEncryptionEnabled` パラメータが `true` に設定されていない、または `TransitEncryptionMode` パラメータが `required` に設定されている) 場合のみ `CreateReplicationGroup` リクエストが許可されます。

   1. [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html) アクションの `elasticache:TransitEncryptionEnabled` 条件キーを `true` に設定して、TLS が使用されている場合にのみレプリケーショングループを作成できるように指定します。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:CreateReplicationGroup"
                  ],
                  "Resource": [
                      "arn:aws:elasticache:*:*:parametergroup:*",
                      "arn:aws:elasticache:*:*:subnetgroup:*"
                  ]
              },
      
              {
                  "Effect": "Allow",
                  "Action": [
                      "elasticache:CreateReplicationGroup"
                  ],
                  "Resource": [
                      "arn:aws:elasticache:*:*:replicationgroup:*"
                  ],
                  "Condition": {
                      "Bool": {
                          "elasticache:TransitEncryptionEnabled": "true"
                      }
                  }
              }
          ]
      }
      ```

------

      [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html) アクションのポリシーで `elasticache:TransitEncryptionEnabled` 条件キーが `true` に設定されている場合、リクエストで `TransitEncryptionEnabled` パラメータが `true` に設定されていて、`TransitEncryptionMode` パラメータが `required` に設定されている場合のみ `CreateReplicationGroup` リクエストが許可されます。

   1. `ModifyReplicationGroup` アクションで、TLS が使用されている場合にのみレプリケーショングループを変更できるように指定するには、`elasticache:TransitEncryptionEnabled` を `true` に設定します。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [               
                      "elasticache:ModifyReplicationGroup"
                  ],
                  "Resource": [               
                      "arn:aws:elasticache:*:*:replicationgroup:*"
                  ],
                  "Condition": {
                      "BoolIfExists": {
                          "elasticache:TransitEncryptionEnabled": "true"
                      }
                  }
              }
          ]
      }
      ```

------

      [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroup.html) アクションのポリシーで `elasticache:TransitEncryptionEnabled` 条件キーが `true` に設定されている場合、リクエストで `TransitEncryptionMode` パラメータが `required` に設定されている場合のみ `ModifyReplicationGroup` リクエストが許可されます。`true` に設定した `TransitEncryptionEnabled` パラメータもオプションで含めることができますが、これは TLS を有効にするには必要ありません。

1. **elasticache:AutomaticFailoverEnabled**: レプリケーショングループが自動フェイルオーバーを有効にしてのみ作成されるように指定します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:AutomaticFailoverEnabled": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:MultiAZEnabled**: レプリケーショングループがマルチ AZ を無効にしては作成できないように指定します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
           {
               "Effect": "Deny",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:MultiAZEnabled": "false"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:ClusterModeEnabled**: レプリケーショングループがクラスターモードを有効にしてのみ作成できるように指定します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:ClusterModeEnabled": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:AuthTokenEnabled**: レプリケーショングループが AUTH トークンを有効にしてのみ作成できるように指定します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "Bool": {
                       "elasticache:AuthTokenEnabled": "true"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:SnapshotRetentionLimit**: スナップショットを保持する日数 (または最小/最大) を指定します。以下のポリシーは、少なくとも 30 日間バックアップを保存することを強制します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup",
                   "elasticache:CreateServerlessCache"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*",
                   "arn:aws:elasticache:*:*:serverlesscache:*"
               ],
               "Condition": {
                   "NumericGreaterThanEquals": {
                       "elasticache:SnapshotRetentionLimit": "30"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:KmsKeyId**: カスタマーマネージド KMS AWSキーの使用を指定します。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
           "Sid": "AllowDependentResources",
           "Effect": "Allow",
           "Action": [
               "elasticache:CreateServerlessCache"
           ],
           "Resource": [
               "arn:aws:elasticache:*:*:serverlesscachesnapshot:*",
               "arn:aws:elasticache:*:*:snapshot:*",
               "arn:aws:elasticache:*:*:usergroup:*"
           ]
       },
       {
           "Effect": "Allow",
           "Action": [
               "elasticache:CreateServerlessCache"
           ],
           "Resource": [
               "arn:aws:elasticache:*:*:serverlesscache:*"
           ],
           "Condition": {
               "StringEquals": {
                   "elasticache:KmsKeyId": "my-key"
               }
           }
       }
     ]
   }
   ```

------

1. **elasticache:CacheParameterGroupName**: クラスター上の組織の特定のパラメータを使用して、デフォルト以外のパラメータグループを指定します。パラメータグループの命名パターンを指定したり、特定のパラメータグループ名に対するブロック削除を指定することもできます。以下は、「my-org-param-group」のみの使用量を制限する例です。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:CreateReplicationGroup"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:CacheParameterGroupName": "my-org-param-group"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:CacheParameterGroupName**: Memcached で、クラスター上の組織の特定のパラメータを使用して、デフォルト以外のパラメータグループを指定します。パラメータグループの命名パターンを指定したり、特定のパラメータグループ名に対するブロック削除を指定することもできます。以下は、「my-org-param-group」のみの使用量を制限する例です。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
   
            {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*"
               ]
           },
   
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "StringEquals": {
                       "elasticache:CacheParameterGroupName": "my-org-param-group"
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:CreateCacheCluster**: リクエストタグ `Project` が欠落しているか、`Dev`、`QA`、または `Prod` と等しくない場合、`CreateCacheCluster` アクションが拒否されます。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
             {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:parametergroup:*",
                   "arn:aws:elasticache:*:*:subnetgroup:*",
                   "arn:aws:elasticache:*:*:securitygroup:*",
                   "arn:aws:elasticache:*:*:replicationgroup:*"
               ]
           },
           {
               "Effect": "Deny",
               "Action": [
                   "elasticache:CreateCacheCluster"
               ],
               "Resource": [
                   "arn:aws:elasticache:*:*:cluster:*"
               ],
               "Condition": {
                   "Null": {
                       "aws:RequestTag/Project": "true"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "elasticache:CreateCacheCluster",
                   "elasticache:AddTagsToResource"
               ],
               "Resource": "arn:aws:elasticache:*:*:cluster:*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/Project": [
                           "Dev",
                           "Prod",
                           "QA"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. **elasticache:CacheNodeType**: `cacheNodeType` cache.r5.large または cache.r6g.4xlarge を使用した `CreateCacheCluster` およびタグ `Project=XYZ` を許可します。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
         "Effect": "Allow",
         "Action": [
           "elasticache:CreateCacheCluster",
           "elasticache:CreateReplicationGroup"
         ],
         "Resource": [
           "arn:aws:elasticache:*:*:parametergroup:*",
           "arn:aws:elasticache:*:*:subnetgroup:*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "elasticache:CreateCacheCluster"
         ],
         "Resource": [
           "arn:aws:elasticache:*:*:cluster:*"
         ],
         "Condition": {
           "StringEqualsIfExists": {
             "elasticache:CacheNodeType": [
               "cache.r5.large",
               "cache.r6g.4xlarge"
             ]
           },
           "StringEquals": {
             "aws:RequestTag/Project": "XYZ"
           }
         }
       }
     ]
   }
   ```

------

1. **elasticache:CacheNodeType**: `cacheNodeType` cache.r5.large または cache.r6g.4xlarge を使用した `CreateCacheCluster` およびタグ `Project=XYZ` を許可します。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
         "Effect": "Allow",
         "Action": [
           "elasticache:CreateCacheCluster"
         ],
         "Resource": [
           "arn:aws:elasticache:*:*:parametergroup:*",
           "arn:aws:elasticache:*:*:subnetgroup:*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "elasticache:CreateCacheCluster"
         ],
         "Resource": [
           "arn:aws:elasticache:*:*:cluster:*"
         ],
         "Condition": {
           "StringEqualsIfExists": {
             "elasticache:CacheNodeType": [
               "cache.r5.large",
               "cache.r6g.4xlarge"
             ]
           },
           "StringEquals": {
             "aws:RequestTag/Project": "XYZ"
           }
         }
       }
     ]
   }
   ```

------

**注記**  
タグやその他の条件キーを一緒に強制するポリシーを作成する際は、条件付き `IfExists` は、`--tags` パラメータを用いた作成リクエストの追加の `elasticache:AddTagsToResource` ポリシー要件が原因で、条件キー要素で必要となる場合があります。

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

Amazon ElastiCache は、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)を使用しています。サービスにリンクされたロールは、Amazon ElastiCache などの AWS サービスに直接リンクされた一意のタイプの IAM ロールです。Amazon ElastiCache サービスにリンクされたロールは、Amazon ElastiCache によって事前定義されています。それらには、サービスがユーザーのクラスターに代わって AWS のサービスを呼び出すために必要なすべてのアクセス許可が含まれます。

サービスにリンクされたロールを使用することで、必要なアクセス権限を手動で追加する必要がなくなるため、Amazon ElastiCache の設定が簡単になります。ロールは AWS アカウント内にありますが、Amazon ElastiCache のユースケースにリンクされており、アクセス権限が事前に定義されています。これらのロールを引き受けることができるのは Amazon ElastiCache のみで、事前定義されたアクセス許可ポリシーを使用することができるのはこれらのロールのみです。ロールを削除するには、まず関連リソースを削除します。これにより、リソースにアクセスするのに必要なアクセス許可を誤って削除することがなくなり、Amazon ElastiCache リソースは保護されます。

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

**Contents**
+ [サービスリンクロールのアクセス許可](#service-linked-role-permissions)
  + [サービスリンクロールを作成するためのアクセス許可](#service-linked-role-permissions)
+ [サービスにリンクされたロールの作成 (IAM)](#create-service-linked-role-iam)
  + [IAM コンソールの使用](#create-service-linked-role-iam-console)
  + [IAM CLI の使用](#create-service-linked-role-iam-cli)
  + [IAM API の使用](#create-service-linked-role-iam-api)
+ [サービスにリンクされたロールの説明の編集](#edit-service-linked-role)
  + [IAM コンソールの使用](#edit-service-linked-role-iam-console)
  + [IAM CLI の使用](#edit-service-linked-role-iam-cli)
  + [IAM API の使用](#edit-service-linked-role-iam-api)
+ [Amazon ElastiCache でのサービスにリンクされたロールの削除](#delete-service-linked-role)
  + [サービスにリンクされたロールのクリーンアップ](#service-linked-role-review-before-delete)
  + [サービスにリンクされたロールの削除 (IAM コンソール)](#delete-service-linked-role-iam-console)
  + [サービスにリンクされたロールの削除 (IAM CLI)](#delete-service-linked-role-iam-cli)
  + [サービスにリンクされたロールの削除 (IAM API)](#delete-service-linked-role-iam-api)

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

### サービスリンクロールを作成するためのアクセス許可
<a name="service-linked-role-permissions"></a>

**IAM エンティティが AWS ServiceRoleForElastiCache サービスリンクロールを作成することを許可するには**

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

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole",
        "iam:PutRolePolicy"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/elasticache.amazonaws.com/AWSServiceRoleForElastiCache*",
    "Condition": {"StringLike": {"iam:AWSServiceName": "elasticache.amazonaws.com"}}
}
```

**IAM エンティティが AWS ServiceRoleForElastiCache サービスリンクロールを削除することを許可するには**

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

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/elasticache.amazonaws.com/AWSServiceRoleForElastiCache*",
    "Condition": {"StringLike": {"iam:AWSServiceName": "elasticache.amazonaws.com"}}
}
```

または AWS 管理ポリシーを使用して、Amazon ElastiCache へのフルアクセスを許可することもできます。

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

IAM コンソール、CLI または API を使用して、サービスにリンクされたロールを作成できます。

### サービスにリンクされたロールの作成 (IAM コンソール)
<a name="create-service-linked-role-iam-console"></a>

IAM コンソールを使用して、サービスにリンクされたロールを作成できます。

**サービスにリンクされたロールを作成するには (コンソール)**

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

1. IAM コンソールのナビゲーションペインで **[ロール]** を選択します。次に、**新しいロールの作成**を選択します。

1. [**Select type of trusted entity**] (信頼されたエンティティの種類を選択) の下で、[**AWS Service**] (サービス) を選択します。

1. [**Or select a service to view its use cases**] (またはサービスを選択してそのユースケースを表示) で、[**ElastiCache**] を選択します。

1. **[次のステップ: アクセス許可]** を選択します。

1. **ポリシー名** の下で、`ElastiCacheServiceRolePolicy` はこのロールに必要であることに注意してください。**次: タグ** を選択します。

1. タグは、サービスにリンクされたロールではサポートされないことに注意してください。**次: レビュー** を選択します。

1. 「オプショナル」**ロールの説明** で、サービスにリンクされた新しいロールの説明を編集します。

1. ロール情報を確認し、**ロールの作成** を選択します。

### サービスにリンクされたロールの作成 (IAM CLI)
<a name="create-service-linked-role-iam-cli"></a>

AWS Command Line Interface から IAM オペレーションを使用して、サービスにリンクされたロールを作成できます。このロールには、ロールを引き受けるためにサービスで必要な信頼ポリシーやインラインポリシーを含めることができます。

**サービスにリンクされたロールを作成するには (CLI)**

次のオペレーションを使用してください。

```
$ aws iam [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) --aws-service-name elasticache.amazonaws.com
```

### サービスにリンクされたロールの作成 (IAM API)
<a name="create-service-linked-role-iam-api"></a>

IAM API を使用して、サービスにリンクされたロールを作成できます。このロールには、ロールを引き受けるためにサービスで必要な信頼ポリシーやインラインポリシーを含めることができます。

**サービスにリンクされたロールを作成するには (API)**

[CreateServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceLinkedRole.html) API コールを使用します。リクエストで、サービス名`elasticache.amazonaws.com`を指定します。

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

Amazon ElastiCache では、AWSServiceRoleForElastiCache のサービスにリンクされたロールを編集することはできません。サービスリンクロールの作成後は、さまざまなエンティティがロールを参照する可能性があるため、ロール名を変更することはできません。ただし、IAM を使用してロールの説明を編集することはできます。

### サービスにリンクされたロールの説明の編集 (IAMコンソール)
<a name="edit-service-linked-role-iam-console"></a>

サービスにリンクされたロールの説明は、IAM コンソールを使用して編集できます。

**サービスにリンクされたロールの説明を編集するには (コンソール)**

1. IAM コンソールのナビゲーションペインで [**ロール**] を選択します。

1. 変更するロールの名前を選択します。

1. **ロールの説明**の右端にある**編集**を選択します。

1. ボックスに新しい説明を入力し、**保存**を選択します。

### サービスにリンクされたロールの説明の編集 (IAM CLI)
<a name="edit-service-linked-role-iam-cli"></a>

サービスにリンクされたロールの説明は、AWS Command Line Interface から IAM オペレーションを使用して編集できます。

**サービスにリンクされたロールの説明を変更するには (CLI)**

1. 「オプショナル」現在のロールの説明を表示するには、IAM オペレーション `[get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html)` の AWS CLI を使用します。  
**Example**  

   ```
   $ aws iam [get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html) --role-name AWSServiceRoleForElastiCache
   ```

   CLI オペレーションでは、ARN ではなくロール名を使用してロールを参照します。例えば、ロールの ARN が `arn:aws:iam::123456789012:role/myrole` である場合、そのロールを **myrole** と参照します。

1. サービスにリンクされたロールの説明を更新するには、IAM オペレーション `[update-role-description](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role-description.html)` の AWS CLI を使用します。

   Linux、macOS、Unix の場合:

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role-description.html) \
       --role-name AWSServiceRoleForElastiCache \
       --description "new description"
   ```

   Windows の場合:

   ```
   $ aws iam [update-role-description](https://docs.aws.amazon.com/cli/latest/reference/iam/update-role-description.html) ^
       --role-name AWSServiceRoleForElastiCache ^
       --description "new description"
   ```

### サービスにリンクされたロールの説明の編集 (IAM API)
<a name="edit-service-linked-role-iam-api"></a>

サービスにリンクされたロールの説明は、IAM API を使用して編集できます。

**サービスにリンクされたロールの説明を変更するには (API)**

1. 「オプショナル」現在のロールの説明を表示するには、IAM API オペレーション [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) を使用します。  
**Example**  

   ```
   https://iam.amazonaws.com/
      ?Action=[GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html)
      &RoleName=AWSServiceRoleForElastiCache
      &Version=2010-05-08
      &AUTHPARAMS
   ```

1. ロールの説明を更新するには、IAM API オペレーション [UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html) を使用します。  
**Example**  

   ```
   https://iam.amazonaws.com/
      ?Action=[UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)
      &RoleName=AWSServiceRoleForElastiCache
      &Version=2010-05-08
      &Description="New description"
   ```

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

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

Amazon ElastiCache はサービスにリンクされたロールを削除しません。

### サービスにリンクされたロールのクリーンアップ
<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 コンソールのナビゲーションペインで **[ロール]** を選択します。AWSServiceRoleForElastiCache ロールのチェックボックスではなく、ロールの名前を選択します。

1. 選択したロールの **概要** ページで、**アクセスアドバイザー** タブを選択します。

1. **アクセスアドバイザー** タブで、サービスにリンクされたロールの最新のアクティビティを確認します。

**AWSServiceRoleForElastiCache が必要な Amazon ElastiCache リソースを削除するには**
+ クラスターを削除するには、以下を参照してください。
  + [の使用AWS マネジメントコンソール](Clusters.Delete.md#Clusters.Delete.CON)
  + [を使用して ElastiCache クラスターAWS CLIを削除する](Clusters.Delete.md#Clusters.Delete.CLI)
  + [ElastiCache API の使用](Clusters.Delete.md#Clusters.Delete.API)
+ レプリケーショングループを削除するには、以下を参照してください。
  + [レプリケーショングループの削除 (コンソール)](Replication.DeletingRepGroup.md#Replication.DeletingRepGroup.CON)
  + [レプリケーショングループの削除 (AWS CLI)](Replication.DeletingRepGroup.md#Replication.DeletingRepGroup.CLI)
  + [レプリケーショングループの削除（ElastiCache API）](Replication.DeletingRepGroup.md#Replication.DeletingRepGroup.API)

### サービスにリンクされたロールの削除 (IAM コンソール)
<a name="delete-service-linked-role-iam-console"></a>

IAM コンソールを使用して、サービスにリンクされたロールを削除できます。

**サービスにリンクされたロールを削除するには (コンソール)**

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

1. IAM コンソールのナビゲーションペインで [**ロール**] を選択します。ロール名または行そのものではなく、削除するロール名の横にあるチェックボックスをオンにします。

1. ページ上部にある [**ロールのアクション**] で [**ロールの削除**] を選択します。

1. 確認ダイアログボックスで、サービスの最終アクセス時間データを確認します。これは、選択したそれぞれのロールの AWS サービスへの最終アクセス時間を示します。これは、そのロールが現在アクティブであるかどうかを確認するのに役立ちます。先に進む場合は、**Yes, Delete]** (はい、削除する) を選択し、削除するサービスにリンクされたロールを送信します。

1. IAM コンソール通知を見て、サービスにリンクされたロールの削除の進行状況をモニタリングします。IAM サービスにリンクされたロールの削除は非同期であるため、削除するロールを送信すると、削除タスクは成功または失敗する可能性があります。タスクが失敗した場合は、通知から **詳細を表示**または **リソースを表示**を選択して、削除が失敗した理由を知ることができます。

### サービスにリンクされたロールの削除 (IAM CLI)
<a name="delete-service-linked-role-iam-cli"></a>

AWS Command Line Interface から IAM オペレーションを使用して、サービスにリンクされたロールを削除できます。

**サービスにリンクされたロールを削除するには (CLI)**

1. 削除するサービスにリンクされたロールの名前が分からない場合、以下のコマンドを入力します。このコマンドでは、アカウントにあるロールとその Amazon リソースネーム (ARN) を一覧表示します。

   ```
   $ aws iam [get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html) --role-name role-name
   ```

   CLI オペレーションでは、ARN ではなくロール名を使用してロールを参照します。例えば、ロールに ARN `arn:aws:iam::123456789012:role/myrole` がある場合、そのロールを **myrole** と参照します。

1. サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされない場合、そのリクエストは拒否される可能性があります。レスポンスから `deletion-task-id` を取得して、削除タスクのステータスを確認する必要があります。サービスにリンクされたロールの削除リクエストを送信するには、以下を入力します。

   ```
   $ aws iam [delete-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-service-linked-role.html) --role-name role-name
   ```

1. 削除タスクのステータスを確認するには、以下を入力します。

   ```
   $ aws iam [get-service-linked-role-deletion-status](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-linked-role-deletion-status.html) --deletion-task-id deletion-task-id
   ```

   削除タスクのステータスは、 `NOT_STARTED`､`IN_PROGRESS`, `SUCCEEDED`､または `FAILED` となります｡ 削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。

### サービスにリンクされたロールの削除 (IAM API)
<a name="delete-service-linked-role-iam-api"></a>

IAM API を使用して、サービスにリンクされたロールを削除できます。

**サービスにリンクされたロールを削除するには (API)**

1. サービスにリンクされたロールの削除リクエストを送信するには、[DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) を呼び出します。リクエストで、ロール名を指定します。

   サービスにリンクされているロールは、使用されている、または関連するリソースがある場合は削除できないため、削除リクエストを送信する必要があります。これらの条件が満たされない場合、そのリクエストは拒否される可能性があります。レスポンスから `DeletionTaskId` を取得して、削除タスクのステータスを確認する必要があります。

1. 削除タスクのステータスを確認するには、[GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html) を呼び出します。リクエストで `DeletionTaskId` を指定します。

   削除タスクのステータスは、 `NOT_STARTED`､`IN_PROGRESS`, `SUCCEEDED`､または `FAILED` となります｡ 削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。

# ElastiCache API のアクセス許可: アクション、リソース、条件リファレンス
<a name="IAM.APIReference"></a>

[アクセスコントロール](IAM.md) を設定し、IAM ポリシーにアタッチするアクセス許可ポリシー (アイデンティティベースまたはリソースベース) を作成するときは、以下の表をリファレンスとして使用できます。この表には、各 Amazon ElastiCache API オペレーション、およびその実行のためのアクセス権限を付与できる対応するアクションを示しています。ポリシーの `Action` フィールドでアクションを指定し、ポリシーの `Resource` フィールドでリソースの値を指定します。特に明記されていない限り、リソースは必須です。一部のフィールドには、必須リソースとオプションリソースの両方が含まれます。リソース ARN がない場合、ポリシー内のリソースはワイルドカード (\$1) になります。

ElastiCache ポリシーで 全体の条件キーを使用して条件を表現できます。ElastiCache 固有の条件キーのリストと、それらが適用されるアクションとリソースタイプを確認するには、「[条件キーの使用](IAM.ConditionKeys.md)」を参照してください。AWS 全体を対象とするすべてのキーのリストについては、「**IAM ユーザーガイド」の「[AWS グローバルキー条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

**注記**  
アクションを指定するには、API オペレーション名 (`elasticache:DescribeCacheClusters` など) の前に `elasticache:` プレフィックスを使用します。

ElastiCache アクションのリストを確認するには、「**サービス認可リファレンス」の「[Amazon ElastiCache で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticache.html#amazonelasticache-actions-as-permissions)」を参照してください。