Compartilhar painéis do CloudWatch - Amazon CloudWatch

Compartilhar painéis do CloudWatch

É possível compartilhar seus painéis do CloudWatch com pessoas que não têm acesso à conta da AWS. Isso permite que compartilhar painéis entre equipes, com partes interessadas e com pessoas externas a sua organização. É possível até exibir painéis em telas grandes em áreas de equipe ou incorporá-los a Wikis e outras páginas da Web.

Atenção

Todas as pessoas com quem você compartilhar o painel receberão as permissões listadas em Permissões concedidas a pessoas com quem você compartilha o painel para a conta. Se você compartilhar o painel publicamente, todos os que tiverem o link para o painel terão essas permissões.

As permissões cloudwatch:GetMetricData e ec2:DescribeTags não podem ter escopo para métricas específicas ou instâncias do EC2. Portanto, as pessoas com acesso ao painel podem consultar todas as métricas do CloudWatch e os nomes e etiquetas de todas as instâncias do EC2 na conta.

Ao compartilhar painéis, você pode designar quem pode exibir o painel de três formas:

  • Compartilhe um só painel e atribua até cinco endereços de e-mail específicos de pessoas que poderão visualizar o painel. Cada um desses usuários cria sua própria senha, que devem inserir para exibir o painel.

  • Compartilhe um único painel publicamente, de modo que qualquer pessoa que tenha o link possa visualizar o painel.

  • Compartilhe todos os painéis do CloudWatch de sua conta e especifique um provedor de autenticação única (SSO) de terceiros para acesso ao painel. Todos os usuários que são membros da lista desse provedor de SSO podem acessar todos os painéis da conta. Para habilitar isso, integre o provedor de SSO ao Amazon Cognito. O provedor de SSO deve oferecer suporte a Security Assertion Markup Language (SAML). Para obter mais informações sobre o Amazon Cognito, consulte O que é o Amazon Cognito?

O compartilhamento de um painel não gera cobranças, mas os widgets dentro de um painel compartilhado incorrem em cobranças de acordo com as taxas padrão do CloudWatch. Para obter mais informações sobre os preços do CloudWatch, consulte Preço do Amazon CloudWatch.

Quando você compartilha um painel, os recursos do Amazon Cognito são criados na região Leste dos EUA (Norte da Virgínia).

Importante

Não modifique nomes e identificadores de recursos criados pelo processo de compartilhamento do painel. Isso inclui recursos do Amazon Cognito e do IAM. A modificação desses recursos pode causar uma funcionalidade inesperada e incorreta dos painéis compartilhados.

nota

Se você compartilhar um painel contendo widgets métricos com anotações de alarme, as pessoas com as quais você compartilhar o painel não verão esses widgets. Em vez disso, elas verão um widget em branco com uma mensagem informando que o widget não está disponível. Você ainda verá widgets métricos com anotações de alarme quando você mesmo visualizar o painel.

Permissões necessárias para compartilhar um painel

Para poder compartilhar painéis usando qualquer um dos métodos a seguir e ver quais painéis já foram compartilhados, é necessário fazer login como um usuário ou com um perfil do IAM que tenha determinadas permissões.

Para poder compartilhar painéis, seu usuário ou perfil do IAM deve incluir as permissões contidas na instrução de política a seguir:

