CloudWatch에서 계정 간 대시보드 공유 관련 오류를 해결하려면 어떻게 해야 하나요?

4분 분량
0

계정 간 대시보드 공유를 사용하여 Amazon CloudWatch 대시보드를 다른 AWS 계정과 공유하고 싶습니다.

간략한 설명

교차 계정 또는 지역 간 대시보드를 생성하여 CloudWatch 데이터를 여러 AWS 계정 및 여러 AWS 리전과 공유할 수 있습니다. 계정 또는 조직 ID를 사용하여 한 AWS 계정의 대시보드를 다른 계정과 공유할 경우 여러 가지 문제가 발생할 수 있습니다.

  • 모니터링 계정 사용자는 공유 계정의 계정 ID를 보거나 선택하여 대시보드를 볼 수 없습니다.
  • 모니터링 사용자가 대시보드에 액세스할 때 공유 계정의 권한 문제로 인해 오류가 발생합니다. 이러한 오류에는 다음 예가 포함됩니다.
    알람 검색 실패 오류
    리소스 그룹 검색 실패 오류
    승인되지 않은 사용자 오류

해결 방법

이 예시에서는 한 계정이 계정 ID 또는 조직 ID를 사용하여 다른 계정과 대시보드를 공유하고 있습니다. 공유 계정의 ID는 111111111111입니다. 모니터링 계정의 계정 ID는 999999999999입니다.

모니터링에서 대시보드를 보기 위해 계정 ID를 보는 중 문제가 발생했습니다.

공유 대시보드를 보고 선택하려면 모니터링 계정의 모든 AWS ID 및 액세스 관리(IAM) 사용자에 대해 계정 선택기를 켜세요. 계정 ID 선택기는 CloudWatch 설정에서 계정 선택기를 켠 IAM 사용자만 볼 수 있습니다. 자세한 내용은 CloudWatch에서 교차 계정 기능 활성화를 참조하세요.

모니터링 계정에서 사용자 지정 대시보드에 액세스할 때 오류 발생

모니터링 계정에서 사용자 지정 대시보드에 액세스하려고 하면 다음과 같은 오류가 발생할 수 있습니다.

  • CloudWatch 콘솔에서 개요 페이지에 액세스할 경우:

    "Failed to retrieve alarms ; You don't have permissions to perform the following operations: CloudWatch:DescribeAlarms. Contact your administrator if you need help. If you are an administrator, you can provide permissions for your users or groups by creating IAM policies."

  • 공유 계정에서 교차 서비스 대시보드에 액세스할 경우:

    "Unable to select any Resource Group in the "Filter by resource group" dropdown. 다음과 같은 오류가 발생합니다. "Resource groups could not be retrieved"

  • 공유 계정에서 사용자 지정 대시보드를 열 경우:

    "User: "arn:aws:sts::999999999999:assumed-role/AWSServiceRoleForCloudWatchCrossAccount/CloudWatchConsole is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::111111111111:role/CloudWatch-CrossAccountSharingRole"

    -또는-

    "User: arn:aws:sts::999999999999:assumed-role/CloudWatch-CrossAccountSharingRole/CloudWatchConsole is not authorized to perform: cloudwatch:ListDashboards on resource: arn:aws:cloudwatch::111111111111:dashboard/* because no identity-based policy allows the cloudwatch:ListDashboards action"

이러한 오류는 공유 계정의 역할에 권한 문제가 있기 때문에 발생합니다. 공유 계정이 다음 조건을 충족하는지 확인하세요.

  • CloudWatch-CrossAccountSharingRole이 있습니다.
  • 공유 계정에 올바른 신뢰 정책이 있습니다.
  • CloudWatch-CrossAccountSharing 역할에 다음과 같은 정책이 연결되어 있습니다. CloudWatchReadOnlyAccess **CloudWatchAutomaticDashboardsAccess:**대시보드 공유 중에 CloudWatch 자동 대시보드 포함 옵션을 선택 취소한 경우 이 정책이 누락됩니다. **AWSXrayReadOnlyAccess:**대시보드 공유 중에 ServiceLens에 대한 X-Ray 읽기 전용 액세스 포함 옵션을 지운 경우 이 정책이 누락됩니다.

