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가 보호됩니다.

서비스 연결 역할을 지원하는 기타 서비스에 대해 자세히 알아보려면 AWS Services That Work with IAM(IAM과 연동하는 서비스)을 참조하고 Service-Linked Role(서비스 연결 역할) 열에 Yes(예)라고 표시된 서비스를 찾으세요. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 링크가 있는 를 선택합니다.

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

CloudWatch Application Signals에 대한 서비스 연결 역할 권한

곧 출시될 기능에서는 AWSServiceRoleForCloudWatchApplicationSignals라는 서비스 연결 역할을 사용할 예정입니다. CloudWatch는 이 서비스 연결 역할을 사용하여 CloudWatch Logs 데이터, X-Ray 트레이스 데이터, CloudWatch 지표 데이터, 태깅 데이터를 수집합니다.

AWSServiceRoleForCloudWatchApplicationSignals 서비스 연결 역할은 CloudWatch Application Signals를 신뢰하여 역할을 수임합니다. Application Signals는 계정에서 로그, 트레이스, 지표 및 태그 데이터를 수집합니다.

AWSServiceRoleForCloudWatchApplicationSignals에는 IAM 정책이 첨부되어 있으며, 이 정책의 이름은 CloudWatchApplicationSignalsServiceRolePolicy입니다. 이 정책은 CloudWatch Application Signals에 다른 관련 AWS 서비스로부터 모니터링 및 태깅 데이터를 수집할 수 있는 권한을 부여합니다. 여기에는 Application Signals가 다음 작업을 완료할 수 있는 권한이 포함됩니다.

  • 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/*:*", "arn:aws:logs:*:*:log-group:/aws/application-signals/data:*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "CWListMetricsPermission", "Effect": "Allow", "Action": [ "cloudwatch:ListMetrics" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "CWGetMetricDataPermission", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData" ], "Resource": [ "*" ] }, { "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는 이 서비스 연결 역할을 사용하여 CloudWatch 경보가 ALARM 상태가 될 때 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 데이터베이스 성능 개선 도우미에 대한 서비스 연결 역할 권한

CloudWatch는 AWSServiceRoleForCloudWatchMetrics_DbPerfInsights라는 서비스 연결 역할을 사용합니다. – CloudWatch는 이 역할을 사용하여 경보 생성 및 스냅샷 생성을 위한 성능 개선 도우미 지표를 검색합니다.

AWSServiceRoleForCloudWatchMetrics_DbPerfInsights 서비스 연결 역할에는 AWSServiceRoleForCloudWatchMetrics_DbPerfInsightsServiceRolePolicy IAM 정책이 연결되어 있습니다. 해당 정책의 내용은 다음과 같습니다.

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

AWSServiceRoleForCloudWatchMetrics_DbPerfInsights 서비스 연결 역할은 CloudWatch 서비스를 신뢰하여 역할을 위임합니다.

CloudWatch에 대한 서비스 연결 역할 생성

이러한 서비스 연결 역할을 수동으로 생성할 필요가 없습니다. AWS Management Console, IAM CLI 또는 IAM API에서 경보를 처음 생성할 때 CloudWatch는 AWSServiceRoleForCloudWatchEvents와 AWSServiceRoleForCloudWatchAlarms_ActionSSM을 자동으로 생성합니다.

서비스 및 토폴로지 검색을 처음 활성화하면 Application Signals가 AWSServiceRoleForCloudWatchApplicationSignals를 생성합니다.

계정을 크로스 계정 크로스 리전 기능에 대한 모니터링 계정으로 처음 활성화할 때 CloudWatch는 AWSServiceRoleForCloudWatchCrossAccount를 자동으로 생성합니다.

DB_PERF_INSIGHTS 지표 수학 함수를 사용하는 경보를 처음 생성하면 CloudWatch가 AWSServiceRoleForCloudWatchMetrics_DbPerfInsights를 생성합니다.

자세한 내용은 IAM 사용 설명서서비스 연결 역할 생성 섹션을 참조하세요.

CloudWatch에 대한 서비스 연결 역할 편집

CloudWatch에서는 AWSServiceRoleForCloudWatchEvents, AWSServiceRoleForCloudWatchAlarms_ActionSSM, AWSServiceRoleForCloudWatchCrossAccount 또는 AWSServiceRoleForCloudWatchMetrics_DbPerfInsights 역할을 편집하는 것을 허용하지 않습니다. 다양한 개체가 역할을 참조할 수 있으므로 이러한 역할을 생성한 후에는 이름을 변경할 수 없습니다. 그러나 IAM을 사용하여 이러한 역할의 설명을 편집할 수 있습니다.

서비스 연결 역할 설명 편집(IAM 콘솔)

IAM 콘솔을 사용하여 서비스 연결 역할의 설명을 편집할 수 있습니다.

서비스 연결 역할의 설명을 편집하려면(콘솔 사용)
  1. IAM 콘솔의 탐색 창에서 역할을 선택합니다.

  2. 변경할 역할 이름을 선택합니다.

  3. 역할 설명의 맨 오른쪽에서 편집을 선택합니다.

  4. 상자에 새 설명을 입력하고 저장을 선택합니다.

서비스 연결 역할 설명 편집(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 지표 수학 함수를 사용하는 경보를 모두 삭제하는 경우 AWSServiceRoleForCloudWatchMetrics_DbPerfInsights 서비스 연결 역할을 삭제하는 것이 좋습니다.

따라서 적극적으로 모니터링하거나 유지하지 않는 미사용 엔터티가 없도록 합니다. 단, 삭제 전에 서비스 연결 역할을 정리해야 합니다.

서비스 연결 역할 정리

IAM을 사용하여 서비스 연결 역할을 삭제하기 전에 먼저 역할에 활성 세션이 없는지 확인하고 역할에서 사용되는 리소스를 모두 제거해야 합니다.

IAM 콘솔에서 서비스 연결 역할에 활성 세션이 있는지 확인하려면
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택합니다. AWSServiceRoleForCloudWatchEvents 역할의 이름(확인란 아님)을 선택합니다.

  3. 선택된 역할의 요약 페이지에서 Access Advisor(액세스 관리자)를 선택하고 서비스 연결 역할의 최근 활동을 검토합니다.

    참고

    CloudWatch가 AWSServiceRoleForCloudWatchEvents 역할을 사용하고 있는지 확실하지 않은 경우 역할을 삭제해 보세요. 서비스에서 역할을 사용하는 경우에는 삭제가 안 되어 역할이 사용 중인 리전을 볼 수 있습니다. 역할이 사용 중인 경우에는 세션이 종료될 때까지 기다렸다가 역할을 삭제해야 합니다. 서비스 연결 역할에 대한 세션은 취소할 수 없습니다.

서비스 연결 역할 삭제(IAM 콘솔)

IAM 콘솔을 사용하여 서비스 연결 역할을 삭제할 수 있습니다.

서비스 연결 역할을 삭제하는 방법(콘솔)
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택합니다. 그런 다음 삭제할 역할의 이름이나 행이 아닌 이름 옆에 있는 확인란을 선택합니다.

  3. 역할 작업에 대해 역할 삭제를 선택합니다.

  4. 확인 대화 상자가 나타나면 서비스 마지막 액세스 데이터를 검토합니다. 이 데이터는 선택한 각 역할이 AWS 서비스를 마지막으로 액세스한 일시를 보여 줍니다. 이를 통해 역할이 현재 활동 중인지를 확인할 수 있습니다. 계속하려면 예, 삭제를 선택합니다.

  5. IAM 콘솔 알림을 보고 서비스 연결 역할 삭제 진행 상황을 모니터링합니다. IAM 서비스 연결 역할 삭제는 비동기이므로 삭제할 역할을 제출한 후에 삭제 태스크가 성공하거나 실패할 수 있습니다. 작업에 실패할 경우 알림의 세부 정보 보기 또는 View Resources(리소스 보기)를 선택하면 삭제 실패 이유를 확인할 수 있습니다. 역할에서 사용 중인 리소스가 서비스에 있기 때문에 삭제에 실패하는 경우, 실패 원인에 리소스 목록이 포함됩니다.

서비스 연결 역할 삭제(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_STARTED, IN_PROGRESS, SUCCEEDED 또는 FAILED 상태일 수 있습니다. 삭제에 실패할 경우 문제를 해결할 수 있도록 실패 이유가 호출에 반환됩니다.

서비스 연결 역할 삭제(IAM API)

IAM API를 사용하여 서비스 연결 역할을 삭제할 수 있습니다.

서비스 연결 역할(API)을 삭제하는 방법
  1. 서비스 연결 역할 삭제 요청을 제출하려면 DeleteServiceLinkedRole을 호출합니다. 요청에서 삭제할 역할 이름을 지정합니다.

    서비스 연결 역할이 사용되지 않거나 연결된 리소스가 없는 경우에는 서비스 연결 역할을 삭제할 수 없으므로 삭제 요청을 제출해야 합니다. 이러한 조건이 충족되지 않으면 요청이 거부될 수 있습니다. 삭제 태스크 상태를 확인하려면 응답의 DeletionTaskId(을)를 캡처해야 합니다.

  2. 삭제 상태를 확인하려면 GetServiceLinkedRoleDeletionStatus를 호출합니다. 요청에 DeletionTaskId(을)를 지정합니다.

    삭제 태스크는 NOT_STARTED, IN_PROGRESS, SUCCEEDED 또는 FAILED 상태일 수 있습니다. 삭제에 실패할 경우 문제를 해결할 수 있도록 실패 이유가 호출에 반환됩니다.

AWS 서비스 연결 역할에 대한 CloudWatch 업데이트

아래에는 CloudWatch의 AWS 관리형 정책 업데이트에 관한 세부 정보가 나와 있습니다. 이 서비스가 해당 변경 사항을 추적하기 시작한 이후부터 설명되어 있습니다. 이 페이지의 변경 사항에 관한 자동 알림을 받으려면 CloudWatch 문서 기록 페이지에서 RSS 피드를 구독하세요.

변경 사항 설명 날짜

AWSServiceRoleForCloudWatchApplicationSignals – 서비스 연결 역할 정책의 권한 업데이트

CloudWatch에서 이 역할이 부여하는 logs:StartQuerylogs:GetQueryResults 권한의 범위에 더 많은 로그 그룹이 추가됩니다.

2024년 4월 24일

AWSServiceRoleForCloudWatchApplicationSignals – 새 서비스 연결 역할

CloudWatch는 CloudWatch Application Signals가 CloudWatch Application Signals에 대해 활성화한 애플리케이션에서 CloudWatch Logs 데이터, X-Ray 트레이스 데이터, CloudWatch 지표 데이터 및 태그 지정 데이터를 수집할 수 있도록 이 새로운 서비스 연결 역할을 추가했습니다.

2023년 11월 9일

AWSServiceRoleForCloudWatchMetrics_DbPerfInsights – 새로운 서비스 연결 역할

CloudWatch는 CloudWatch가 경보 및 스냅샷 생성을 위해 성능 개선 도우미 지표를 가져올 수 있도록 이 새로운 서비스 연결 역할을 추가했습니다. IAM 정책은 이 역할에 연결되며, 정책은 CloudWatch에 사용자를 대신하여 성능 개선 도우미 지표를 가져올 수 있는 권한을 부여합니다.

2023년 9월 13일

AWSServiceRoleForCloudWatchAlarms_ActionSSMIncidents – 새 서비스 연결 역할

CloudWatch는 새 서비스 연결 역할을 추가하여 CloudWatch가 AWS Systems Manager Incident Manager에서 인시던트를 생성할 수 있도록 했습니다.

2021년 4월 26일

CloudWatch에서 변경 사항 추적 시작

CloudWatch가 서비스 연결 역할의 변경 사항 추적을 시작했습니다.

2021년 4월 26일