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

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

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

RUM は、サービスにリンクされたロールのアクセス許可を定義します。特に定義されている場合を除き、RUM のみがそのロールを引き受けることができます。定義したアクセス許可には、信頼ポリシーと許可ポリシーが含まれます。この許可ポリシーを他の IAM エンティティにアタッチすることはできません。

ロールを削除するには、まずそのロールの関連リソースを削除します。この制限により、リソースにアクセスするアクセス許可の不注意による削除が防止され、RUM リソースは保護されます。

サービスリンクロールをサポートする他のサービスについては、「IAM と連動する AWS のサービス」を参照し、[Service-linked role (サービスリンクロール)] の列内で [Yes (はい)] と表記されたサービスを確認してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[Yes] (はい) リンクを選択します。

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

RUM では、サービスにリンクされたロールとして AWSServiceRoleForCloudWatchRUM を使用します – このロールは、X-Ray トレースを有効にするアプリケーションモニター用に、RUM がアカウントに AWS X-Ray トレースデータを送信できるようにします。

サービスにリンクされた AWSServiceRoleForCloudWatchRUM ロールは、X-Ray サービスを信頼してロールを引き受けます。X-Ray はトレースデータをアカウントに送信します。

サービスにリンクされた AWSServiceRoleForCloudWatchRUM ロールには、AmazonCloudWatchRUMServiceRolePolicy という IAM ポリシーがアタッチされています。このポリシーは、モニタリングデータを他の関連する AWS サービスに公開するアクセス許可を CloudWatch RUM に付与します。これには、RUM が次のアクションを完了できるようにするアクセス許可が含まれています。

  • xray:PutTraceSegments

  • cloudwatch:PutMetricData

AmazonCloudWatchRUMServiceRolePolicy の詳細な内容は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:PutTraceSegments" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*", "Condition": { "StringLike": { "cloudwatch:namespace": [ "RUM/CustomMetrics/*", "AWS/RUM" ] } } } ] }

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

サービスにリンクされた CloudWatch RUM のロールを手動で作成する必要はありません。X-Ray トレーシングを有効にしたアプリケーションモニターを初めて作成するとき、または X-Ray トレースを使用するようにアプリケーションモニターを更新するとき、RUM によって AWSServiceRoleForCloudWatchRUM が作成されます。

詳細については、「IAM ユーザーガイド」の「サービスにリンクされたロールの作成」を参照してください。

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

CloudWatch RUM では、AWSServiceRoleForCloudWatchRUM ロールを編集することはできません。これらのロールは多くのエンティティにより参照されるため、ロールを作成した後その名前を変更することはできません。ただし、IAM を使用したロールの説明の編集はできます。

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

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

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

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

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

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

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

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

サービスにリンクされたロールの説明を変更するには (AWS CLI)
  1. (オプション) ロールの現在の説明を表示するには、次のコマンドを使用します。

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

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

  2. サービスにリンクされたロールの説明を更新するには、次のコマンドを使用します。

    $ aws iam update-role-description --role-name role-name --description description

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

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

サービスにリンクされたロールの説明を変更するには (API)
  1. (オプション) ロールの現在の説明を表示するには、次のコマンドを使用します。

    GetRole

  2. ロールの説明を更新するには、次のコマンドを使用します。

    UpdateRoleDescription

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

X-Ray が有効になっているアプリケーションモニターが不要になった場合は、AWSServiceRoleForCloudWatchRUM ロールを削除することをお勧めします。

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

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

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

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

  2. ナビゲーションペインで Roles (ロール) を選択します。AWSServiceRoleForCloudWatchRUM ロールの名前 (チェックボックスではない) を選択します。

  3. 選択したロールの [概要] ページで [アクセスアドバイザー] を選択し、サービスにリンクされたロールの最新のアクティビティを確認します。

    注記

    RUM が AWSServiceRoleForCloudWatchRUM ロールを使用しているかどうか不明な場合は、ロールを削除してみてください。サービスでロールが使用されている場合、削除は失敗し、ロールが使用されている リージョンが表示されます。ロールが使用されている場合は、ロールを削除する前にセッションが終了するのを待つ必要があります。サービスにリンクされたロールのセッションを取り消すことはできません。

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

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

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

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

  3. [ロールのアクション] で、[ロールの削除] を選択します。

  4. 確認ダイアログボックスで、サービスの最終アクセス時間データを確認します。これは、選択したそれぞれのロールの AWS サービスへの最終アクセス時間を示します。これは、そのロールが現在アクティブであるかどうかを確認するのに役立ちます。続行するには、[はい、削除します] を選択します。

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

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

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

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

    $ aws iam delete-service-linked-role --role-name service-linked-role-name
  2. 削除タスクのステータスを確認するには、次のコマンドを入力します。

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