Como solucionar erros de compartilhamento de painel entre contas no CloudWatch?

5 minuto de leitura
0

Quero usar o compartilhamento de painel entre contas para compartilhar meu painel do Amazon CloudWatch com outra conta da AWS.

Breve descrição

Você pode criar painéis entre contas ou regiões para compartilhar seus dados do CloudWatch com várias contas da AWS e em várias regiões da AWS. Quando você usa IDs de conta ou organização para compartilhar um painel de uma conta da AWS com outra conta, você pode encontrar vários problemas:

  • O usuário da conta de monitoramento não consegue visualizar ou selecionar o ID de conta na conta de compartilhamento para visualizar o painel.
  • Ao acessar o painel, o usuário de monitoramento recebe um erro devido a problemas de permissão na conta de compartilhamento. Esses erros incluem os seguintes exemplos:
    Falha ao recuperar erros de alarmes
    Erros de recuperação de grupos de recursos
    Erros de usuário não autorizado

Resolução

Nesses exemplos, uma conta está compartilhando um painel com outra conta usando IDs de conta ou IDs de organização. A conta de compartilhamento tem o ID 111111111111. A conta de monitoramento tem o ID de conta 999999999999.

Problemas ao visualizar o ID de conta para visualizar um painel a partir de um monitoramento

Para visualizar e selecionar o painel compartilhado, ative um seletor de conta para cada usuário do AWS Identity e Access Management (IAM) na conta de monitoramento. Os seletores de ID de conta são visíveis somente para usuários do IAM que ativaram um seletor de conta nas configurações do CloudWatch. Para obter mais informações, consulte Ativação da funcionalidade entre contas no CloudWatch.

Erros recebidos ao acessar painéis personalizados a partir de uma conta de monitoramento

Ao tentar acessar um painel personalizado a partir de uma conta de monitoramento, você pode receber os seguintes erros:

  • Ao acessar a página de visão geral no console do CloudWatch:

    "Falha na recuperação dos alarmes; você não tem permissão para realizar as seguintes operações: CloudWatch:DescribeAlarms. Entre em contato com seu administrador se precisar de ajuda. Se você for um administrador, poderá fornecer permissões para seus usuários ou grupos criando políticas do IAM."

  • Ao acessar o painel entre serviços a partir de contas compartilhadas:

    "Não é possível selecionar nenhum grupo de recursos no menu suspenso "Filtrar por grupo de recursos". Erro apresentado: "Os grupos de recursos não puderam ser recuperados"

  • Ao abrir um painel personalizado a partir de uma conta compartilhada:

    "Usuário: "arn:aws:sts::999999999999:assumed-role/AWSServiceRoleForCloudWatchCrossAccount/CloudWatchConsole não está autorizado a executar: sts:AssumeRole no recurso: arn:aws:iam::111111111111:role/CloudWatch-CrossAccountSharingRole"

    -ou-

    "O usuário: arn:aws:sts::999999999999:assumed-role/CloudWatch-CrossAccountSharingRole/CloudWatchConsole não está autorizado a executar: cloudwatch:ListDashboards no recurso: arn:aws:cloudwatch::111111111111:dashboard/\ * porque nenhuma política baseada em identidade permite a ação cloudwatch:ListDashboards"

Esses erros ocorrem porque há problemas de permissão na função da conta de compartilhamento. Certifique-se de que a conta de compartilhamento atenda às seguintes condições:

  • CloudWatch-CrossAccountSharingRole está presente.
  • A conta de compartilhamento tem as políticas de confiança corretas.
  • A função CloudWatch-CrossAccountSharing tem as seguintes políticas anexadas: CloudWatchReadOnlyAccess CloudWatchAutomaticDashboardsAccess: Essa política estará ausente se você desmarcar a opção Incluir painéis automáticos do CloudWatch durante o compartilhamento do painel. AWSXrayReadOnlyAccess: Essa política estará ausente se você desmarcar a opção Incluir acesso somente de leitura do X-Ray para o ServiceLens durante o compartilhamento do painel.

Limite o CloudWatch-CrossAccountSharingRole para compartilhar somente painéis específicos com todas as contas de monitoramento

Para listar todos os painéis de painéis entre contas, use a chamada de API ListDashboards. ListDashboards não é compatível com permissões específicas de recursos, mas a chamada de API GetDashboard é. Portanto, para limitar os painéis que podem ser descritos ou abertos entre contas, edite o perfil do IAM CloudWatch-CrossAccountSharingRole na conta de compartilhamento de origem:

{
  "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": "*"
    }
  ]
}

Depois de executar esse comando, você pode listar todos os painéis. No entanto, se você tentar abrir um painel que não esteja mencionado nesta política, receberá um erro:

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

Problemas ao iniciar CloudFormationStack para criar a função necessária do CloudWatch-CrossAccountSharingRole na conta de compartilhamento

Certifique-se de ter essas políticas associadas ao perfil do IAM na conta de compartilhamento ao usar o compartilhamento de painéis entre contas:

  • AWSCloudFormationFullAccess
  • IAMFullAccess

Essas permissões permitem que você inicie a API CloudFormationStack necessária para criar os perfis do IAM necessários para o compartilhamento de painéis entre contas.

Use Terraform/CloudFormation/AWS CLI para criar uma configuração de compartilhamento de painel entre contas

Quando você configura uma conta de compartilhamento para usar funções entre contas, o CloudWatch implanta um modelo do AWS CloudFormation. Converta esse modelo do CloudFormation em um modelo do Terraform correspondente. Isso permite que você ative o compartilhamento de dados entre contas.

Para permitir que sua conta de monitoramento visualize dados entre contas no CloudWatch, ative um seletor de contas usando o console. Essa é uma configuração por usuário e não é gerenciada no nível da conta. Para obter mais informações sobre como definir essa configuração, consulte Ativar a funcionalidade entre contas no CloudWatch.

Informações relacionadas

Console do CloudWatch entre contas e entre regiões

AWS OFICIAL
AWS OFICIALAtualizada há 9 meses