{ "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/service-role/CWDBSharing*", "arn:aws:iam::*:policy/*" ] }, { "Effect": "Allow", "Action": [ "cognito-idp:*", "cognito-identity:*", ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:GetDashboard", ], "Resource": [ "*" // or the ARNs of dashboards that you want to share ] }

Para ser capaz de ver quais painéis são compartilhados, mas não de compartilhar painéis, um usuário ou perfil do IAM pode incluir uma instrução de política semelhante à seguinte:

{ "Effect": "Allow", "Action": [ "cognito-idp:*", "cognito-identity:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:ListDashboards", ], "Resource": [ "*" ] }

Permissões concedidas a pessoas com quem você compartilha o painel

Ao compartilhar um painel, o CloudWatch cria uma função do IAM na conta, que dá as seguintes permissões às pessoas com quem você compartilha o painel:

  • cloudwatch:GetInsightRuleReport

  • cloudwatch:GetMetricData

  • cloudwatch:DescribeAlarms

  • ec2:DescribeTags

Atenção

Todas as pessoas com quem você compartilhar o painel receberão essas permissões listadas para a conta. Se você compartilhar o painel publicamente, todos os que tiverem o link para o painel terão essas permissões.

As permissões cloudwatch:GetMetricData e ec2:DescribeTags não podem ter escopo para métricas específicas ou instâncias do EC2. Portanto, as pessoas com acesso ao painel podem consultar todas as métricas do CloudWatch e os nomes e etiquetas de todas as instâncias do EC2 na conta.

Quando você compartilha um painel, por padrão, as permissões criadas pelo CloudWatch restringem o acesso somente aos alarmes e às regras do Contributor Insights que estão no painel quando ele é compartilhado. Se você adicionar novos alarmes ou regras do Contributor Insights ao painel e quiser que eles também sejam vistos pelas pessoas com quem compartilhou o painel, atualize a política para permitir esses recursos.

Permitir que as pessoas com quem você compartilha vejam alarmes compostos

Por padrão, quando você compartilha um painel, os widgets de alarmes compostos no painel não são visíveis para as pessoas com quem você compartilha o painel. Para que widgets de alarmes compostos fiquem visíveis, é necessário adicionar uma permissão DescribeAlarms: * à política de compartilhamento do painel. Essa permissão deve ser semelhante a esta:

{ "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": "*" }
Atenção

A instrução de política anterior dá acesso a todos os alarmes da conta. Para reduzir o escopo de cloudwatch:DescribeAlarms, é necessário usar uma instrução Deny. É possível adicionar uma instrução Deny à política e especificar os ARNs dos alarmes que você deseja bloquear. Essa instrução de negação deve ser semelhante a esta:

{ "Effect": "Allow", "Action": "cloudwatch:DescribeAlarms", "Resource": "*" }, { "Effect": "Deny", "Action": "cloudwatch:DescribeAlarms", "Resource": [ "SensitiveAlarm1ARN", "SensitiveAlarm1ARN" ] }

Permitir que as pessoas com quem você compartilha vejam widgets de tabelas de logs

Por padrão, quando você compartilha um painel, os widgets do CloudWatch Logs Insights que estão no painel não são visíveis para as pessoas com quem você compartilha o painel. Isso afeta os widgets do CloudWatch Logs Insights que existem agora e os que são adicionados ao painel após o compartilhamento.

Para que essas pessoas possam ver widgets do CloudWatch Logs, é necessário adicionar permissões à função do IAM para compartilhamento de painel.

Para permitir que as pessoas com quem você compartilha um painel vejam os widgets do CloudWatch Logs
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, escolha Painéis.

  3. Escolha o nome do painel compartilhado.

  4. Escolha Actions (Ações), Share dashboard (Compartilhar painel).

  5. Em Resources (Recursos), escolha IAM Role (Função do IAM).

  6. No console do IAM, escolha a política exibida.

  7. Selecione Edit policy (Editar política) e adicione a instrução a seguir. Na nova instrução, recomendamos especificar os ARNs apenas dos grupos de log que você deseja compartilhar. Veja o exemplo a seguir.

    { "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:StartQuery", "logs:StopQuery", "logs:GetLogRecord", "logs:DescribeLogGroups" ], "Resource": [ "SharedLogGroup1ARN", "SharedLogGroup2ARN" ] },
  8. Escolha Save Changes (Salvar alterações).

Se sua política do IAM para compartilhamento de painel já incluir essas cinco permissões com * como o recurso, é altamente recomendável alterar a política e especificar somente os ARNs dos grupos de logs que você deseja compartilhar. Por exemplo, se a seção Resource para essas permissões foi a seguinte:

"Resource": "*"

Altere a política para especificar somente os ARNs dos grupos de logs que você deseja compartilhar, como no exemplo a seguir:

"Resource": [ "SharedLogGroup1ARN", "SharedLogGroup2ARN" ]

Permitir que as pessoas com quem você compartilha vejam widgets personalizados

Por padrão, quando você compartilha um painel, os widgets personalizados que estão no painel não são visíveis para as pessoas com quem você compartilha o painel. Isso afeta os widgets personalizados que existem agora e os que são adicionados ao painel após o compartilhamento.

Para que essas pessoas possam ver widgets personalizados, é necessário adicionar permissões à função do IAM para compartilhamento de painel.

Para permitir que as pessoas com quem você compartilha um painel vejam os widgets personalizados
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, escolha Painéis.

  3. Escolha o nome do painel compartilhado.

  4. Escolha Actions (Ações), Share dashboard (Compartilhar painel).

  5. Em Resources (Recursos), escolha IAM Role (Função do IAM).

  6. No console do IAM, escolha a política exibida.

  7. Selecione Edit policy (Editar política) e adicione a instrução a seguir. Na nova instrução, recomendamos especificar os ARNs apenas das funções do Lambda que você deseja compartilhar. Veja o exemplo a seguir.

    { "Sid": "Invoke", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "LambdaFunction1ARN", "LambdaFunction2ARN" ] }
  8. Escolha Save Changes (Salvar alterações).

Se sua política do IAM para compartilhamento de painel já incluir essa permissão com * como recurso, é altamente recomendável alterar a política e especificar apenas os ARNs das funções do Lambda que você deseja compartilhar. Por exemplo, se a seção Resource para essas permissões foi a seguinte:

"Resource": "*"

Altere a política para especificar somente os ARNs dos widgets personalizados que você deseja compartilhar, como no exemplo a seguir:

"Resource": [ "LambdaFunction1ARN", "LambdaFunction2ARN" ]