aws:approve – Pausa uma automação para aprovação manual - AWS Systems Manager

aws:approve – Pausa uma automação para aprovação manual

Pausa temporariamente uma automação, até que as entidades principais designadas aprovem ou rejeitem a ação. Depois que o número necessário de aprovações for atingido, a execução da automação será retomada. Você pode inserir a etapa de aprovação em qualquer lugar na seção mainSteps do runbook.

nota

Essa ação não é compatível com automações de várias contas e regiões. O tempo limite padrão para essa ação é de 7 dias (604.800 segundos) e o valor máximo é de 30 dias (2.592.000 segundos). Você pode limitar ou prolongar o tempo limite especificando o parâmetro timeoutSeconds para uma etapa aws:approve.

No exemplo a seguir, a ação aws:approve pausa temporariamente a automação até que um aprovador a aceite ou rejeite. Após a aprovação, a automação executa um comando simples do PowerShell.

YAML
--- description: RunInstancesDemo1 schemaVersion: '0.3' assumeRole: "{{ assumeRole }}" parameters: assumeRole: type: String message: type: String mainSteps: - name: approve action: aws:approve timeoutSeconds: 1000 onFailure: Abort inputs: NotificationArn: arn:aws:sns:us-east-2:12345678901:AutomationApproval Message: "{{ message }}" MinRequiredApprovals: 1 Approvers: - arn:aws:iam::12345678901:user/AWS-User-1 - name: run action: aws:runCommand inputs: InstanceIds: - i-1a2b3c4d5e6f7g DocumentName: AWS-RunPowerShellScript Parameters: commands: - date
JSON
{ "description":"RunInstancesDemo1", "schemaVersion":"0.3", "assumeRole":"{{ assumeRole }}", "parameters":{ "assumeRole":{ "type":"String" }, "message":{ "type":"String" } }, "mainSteps":[ { "name":"approve", "action":"aws:approve", "timeoutSeconds":1000, "onFailure":"Abort", "inputs":{ "NotificationArn":"arn:aws:sns:us-east-2:12345678901:AutomationApproval", "Message":"{{ message }}", "MinRequiredApprovals":1, "Approvers":[ "arn:aws:iam::12345678901:user/AWS-User-1" ] } }, { "name":"run", "action":"aws:runCommand", "inputs":{ "InstanceIds":[ "i-1a2b3c4d5e6f7g" ], "DocumentName":"AWS-RunPowerShellScript", "Parameters":{ "commands":[ "date" ] } } } ] }

É possível aprovar ou negar automações que estão aguardando aprovação no console.

Para aprovar ou negar automações em espera
  1. Abra o console AWS Systems Manager em https://console.aws.amazon.com/systems-manager/.

  2. No painel de navegação à esquerda, escolha Automation (Automação).

  3. Escolha a opção ao lado de uma automação com o status Waiting (Em espera).

    Acessar a página Approve/Deny Automation
  4. Escolha Approve/Deny (Aprovar/negar).

  5. Analise os detalhes da automação.

  6. Escolha Approve (Aprovar) ou Deny (Negar), digite um comentário opcional e escolha Submit (Enviar).

Exemplo de entrada

YAML
NotificationArn: arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest Message: Please approve this step of the Automation. MinRequiredApprovals: 3 Approvers: - IamUser1 - IamUser2 - arn:aws:iam::12345678901:user/IamUser3 - arn:aws:iam::12345678901:role/IamRole
JSON
{ "NotificationArn":"arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest", "Message":"Please approve this step of the Automation.", "MinRequiredApprovals":3, "Approvers":[ "IamUser1", "IamUser2", "arn:aws:iam::12345678901:user/IamUser3", "arn:aws:iam::12345678901:role/IamRole" ] }
NotificationArn

O tópico do nome do recurso da Amazon (ARN de um Amazon Simple Notification Service, Amazon SNS) para aprovações do Automation. Quando você especifica uma etapa aws:approve em um runbook, o Automation envia uma mensagem a esse tópico, permitindo que as entidades principais saibam se devem aprovar ou rejeitar uma etapa do Automation. O título do tópico do Amazon SNS deve ser prefixado com "Automation".

Tipo: string

Obrigatório: Não

Message

As informações que você deseja incluir no tópico do Amazon SNS quando a solicitação de aprovação é enviada. O comprimento máximo da mensagem é de 4096 caracteres.

Tipo: string

Obrigatório: Não

MinRequiredApprovals

O número mínimo de aprovações necessárias para retomar a automação. Se você não especificar um valor, o sistema assumirá 1 como padrão. O valor desse parâmetro deve ser um número positivo. O valor desse parâmetro não pode exceder o número de aprovadores definidas pelo parâmetro Approvers.

Tipo: número inteiro

Obrigatório: não

Approvers

Uma lista de entidades principais autenticadas da AWS que podem aprovar ou rejeitar a ação. O número máximo de aprovadores é 10. É possível especificar entidades principais usando qualquer um dos seguintes formatos:

  • Um nome de usuário

  • Um ARN do usuário

  • Um ARN de função do IAM

  • Um IAM assume o perfil do ARN

Tipo: StringList

Obrigatório: Sim

EnhancedApprovals

Essa entrada é usada somente para modelos do Change Manager. Uma lista de entidades principais autenticadas pela AWS que podem aprovar ou rejeitar a ação, o tipo de entidade principal do IAM e o número mínimo de aprovadores. Veja um exemplo a seguir:

schemaVersion: "0.3" emergencyChange: false autoApprovable: false mainSteps: - name: ApproveAction1 action: aws:approve timeoutSeconds: 604800 inputs: Message: Please approve this change request MinRequiredApprovals: 3 EnhancedApprovals: Approvers: - approver: John Stiles type: IamUser minRequiredApprovals: 0 - approver: Ana Carolina Silva type: IamUser minRequiredApprovals: 0 - approver: GroupOfThree type: IamGroup minRequiredApprovals: 0 - approver: RoleOfTen type: IamRole minRequiredApprovals: 0

Tipo: StringList

Obrigatório: Sim

Saída

ApprovalStatus

O status de aprovação da etapa. O status pode ser um dos seguintes: Approved, Rejected ou Waiting. Waiting significa que a Automação está aguardando a entrada de aprovadores.

Tipo: string

ApproverDecisions

Um mapa JSON que inclui a decisão de aprovação de cada aprovador.

Tipo: MapList