특정 대시보드만 모든 모니터링 계정과 공유하도록 CloudWatch-CrossAccountSharingRole을 제한합니다.

교차 계정 대시보드의 모든 대시보드를 나열하려면 ListDashboards API 호출을 사용하세요. ListDashboard는 리소스별 권한을 지원하지 않지만 GetDashboard API 호출은 이를 지원합니다. 따라서 계정 간에 설명하거나 열 수 있는 대시보드를 제한하려면 소스 공유 계정에서 IAM 역할 CloudWatch-CrossAccountSharingRole을 편집하세요.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": "cloudwatch:GetDashboard",
      "Resource": "arn:aws:cloudwatch::111111111111:dashboard/dashboard-name"
    },
    {
      "Sid": "VisualEditor1",
      "Effect": "Allow",
      "Action": [
        "autoscaling:Describe*",
        "cloudwatch:Describe*",
        "cloudwatch:GetMetricData",
        "cloudwatch:GetMetricStatistics",
        "cloudwatch:GetInsightRuleReport",
        "cloudwatch:GetMetricWidgetImage",
        "cloudwatch:ListMetrics",
        "cloudwatch:ListTagsForResource",
        "cloudwatch:ListDashboards",
        "logs:Get*",
        "logs:List*",
        "logs:StartQuery",
        "logs:StopQuery",
        "logs:Describe*",
        "logs:TestMetricFilter",
        "logs:FilterLogEvents",
        "sns:Get*",
        "sns:List*"
      ],
      "Resource": "*"
    }
  ]
}

이 명령을 실행한 후 모든 대시보드를 나열할 수 있습니다. 하지만 이 정책에 언급되지 않은 대시보드를 열려고 하면 다음과 같은 오류가 표시됩니다.

User: arn:aws:sts::111111111111:assumed-role/CloudWatch-CrossAccountSharingRole/CloudWatchConsole is not authorized to perform: cloudwatch:GetDashboard on resource: arn:aws:cloudwatch::111111111111:dashboard/test

공유 계정에 필요한 CloudWatch-CrossAccountSharingRole을 생성하기 위해 CloudFormationStack을 시작하는 데 문제가 있음

계정 간 대시보드 공유를 사용할 경우는 공유 계정의 IAM 역할에 다음과 같은 정책이 연결되어 있는지 확인하세요.

  • AWSCloudFormationFullAccess
  • IAMFullAccess

이러한 권한을 통해 필요한 CloudFormationStack API를 시작하여 계정 간 대시보드 공유에 필요한 IAM 역할을 생성할 수 있습니다.

Terraform/CloudFormation/AWS CLI를 사용하여 계정 간 대시보드 공유 설정 생성

계정 간 기능을 사용하도록 공유 계정을 설정하면 CloudWatch가 AWS CloudFormation 템플릿을 배포합니다. 이 CloudFormation 템플릿을 해당 Terraform 템플릿으로 변환합니다. 이렇게 하면 계정 간 데이터 공유를 활성화할 수 있습니다.

모니터링 계정이 CloudWatch에서 교차 계정 데이터를 볼 수 있도록 하려면 콘솔을 사용하여 계정 선택기를 활성화하세요. 이는 사용자별 설정이며 계정 수준에서는 관리되지 않습니다. 이 설정을 구성하는 방법에 대한 자세한 내용은 CloudWatch에서 교차 계정 기능 활성화를 참조하세요.

관련 정보

교차 계정 교차 리전 CloudWatch 콘솔

AWS 공식
AWS 공식업데이트됨 9달 전