Monitorar alterações de status do Systems Manager usando as notificações do Amazon SNS - AWS Systems Manager

Monitorar alterações de status do Systems Manager usando as notificações do Amazon SNS

nota

Não há suporte para tópicos FIFO do Amazon Simple Notification Service.

É possível configurar o Amazon Simple Notification Service (Amazon SNS) para enviar notificações sobre o status dos comandos que você envia usando o Run Command ou Maintenance Windows, que são recursos do AWS Systems Manager. O Amazon SNS coordena e gerencia a entrega e o envio de notificações a clientes e endpoints que assinam tópicos do Amazon SNS. Você pode receber uma notificação sempre que um comando muda para um novo estado ou atinge um estado específico, como Failed (Falha) ou Timed out (Tempo limite). Nos casos em que você envia um comando para vários nós, você pode receber uma notificação para cada cópia do comando enviado para um nó específico. Cada cópia é chamada de uma invocação.

O Amazon SNS pode entregar notificações como HTTP ou HTTPS POST, e-mail (SMTP, texto sem formatação ou no formato JSON) ou como uma mensagem postada em uma fila do Amazon Simple Queue Service (Amazon SQS). Para obter mais informações, consulte O que é o Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service. Para obter exemplos da estrutura dos dados JSON incluídos na notificação do Amazon SNS fornecida pelo Run Command e Maintenance Windows, consulte Exemplo de notificações do Amazon SNS para AWS Systems Manager.

Configurar notificações do Amazon SNS para o AWS Systems Manager

As tarefas Run Command e Maintenance Windows, registradas para uma janela de manutenção, podem enviar notificações do Amazon SNS para tarefas de comando que entram nos seguintes status:

  • Em andamento

  • Bem-sucedida

  • Com falha

  • Timed Out

  • Cancelado

Para obter informações sobre as condições que fazem com que um comando entre em um desses status, consulte Noções básicas sobre status de comando.

nota

Os comandos enviados usando o Run Command também relatam o status Cancelando e Pendente. Esses status não são capturados pelas notificações do Amazon SNS.

Notificações do Amazon SNS de resumo de comandos

Se você configurar o Run Command ou uma tarefa do Run Command na janela de manutenção para notificações do Amazon SNS, o Amazon SNS enviará mensagens de resumo que incluem as informações a seguir.

Campo Tipo Descrição

eventTime

String

A hora em que o evento foi iniciado. O carimbo de hora é importante, pois o Amazon SNS não garante a ordem de entrega das mensagens. Exemplo: 2016-04-26T13:15:30Z

documentName

String

O nome do documento do SSM usado para executar esse comando.

commandId

String

O ID gerado pelo Run Command após o envio do comando.

expiresAfter

Data

Se esse tempo for atingido e o comando ainda não tiver iniciado a execução, ele não executará.

outputS3BucketName

String

O bucket do Amazon Simple Storage Service (Amazon S3) em que respostas para a execução do comando devem ser armazenadas.

outputS3KeyPrefix

String

O caminho de diretório do Amazon S3 dentro do bucket no qual as respostas para a execução do comando devem ser armazenadas.

requestedDateTime

String

A data e a hora em que a solicitação foi enviada para esse nó específico.

instanceIds

StringList

Os nós que foram selecionados pelo comando.

nota

Os IDs de instância só serão incluídos na mensagem de resumo se a tarefa do Run Command direcionar IDs de instância diretamente. Os IDs de instância não serão incluídos na mensagem de resumo se a tarefa Run Command tiver sido emitida usando o direcionamento com base em tags.

status

String

Status do comando para o comando.

Notificações do Amazon SNS com base em invocação

Se você enviar um comando para vários nós, o Amazon SNS poderá enviar mensagens sobre cada cópia ou invocação desse comando. As mensagens incluem as seguintes informações.

Campo Tipo Descrição

eventTime

String

A hora em que o evento foi iniciado. O carimbo de hora é importante, pois o Amazon SNS não garante a ordem de entrega das mensagens. Exemplo: 2016-04-26T13:15:30Z

documentName

String

O nome do documento SSM usado para executar esse comando.

requestedDateTime

String

A data e a hora em que a solicitação foi enviada para esse nó específico.

commandId

String

O ID gerado pelo Run Command após o envio do comando.

instanceId

String

A instância que foi direcionada pelo comando.

status

String

Status do comando para essa invocação.

Para configurar notificações do Amazon SNS quando um comando mudar de status, conclua as tarefas a seguir.

nota

Se você não estiver configurando notificações do Amazon SNS para sua janela de manutenção, poderá ignorar a Tarefa 5 apresentada posteriormente neste tópico.

Tarefa 1: Criar e assinar um tópico do Amazon SNS

Um tópico do Amazon SNS é um canal de comunicação que o Run Command e as tarefas do Run Command registradas em uma janela de manutenção usam para enviar notificações sobre o status dos comandos. O Amazon SNS é compatível com diferentes protocolos de comunicação, incluindo HTTP/S, e-mail e outros Serviços da AWS, como o Amazon Simple Queue Service (Amazon SQS). Para começar rapidamente, recomendamos que você comece com o protocolo de e-mail. Para obter informações sobre como criar um tópico, consulte Criar um tópico do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.

