aws:approve: detener una automatización para la aprobación manual - AWS Systems Manager

aws:approve: detener una automatización para la aprobación manual

Detiene temporalmente una automatización hasta que las entidades principales designadas aprueben o rechacen la acción. Después de que se alcanza el número necesario de aprobaciones, se reanuda la automatización. Puede insertar el paso de aprobación en cualquier lugar de la sección mainSteps de su manual de procedimientos.

nota

Esta acción no admite automatizaciones de varias cuentas ni de regiones. El tiempo de espera predeterminado para esta acción es de 7 días (604 800 segundos) y el valor máximo es de 30 días (2 592 000 segundos). Puede limitar o ampliar el tiempo de espera mediante la especificación del parámetro timeoutSeconds para un paso aws:approve. Si el paso de Automation alcanza el valor del tiempo de espera antes de recibir todas las decisiones de aprobación necesarias, el paso y la instancia de Automation dejan de ejecutarse y se devuelve el estado Timed Out (Tiempo de espera agotado).

En el siguiente ejemplo, la acción aws:approve detiene temporalmente la automatización hasta que un aprobador la acepte o la rechace. Tras la aprobación, la automatización ejecuta un comando PowerShell sencillo.

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" ] } } } ] }

Puede aprobar o denegar las instancias de Automation pendientes de aprobación en la consola.

Para aprobar o denegar las automatizaciones en espera
  1. Abra la consola de AWS Systems Manager en https://console.aws.amazon.com/systems-manager/.

  2. En el panel de navegación, elija automatización.

  3. Elija la opción junto a una automatización cuyo estado sea En espera.

    Acceso a la página Approve/Deny Automation (Aprobar/Denegar Automation)
  4. Elija Aprobar/Denegar.

  5. Revise los detalles de Automation.

  6. Elija Aprobar o Denegar, escriba un comentario opcional y, a continuación, elija Enviar.

Ejemplo 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

El nombre de recurso de Amazon (ARN) de un tema de Amazon Simple Notification Service (Amazon SNS) para aprobaciones de Automation. Al especificar un paso aws:approve en un manual de procedimientos, Automation envía un mensaje a este tema con el cual se informa a las entidades principales que deben aprobar o rechazar un paso de Automation. El título del tema de Amazon SNS debe tener el prefijo “Automation”.

Tipo: cadena

Requerido: no

Mensaje

La información que desea incluir en el tema de Amazon SNS cuando se envía la solicitud de aprobación. La longitud máxima del mensaje es de 4096 caracteres.

Tipo: cadena

Requerido: no

MinRequiredApprovals

El número mínimo de aprobaciones requeridas para reanudar la automatización. Si no especifica un valor, el sistema utiliza el valor predeterminado de uno. El valor de este parámetro debe ser un número positivo. El valor de este parámetro no puede superar el número de aprobadores definidos por el parámetro Approvers.

Tipo: entero

Requerido: no

Approvers

Una lista de entidades principales autenticadas de AWS que pueden aprobar o rechazar la acción. El número máximo de aprobadores es 10. Puede especificar entidades principales mediante cualquiera de los formatos siguientes:

  • Un nombre de usuario

  • Un ARN de usuario

  • un ARN de rol de IAM

  • Un ARN de rol de asunción de IAM

Tipo: StringList

Obligatorio: sí

EnhancedApprovals

Esta entrada solo se utiliza para las plantillas de Change Manager. Una lista de las entidades principales autenticadas de AWS que pueden aprobar o rechazar la acción, el tipo de entidad principal de IAM y el número mínimo de aprobadores. A continuación, se muestra un ejemplo:

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

Obligatorio: sí

Salida

ApprovalStatus

El estado de aprobación del paso. El estado puede ser uno de los siguientes: Approved, Rejected o Waiting. "Waiting" significa que Automation está esperando la entrada de los aprobadores.

Tipo: cadena

ApproverDecisions

Un mapa JSON que incluye la decisión de aprobación de cada aprobador.

Tipo: MapList