MemoryDB 用のサービスリンクロール - Amazon MemoryDB

MemoryDB 用のサービスリンクロール

MemoryDB は AWS Identity and Access Management (IAM) サービスリンクロールを使用します。サービスリンクロールは、MemoryDB などの AWS サービスに直接リンクされる一意なタイプの IAM ロールです。MemoryDB サービスリンクロールは、MemoryDB によって事前定義されています。それらには、サービスがユーザーのクラスターに代わって AWS のサービスを呼び出すために必要なすべてのアクセス許可が含まれます。

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

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

MemoryDB のサービスにリンクされたロールのアクセス権限

MemoryDB では、[AWSServiceRoleForMemoryDB] という名前のサービスリンクロールを使用しています - このポリシーでは、ユーザーのクラスターを管理するために、MemoryDB が必要に応じてユーザーの代わりに AWS リソースを管理できます。

AWSServiceRoleForMemoryDB サービスリンクロールのアクセス権限ポリシーでは、MemoryDB は、指定されたリソースで次のアクションを完了できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "AmazonMemoryDBManaged" ] } } }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:ResourceTag/AmazonMemoryDBManaged": "true" } } }, { "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "arn:aws:ec2:*:*:security-group/*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": "AWS/MemoryDB" } } } ] }

詳細については、「AWS マネージドポリシー:MemoryDBServiceRolePolicy」を参照してください。

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

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

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

IAM エンティティが AWSServiceRoleForMemoryDB サービスにリンクされたロールを削除するには

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

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

または、AWS マネージドポリシーを使用して、MemoryDB へのフルアクセスを付与することもできます。

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

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

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

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

サービスにリンクされたロールを作成するには (コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

  3. 信頼されたエンティティの種類を選択 の下で、AWS Service (サービス) を選択します。

  4. [またはサービスを選択してそのユースケースを表示する] で、[MemoryDB] を選択します。

  5. 次: 許可 を選択します。

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

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

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

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

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

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

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

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

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

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

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

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

CreateServiceLinkedRole API コールを使用します。リクエストで、サービス名memorydb.amazonaws.comを指定します。

MemoryDB のサービスにリンクされたロールの説明の編集

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

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

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

サービスにリンクされたロールの説明を編集するには (コンソール)
  1. IAM コンソールのナビゲーションペインで [ロール] をクリックします。

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

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

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

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

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

サービスにリンクされたロールの説明を変更するには (CLI)
  1. 「オプショナル」現在のロールの説明を表示するには、IAM オペレーション get-role の AWS CLI を使用します。

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

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

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

    Linux、macOS、Unix の場合:

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

    Windows の場合:

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

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

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

サービスにリンクされたロールの説明を変更するには (API)
  1. 「オプショナル」現在のロールの説明を表示するには、IAM API オペレーション GetRole を使用します。

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

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

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

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

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

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

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

サービスにリンクされたロールにアクティブなセッションがあるかどうかを、IAM コンソールで確認するには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

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

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

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

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

サービスにリンクされたロールを削除するには (コンソール)
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

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

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

サービスにリンクされたロールの削除 (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_PROGRESSSUCCEEDED、または FAILED となります。削除が失敗した場合は、失敗した理由がコールによって返され、トラブルシューティングが可能になります。

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

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

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

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

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

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