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

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

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

CloudWatch のサービスにリンクされたロールを使用すると、必要なアクセス権限を手動で追加しなくても、Amazon EC2 インスタンスを終了、停止、または再起動できる CloudWatch アラームを設定できます。別のサービスにリンクされたロールを使用すると、モニターリングアカウントが、指定した他のアカウントの CloudWatch データにアクセスし、クロスアカウントクロスリージョンダッシュボードを構築できるようになります。

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

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

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

CloudWatch アラーム EC2 アクションについてのサービスにリンクされたロールの許可

CloudWatch は、AWSServiceRoleForCloudWatchEvents という名前のサービスにリンクされたロールを使用します – CloudWatch は、このサービスにリンクされたロールを使用して Amazon EC2 アラームアクションを実行します。

AWSServiceRoleforCloudWatchEvents サービスにリンクされたロールは、CloudWatch Events サービスを信頼してロールを継承します。CloudWatch Events は、アラームにより呼び出されたときにインスタンスアクションを終了、停止、または再起動を呼び出します。

AWSServiceRoleForCloudWatchEvents サービスにリンクされたロールのアクセス許可ポリシーでは、CloudWatch Events が Amazon EC2 インスタンスで以下のアクションを実行できます。

  • ec2:StopInstances

  • ec2:TerminateInstances

  • ec2:RecoverInstances

  • ec2:DescribeInstanceRecoveryAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

AWSServiceRoleForCloudWatchCrossAccount サービスにリンクされたロールのアクセス権限ポリシーでは、CloudWatch は、次のアクションを完了することができます。

  • sts:AssumeRole

AWSServiceRoleForCloudWatchApplicationSignals

今後の機能では、AWSServiceRoleForCloudWatchApplicationSignals という名前のサービスにリンクされたロールが使用される予定です。CloudWatch は、このサービスにリンクされたロールを使用して CloudWatch Logs データ、X-Ray トレースデータ、CloudWatch メトリクスデータ、タグ付けデータを収集します。

サービスにリンクされたロール AWSServiceRoleForCloudWatchApplicationSignals は、CloudWatch を信頼します。

AWSServiceRoleForCloudWatchApplicationSignals には IAM ポリシーがアタッチされており、このポリシーは CloudWatchApplicationSignalsServiceRolePolicy という名前です。このポリシーには、次のアクションに関する CloudWatch のアクセス許可が含まれます。

  • xray:GetServiceGraph

  • logs:StartQuery

  • logs:GetQueryResults

  • cloudwatch:GetMetricData

  • cloudwatch:ListMetrics

  • tag:GetResources

CloudWatchApplicationSignalsServiceRolePolicy ポリシーの完全な内容は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "XRayPermission", "Effect": "Allow", "Action": [ "xray:GetServiceGraph" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "CWLogsPermission", "Effect": "Allow", "Action": [ "logs:StartQuery", "logs:GetQueryResults" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/appsignals/eks:*", "arn:aws:logs:*:*:log-group:/aws/appsignals/generic:*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "CWMetricsPermission", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData", "cloudwatch:ListMetrics" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "TagsPermission", "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } } ] }

CloudWatch アラーム Systems Manager OpsCenter アクションに対するサービスにリンクされたロールの許可

CloudWatch は、AWSServiceRoleForCloudWatchAlarms_ActionSSM という名前のサービスにリンクされたロールを使用します – CloudWatch は、CloudWatch アラームが ALARM 状態になったときに Systems Manager OpsCenter アクションを実行するために、このサービスにリンクされたロールを使用します。

AWSServiceRoleForCloudWatchAlarms_ActionSSM サービスにリンクされたロールは、CloudWatch サービスを信頼してロールを継承します。CloudWatch アラームは、アラームによって呼び出されると、Systems Manager OpsCenter アクションを呼び出します。

AWSServiceRoleForCloudWatchAlarms_ActionSSM サービスにリンクされたロールのアクセス許可ポリシーでは、Systems Manager は、次のアクションを実行できます。

  • ssm:CreateOpsItem

CloudWatch アラーム Systems Manager Incident Manager アクションのサービスにリンクされたロールの許可

CloudWatch は、AWSServiceRoleForCloudWatchAlarms_ActionSSMIncidents という名前のサービスにリンクされたロールを使用します – CloudWatch アラームが ALARM 状態になると、CloudWatch はこのサービスにリンクされたロールを使用して Incident Manager インシデントを開始します。

AWSServiceRoleForCloudWatchAlarms_ActionSSMIncidents サービスにリンクされたロールは、CloudWatch サービスを信頼してロールを継承します。CloudWatch アラームは、アラームによって呼び出されると、Systems Manager Incident Manager アクションを呼び出します。

AWSServiceRoleForCloudWatchAlarms_ActionSSMIncidents サービスにリンクされたロールのアクセス許可ポリシーでは、Systems Manager は、次のアクションを実行できます。

  • ssm-incidents:StartIncident

