Redis 用 Amazon ElastiCache
Redis 用 ElastiCache ユーザーガイド (API バージョン 2015-02-02)

ElastiCache のサービスにリンクされたロールの使用

Amazon ElastiCache では、AWS Identity and Access Management (IAM) の「サービスにリンクされたロール」を使用します。サービスにリンクされたロールは、ElastiCache など AWS のサービスに直接リンクされた一意のタイプの IAM ロールです。ElastiCache サービスにリンクされたロールは、ElastiCache によって事前定義されており、お客様の cluster の代わりにサービスから AWS サービスを呼び出す必要のあるアクセス権限がすべて含まれています。

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

サービスにリンクされたロールをサポートする他のサービスについては、「IAM と連携する AWS サービス」を参照の上、「サービスにリンクされたロール」列が「はい」になっているサービスを検索してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。

ElastiCache のサービスにリンクされたロールのアクセス許可

ElastiCache では、サービスにリンクされたロール (AWSServiceRoleForElastiCache) – This policy allows ElastiCache to manage AWS resources on your behalf as necessary for managing your cache. を使用します。

AWSServiceRoleForElastiCache サービスにリンクされたロールのアクセス許可ポリシーは、ElastiCache が次のアクションを指定されたリソースで完了することを許可します。

Permission policy: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DescribeAvailabilityZones", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyNetworkInterfaceAttribute", "ec2:RevokeSecurityGroupIngress", ], "Resource": "*" } ] }

IAM エンティティが AWSServiceRoleForElastiCache サービスにリンクされたロールを作成することを許可するには

以下のポリシーステートメントを 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 エンティティが AWSServiceRoleForElastiCache サービスにリンクされたロールを削除することを許可するには

以下のポリシーステートメントを 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 管理ポリシーを使用して、ElastiCache への「フルアクセスを付与」することもできます。

サービスにリンクされたロールの作成 (IAM)

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

サービスにリンクされたロールの作成 (IAM コンソール)

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

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

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

  2. IAM コンソールのナビゲーションペインで、[Roles]、[Create new role] の順に選択します。

  3. [AWS service-linked role] セクションを展開し、この新しいサービスにリンクされたロールを受け入れることを許可するサービスを選択します。

  4. サービスにリンクされたロール [AWSServiceRoleForElastiCache] の横の、[Select] を選択します。

  5. [Role name] に、service-linked ロールのデフォルト名に追加するプレフィックスを入力します。このサフィックスは、このロールの目的を識別するのに役立ちます。ロール名は AWS アカウント内で一意でなければなりません。大文字と小文字は区別されません。たとえば、<service-linked-role-name>_SAMPLE<service-linked-role-name>_sample というロール名を両方作成することはできません。多くのエンティティによりロールが参照されるため、作成後にロール名を変更することはできません。

  6. (オプション) [Role description] で、サービスにリンクされた新しいロールの説明を編集します。

  7. ロール情報を確認し、[Create role] を選択します。

サービスにリンクされたロールの作成 (IAM CLI)

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

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

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

$ aws iam create-service-linked-role --aws-service-name elasticache.amazonaws.com

サービスにリンクされたロールの作成 (IAM API)

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

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

cfn-create-stack CreateServiceLinkedRole API コール。リクエストで、サービス名 (elasticache.amazonaws.com) を指定します。

ElastiCache のサービスにリンクされたロールの説明を編集する

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

サービスにリンクされたロールの説明の編集 (IAM コンソール)

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

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

  1. IAM コンソールの [Navigation] ペインで [Roles] を選択します。

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

  3. [Role description] の右端にある [Edit] を選択します。

  4. ボックスに新しい説明を入力し、[Save] を選択します。

サービスにリンクされたロールの説明の編集 (IAM CLI)

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

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

  1. (オプション) 現在のロールの説明を表示するには、IAM オペレーションの AWS CLI get-role を使用します。

    $ aws iam get-role --role-name AWSServiceRoleForElastiCache

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

  2. サービスにリンクされたロールの説明を更新するには、IAM オペレーションの AWS CLI update-role-description を使用します。

    Linux, macOS, or Unix 用:

    $ aws iam update-role-description \ --role-name AWSServiceRoleForElastiCache \ --description "new description"

    Windows の場合:

    $ aws iam update-role-description ^ --role-name AWSServiceRoleForElastiCache ^ --description "new description"

サービスにリンクされたロールの説明の編集 (IAM API)

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

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

  1. (オプション) 現在のロールの説明を表示するには、IAM API オペレーションを使用します。 GetRole.

    https://iam.amazonaws.com/ ?Action=GetRole &RoleName=AWSServiceRoleForElastiCache &Version=2010-05-08 &AUTHPARAMS
  2. ロールの説明を更新するには、IAM API オペレーションを使用します。 UpdateRoleDescription.

    https://iam.amazonaws.com/ ?Action=UpdateRoleDescription &RoleName=AWSServiceRoleForElastiCache &Version=2010-05-08 &Description="New description"

ElastiCache のサービスにリンクされたロールの削除

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

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

サービスにリンクされたロールのクリーンアップ

IAM を使用してサービスにリンクされたロールを削除するには、まずロールに関連付けられているリソース、クラスター、またはレプリケーショングループがないことを確認する必要があります。

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

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

  2. IAM コンソールの [Navigation] ペインで [Roles] を選択します。次に、AWSServiceRoleForElastiCache ロールの名前 (チェックボックスではありません) を選択します。

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

  4. [Access Advisor] タブで、サービスにリンクされたロールの最新のアクティビティを確認します。

AWSServiceRoleForElastiCache を必要とする ElastiCache リソースを削除するには (コンソール)

サービスにリンクされたロールの削除 (IAM コンソール)

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

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

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

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

  3. ページ上部の [Role actions] で、[Delete role] を選択します。

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

  5. IAM コンソール通知を見て、サービスにリンクされたロールの削除の進行状況を監視します。IAM サービスにリンクされたロールの削除は非同期であるため、削除するロールを送信すると、削除タスクは成功または失敗する可能性があります。タスクが失敗した場合は、通知から [View details] または [View Resources] を選択して、削除が失敗した理由を知ることができます。

サービスにリンクされたロールの削除 (IAM CLI)

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

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

  1. 削除するサービスにリンクされたロールの名前が分からない場合、以下のオペレーションを入力してお客様のアカウントにある Amazon リソースネーム (ARN) を表示します。

    $ aws iam get-role --role-name role-name

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

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

    $ aws iam delete-service-linked-role --role-name role-name
  3. 削除タスクのステータスを確認するには、以下を入力します。

    $ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

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

サービスにリンクされたロールの削除 (IAM API)

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

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

  1. サービスにリンクされたロールの削除リクエストを送信するには、以下を呼び出します。 DeleteServiceLinkedRole.リクエストで、ロール名を指定します。

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

  2. 削除タスクのステータスを確認するには、以下を呼び出します。 GetServiceLinkedRoleDeletionStatus.リクエストで DeletionTaskId を指定します。

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