nota

Depois de criar o tópico, copie ou anote o ARN do tópico. Você especifica esse ARN ao enviar um comando que esteja configurado para retornar notificações de status.

Após criar o tópico, inscreva-se nele especificando um Endpoint. Se você selecionou o protocolo de e-mail, o endpoint é o endereço de e-mail no qual você deseja receber notificações. Para obter mais informações sobre como se inscrever em um tópico, consulte Inscrever-se em um tópico do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.

O Amazon SNS envia um e-mail de confirmação de Notificações AWS para o endereço de e-mail que você especificar. Abra o e-mail e selecione o link Confirm subscription (Confirmar assinatura).

Você receberá uma mensagem de confirmação da AWS. O Amazon SNS agora está configurado para receber notificações e enviar a notificação como um e-mail para o endereço de e-mail que você especificou.

Tarefa 2: Criar uma política do IAM para notificações do Amazon SNS

Use o procedimento a seguir para criar uma política personalizada do AWS Identity and Access Management (IAM) que forneça permissões para acionar notificações do Amazon SNS.

Para criar uma política do IAM personalizada SNS para notificações do Amazon SNS
  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Policies e, em seguida, Create Policy. (Se aparecer um botão Get Started, selecione-o e, em seguida, clique em Create Policy).

  3. Selecione a guia JSON.

  4. Substitua o conteúdo padrão pela declaração a seguir.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": "arn:aws:sns:region:account-id:sns-topic-name" } ] }

    A região representa o identificador da região para uma região da Região da AWS compatível com o AWS Systems Manager, como us-east-2 para a região Leste dos EUA (Ohio). Para ver uma lista dos valores de região com suporte, consulte a coluna Region em Systems Manager service endpoints no Referência geral da Amazon Web Services.

    account-id representa o identificador de 12 dígitos para a Conta da AWS, no formato 123456789012.

    sns-topic-name representa o nome do tópico do Amazon SNS que você deseja usar para publicar notificações.

  5. Escolha Próximo: etiquetas.

  6. (Opcional) Adicione um ou mais pares de chave-valor de etiqueta para organizar, monitorar ou controlar acesso para essa política.

  7. Selecione Next: Review (Próximo: revisar).

  8. Na página Revisar política, em Nome, digite um nome para a política em linha. Por exemplo: my-sns-publish-permissions.

  9. (Opcional) Em Descrição, digite uma descrição para a política.

  10. Escolha Criar política.

Tarefa 3: Criar uma função do IAM para notificações do Amazon SNS

Use o procedimento a seguir para criar uma função de serviço do IAM para notificações do Amazon SNS. Essa função de serviço é usada pelo Systems Manager para iniciar notificações do Amazon SNS. Em todos os procedimentos subsequentes, essa função é chamada de função do IAM do Amazon SNS.

Para criar uma função de serviço do IAM para notificações do Amazon SNS
  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação do console do IAM, escolha Funções e, em seguida, Criar função.

  3. Escolha o tipo de perfil de Serviço da AWS e, em seguida, selecione o Systems Manager.

  4. Escolha o caso de uso do Systems Manager. Em seguida, clique em Próximo.

  5. Na página Attach permissions policies (Anexar políticas de permissões), marque a caixa à esquerda do nome da política personalizada criada na Tarefa 2. Por exemplo: my-sns-publish-permissions.

  6. (Opcional) Defina um limite de permissões. Esse é um atributo avançado que está disponível para perfis de serviço, mas não para perfis vinculados ao serviço.

    Expanda a seção Limite de permissões e escolha Usar um limite de permissões para controlar o número máximo de permissões de funções. O IAM inclui uma lista das políticas gerenciadas pela AWS e pelo cliente em sua conta. Selecione a política a ser usada para o limite de permissões ou escolha Criar política para abrir uma nova guia no navegador e criar uma nova política a partir do zero. Para obter mais informações, consulte Criar políticas do IAM no Guia do usuário do IAM. Depois de criar a política, feche essa guia e retorne à guia original para selecionar a política a ser usada para o limite de permissões.

  7. Escolha Próximo.

  8. Se possível, insira um nome de função ou sufixo de nome de função para ajudar a identificar o propósito desta função. Os nomes de função devem ser exclusivos em sua Conta da AWS. Eles não são diferenciados por letras maiúsculas e minúsculas. Por exemplo, não é possível criar funções chamadas PRODROLE e prodrole. Como várias entidades podem fazer referência à função, não é possível editar o nome da função depois que ela é criada.

  9. (Opcional) Em Descrição da função, insira uma descrição para a nova função.

  10. Selecione Editar nas seções Etapa 1: selecionar entidades confiáveis ou Etapa 2: selecionar permissões para editar os casos de uso e as permissões para a função.

  11. (Opcional) Adicione metadados ao usuário anexando tags como pares de chave-valor. Para obter mais informações sobre o uso de tags no IAM, consulte Marcar recursos do IAM no Guia do usuário do IAM.

  12. Revise a função e escolha Criar perfil.

  13. Escolha o nome da função e depois copie ou anote o valor do Role ARN (ARN da função). Esse nome do recurso da Amazon (ARN) para a função é usado quando você envia um comando que foi configurado para retornar notificações do Amazon SNS.

  14. A página Summary (Resumo) é aberta.