CloudWatch クロスアカウントクロスリージョンに対するサービスにリンクされたロールの許可

CloudWatch では、AWSServiceRoleForCloudWatchCrossAccount と呼ばれるサービスにリンクされたロールを使用します – CloudWatch は、このロールを使用し、指定した他の AWS アカウントの CloudWatch データにアクセスします。SLR は、CloudWatch サービスが共有アカウントのロールを継承できるようにするため、継承ロールアクセス権限のみを提供します。これは、データへのアクセスを提供する共有ロールです。

AWSServiceRoleForCloudWatchCrossAccount サービスにリンクされたロールのアクセス権限ポリシーでは、CloudWatch は、次のアクションを完了することができます。

  • sts:AssumeRole

AWSServiceRoleForCloudWatchCrossAccount サービスにリンクされたロールは、ロールを継承するために CloudWatch サービスを信頼します。

CloudWatch データベース Performance Insights に対するサービスリンクロールのアクセス許可

CloudWatch Logs は AWSServiceRoleForLogDelivery という名前のサービスにリンクされたロールを使用します。— CloudWatch は、このロールを使用して、アラーム作成とスナップショット作成のための Performance Insights メトリクスを取得します。

サービスにリンクされたロール AAWSServiceRoleForCloudWatchMetrics_DbPerfInsights には、AWSServiceRoleForCloudWatchMetrics_DbPerfInsightsServiceRolePolicy IAM ポリシーがアタッチされています。このポリシーの内容は次のとおりです。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "pi:GetResourceMetrics" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } } ] }

サービスにリンクされたロール AWSServiceRoleForCloudWatchCrossAccount は、CloudWatch サービスを信頼してロールを引き受けます。

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

これらのサービスにリンクされたどのロールも手動で作成する必要はありません。AWS Management Console、IAM CLI、または IAM API でアラームを初めて作成すると、CloudWatch によって AWSServiceRoleForCloudWatchEvents と AWSServiceRoleForCloudWatchAlarms_ActionSSM が自動的に作成されます。

アカウントをクロスアカウントクロスリージョン機能のモニターリングアカウントとして初めて有効にすると、CloudWatch によって AWSServiceRoleForCloudWatchCrossAccount が自動的に作成されます。

DB_PERF_INSIGHTS Metric Math 関数を使用するアラームを初めて作成すると、CloudWatch は AWSServiceRoleForCloudWatchMetrics_DbPerfInsights を自動的に作成します。

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

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

CloudWatch では、AWSServiceRoleForCloudWatchEventsAWSServiceRoleForCloudWatchAlarms_ActionSSMAWSServiceRoleForCloudWatchCrossAccount、または AWSServiceRoleForCloudWatchMetrics_DbPerfInsights ロールを編集できません。これらのロールは多くのエンティティにより参照されるため、ロールを作成した後その名前を変更することはできません。ただし、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

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

EC2 インスタンスを自動的に停止、終了、または再起動するアラームがなくなった場合、AWSServiceRoleForCloudWatchEvents ロールを削除することをお勧めします。

Systems Manager OpsCenter アクションを実行するアラームがなくなった場合は、AWSServiceRoleForCloudWatchAlarms_ActionSSM ロールを削除することをお勧めします。

DB_PERF_INSIGHTS Metric Math 関数を使用するアラームをすべて削除する場合は、サービスにリンクされたロール AWSServiceRoleForCloudWatchMetrics_DBPerfInsights を削除することをお勧めします。

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

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

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

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

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

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

    注記

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

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

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

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

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

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

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

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

AWS のサービスにリンクされたロールへの CloudWatch の更新

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

変更 説明 日付
AWSServiceRoleForCloudWatchApplicationSignals

CloudWatch は、新しく AWSServiceRoleForCloudWatchApplicationSignals サービスにリンクされたロールを追加しました。これにより、今後リリースされる機能で CloudWatch Logs データ、X-Ray トレースデータ、CloudWatch メトリクスデータ、タグ付けデータを収集できるようになります。

2023 年 11 月 9 日

AWSServiceRoleForCloudWatchMetrics_DbPerfInsights – サービスにリンクされた新しいロール

このサービスリンクロールが追加されたことで、CloudWatch がアラームやスナップショット用の Performance Insights メトリクスを取得できるようにしました。このロールには IAM ポリシーがアタッチされています。このポリシーにより、ユーザーに代わって Performance Insights メトリクスを取得するアクセス許可が CloudWatch に付与されます。

2023 年 9 月 13 日

AWSServiceRoleForCloudWatchAlarms_ActionSSMIncidents – サービスにリンクされた新しいロール

CloudWatch は、AWS Systems Manager Incident Manager でインシデントを作成できるように、サービスにリンクされた新しいロールを追加しました。

2021 年 4 月 26 日

CloudWatch が変更の追跡を開始しました

CloudWatch は、サービスにリンクされたロールの変更の追跡を開始しました。

2021 年 4 月 26 日