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

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

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

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

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

サービスにリンクされたロールをサポートする他のサービスについては、IAM と連携するAWS のサービスを参照して、Service-Linked Role] (サービスにリンクされたロール)列で Yes] (はい) のあるサービスを探してください。そのサービスに関するサービスにリンクされたロールのドキュメントを表示するには、リンクが設定されている Yes] (はい) を選択します。

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:AWS ServiceName": "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:AWS ServiceName": "memorydb.amazonaws.com"}} }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

サービスにリンクされたロールを作成するには (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)

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

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

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

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

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

    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 し、https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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