Tarefa 4: Configurar o acesso do usuário

Se uma entidade do IAM (usuário, perfil ou grupo) receber permissões de administrador, o usuário ou o perfil terá acesso a Run Command e Maintenance Windows, que são funcionalidades do AWS Systems Manager.

Para entidades que não têm permissões de administrador, um administrador deve conceder as permissões a seguir à entidade do IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/sns-role-name" } ] }

Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:

Para configurar acesso de usuário e anexar a política iam:PassRole a uma conta de usuário
  1. No painel de navegação do IAM, escolha Users (Usuários) e selecione a conta de usuário que deseja configurar.

  2. Na guia Permissions (Permissões), na lista de políticas, verifique se a política AmazonSSMFullAccess está listada ou se existe uma política comparável que conceda à conta permissão para acessar o Systems Manager.

  3. Escolha Add inline policy (Adicionar política em linha).

  4. Na página Create policy (Criar política), selecione a guia Visual editor (Editor visual).

  5. Selecione Choose a service (Escolher um serviço) e, em seguida, IAM.

  6. Para Actions (Ações), na caixa de texto Filter actions (Filtrar ações), insira PassRole e selecione a caixa de verificação ao lado de PassRole.

  7. Em Resources (Recursos), verifique se Specific (Específico) está selecionado e, em seguida, selecione Add ARN (Adicionar ARN).

  8. No campo Specify ARN for role (Especificar ARN para função), cole o ARN da função do IAM do Amazon SNS que você copiou no final da Tarefa 3. O sistema preenche automaticamente os campos Account (Conta) e Role name with path (Nome de função com caminho).

  9. Escolha Add (Adicionar).

  10. Escolha Review policy (Revisar política).

  11. Na página Review Policy (Revisar política), insira um nome e depois escolha Create Policy (Criar política).

Tarefa 5: Anexar a política iam:PassRole à função da janela de manutenção

Ao registrar uma tarefa do Run Command em uma janela de manutenção, você especifica o nome de recurso da Amazon (ARN) de uma função de serviço. Essa função de serviço é usada pelo Systems Manager para executar tarefas registradas para a janela de manutenção. Para configurar notificações do Amazon SNS para uma tarefa registrada do Run Command, anexe uma política iam:PassRole à função de serviço da janela de manutenção especificada. Se você não pretende configurar a tarefa registrada para notificações do Amazon SNS, essa tarefa pode ser ignorada.

A política iam:PassRole permite que a função de serviço do Maintenance Windows transmita a função do IAM do Amazon SNS criada na Tarefa 3 ao serviço Amazon SNS. O procedimento a seguir mostra como anexar a política iam:PassRole à função de serviço do Maintenance Windows.

nota

Use uma função de serviço personalizada para sua janela de manutenção para enviar notificações relacionadas às tarefas do Run Command registradas. Para ter mais informações, consulte Configurar o Maintenance Windows.

Se for necessário criar um perfil de serviço personalizado para tarefas de janela de manutenção, consulte Use o console para configurar permissões para janelas de manutenção.

Para anexar sua política iam:PassRole à função do Maintenance Windows
  1. Abra o console IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Roles (Funções) e selecione a função do IAM do Amazon SNS criada na Tarefa 3.

  3. Copie ou anote o Role ARN (ARN da função) e retorne à seção Roles (Funções) do console do IAM.

  4. Selecione a função de serviço personalizada Maintenance Windows que você criou na lista Role name (Nome da função).

  5. Na guia Permissions (Permissões), verifique se a política AmazonSSMMaintenanceWindowRole está listada ou se existe uma política comparável que dê permissão de janelas de manutenção à API do Systems Manager. Se não estiver, escolha Adicionar permissões, Anexar políticas para anexá-la.

  6. Escolha Add permissions, Create inline policy (Adicionar permissões, Criar política em linha).

  7. Selecione a guia Visual Editor (Editor visual).

  8. Para Service (Serviço), selecione IAM.

  9. Para Actions (Ações), na caixa de texto Filter actions (Filtrar ações), insira PassRole e selecione a caixa de verificação ao lado de PassRole.

  10. Em Resources (Recursos), escolha Specific (Específico) e Add ARN (Adicionar ARN).

  11. Na caixa Specify ARN for role (Especificar ARN para função), cole o ARN da função do IAM do Amazon SNS criada na Tarefa 3 e escolha Add (Adicionar).

  12. Escolha Revisar política.

  13. Na página Revisar política, especifique um nome para a política PassRole e, em seguida, escolha Criar política.