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
-
Failed (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. notaOs 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.
Tópicos
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
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
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).
-
Selecione a guia JSON.
-
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, comous-east-2
para a região Leste dos EUA (Ohio). Para ver uma lista dos valores deregião
com suporte, consulte a coluna Region em Systems Manager service endpoints no Referência geral da Amazon Web Services.
representa o identificador de 12 dígitos para a Conta da AWS, no formatoaccount-id
123456789012
.sns-topic-name
representa o nome do tópico do Amazon SNS que você deseja usar para publicar notificações. -
Escolha Próximo: tags.
-
(Opcional) Adicione um ou mais pares de chave-valor de etiqueta para organizar, monitorar ou controlar acesso para essa política.
-
Selecione Next: Review (Próximo: revisar).
-
Na página Revisar política, em Nome, digite um nome para a política em linha. Por exemplo:
my-sns-publish-permissions
. -
(Opcional) Em Descrição, digite uma descrição para a política.
-
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
Faça login no AWS Management Console e abra o console do IAM, em https://console.aws.amazon.com/iam/
. -
No painel de navegação do console do IAM, escolha Perfis e, em seguida, Criar perfil.
-
Escolha o tipo de perfil de AWS service (Serviço da AWS) e, em seguida, selecione o Systems Manager.
-
Escolha o caso de uso do Systems Manager. Em seguida, escolha Próximo.
-
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
. -
(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.
-
Escolha Próximo.
-
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 perfis denominados
PRODROLE
eprodrole
. Como várias entidades podem fazer referência à função, não é possível editar o nome da função depois que ela é criada. -
(Opcional) Em Descrição da função, insira uma descrição para a nova função.
-
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.
-
(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.
-
Revise a função e escolha Criar perfil.
-
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.
-
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:
-
A política gerenciada
AmazonSSMFullAccess
ou uma política que forneça permissões comparáveis. -
As permissões
iam:PassRole
para o perfil criado em Tarefa 3: Criar uma função do IAM para notificações do Amazon SNS. Por exemplo:
{ "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:
-
Usuários e grupos no AWS IAM Identity Center:
Crie um conjunto de permissões. Siga as instruções em Criação de um conjunto de permissões no Guia do usuário do AWS IAM Identity Center.
-
Usuários gerenciados no IAM com provedor de identidades:
Crie um perfil para a federação de identidades. Siga as instruções em Criar um perfil para um provedor de identidade de terceiros (federação) no Guia do usuário do IAM.
-
Usuários do IAM:
-
Crie um perfil que seu usuário possa assumir. Siga as instruções em Criar de um perfil para um usuário do IAM no Guia do usuário do IAM.
-
(Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em Adição de permissões a um usuário (console) no Guia do usuário do IAM.
-
Para configurar acesso de usuário e anexar a política iam:PassRole
a uma conta de usuário
-
No painel de navegação do IAM, escolha Users (Usuários) e selecione a conta de usuário que deseja configurar.
-
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. -
Escolha Add inline policy (Adicionar política em linha).
-
Na página Create policy (Criar política), selecione a guia Visual editor (Editor visual).
-
Selecione Choose a service (Escolher um serviço) e, em seguida, IAM.
-
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. -
Em Resources (Recursos), verifique se Specific (Específico) está selecionado e, em seguida, selecione Add ARN (Adicionar ARN).
-
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).
-
Escolha Add (Adicionar).
-
Escolha Review policy (Revisar política).
-
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 Configurar o Maintenance Windows.
Para anexar sua política iam:PassRole
à função do Maintenance Windows
-
Abra o console do IAM, em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Roles (Funções) e selecione a função do IAM do Amazon SNS criada na Tarefa 3.
-
Copie ou anote o Role ARN (ARN da função) e retorne à seção Roles (Funções) do console do IAM.
-
Selecione a função de serviço personalizada Maintenance Windows que você criou na lista Role name (Nome da função).
-
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. -
Escolha Add permissions, Create inline policy (Adicionar permissões, Criar política em linha).
-
Selecione a guia Visual Editor (Editor visual).
-
Para Service (Serviço), selecione IAM.
-
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. -
Em Resources (Recursos), escolha Specific (Específico) e Add ARN (Adicionar ARN).
-
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).
-
Selecione Revisar política.
-
Na página Revisar política, especifique um nome para a política
PassRole
e, em seguida, escolha Criar política.