Executar uma automação - AWS Systems Manager

Executar uma automação

Ao executar uma automação, por padrão, a automação será executada no contexto do usuário que iniciou a automação. Isso significa, por exemplo, que se o usuário tiver permissões de administrador, a automação será executada com permissões de administrador e acesso total aos recursos que estão sendo configurados pela automação. Como uma prática recomendada de segurança, sugerimos que você execute a automação usando um perfil de serviço do IAM, nesse caso, conhecido como o perfil assumir, que é configurado com a política gerenciada AmazonSSMAutomationRole. Talvez seja necessário adicionar outras políticas do IAM ao seu perfil assumir para usar vários runbooks. O uso de uma função de serviço do IAM para executar a automação é chamado de administração delegada.

Quando você usa uma função de serviço, a automação tem permissão para ser executada nos recursos da AWS, mas o usuário que executou a automação tem acesso restrito (ou nenhum acesso) a esses recursos. Por exemplo, é possível configurar uma função de serviço e usá-la com o Automation para reiniciar uma ou mais instâncias do Amazon Elastic Compute Cloud (Amazon EC2). O Automation é um recurso do AWS Systems Manager. A automação reinicia as instâncias, mas a função do serviço não concede permissão ao usuário para acessar essas instâncias.

Você pode especificar uma função de serviço em runtime ao executar uma automação ou você pode criar runbooks personalizados e especificar a função de serviço diretamente no runbook. Se você especificar uma função de serviço, seja em runtime ou em um runbook, o serviço será executado no contexto da função de serviço especificada. Se você não especificar uma função de serviço, o sistema criará uma sessão temporária no contexto do usuário e executará a automação.

nota

Especifique uma função de serviço para as automações que você espera que sejam executadas por mais de 12 horas. Se você iniciar uma automação de execução prolongada no contexto de um usuário, a sessão temporária do usuário expirará após 12 horas.

A administração delegada garante segurança e controle elevados de seus recursos da AWS. Isso também permite uma experiência de auditoria aprimorada, pois as ações estão sendo executadas nos recursos por uma função de serviço central em vez de várias contas do IAM.

Antes de começar

Antes de concluir o procedimento a seguir, você deve criar a função de serviço do IAM e configurar uma relação de confiança para a Automação, um recurso do AWS Systems Manager. Para ter mais informações, consulte Tarefa 1: Criar uma função de serviço para a automação.

Os procedimentos a seguir descrevem como usar o console do Systems Manager ou a ferramenta de linha de comando de sua preferência para executar uma automação simples.

Executar uma automação simples (console)

O procedimento a seguir descreve como usar o console do Systems Manager para executar uma automação simples.

Para executar uma automação simples
  1. Abra o console AWS Systems Manager em https://console.aws.amazon.com/systems-manager/.

  2. No painel de navegação, selecione Automation e Execute automation (Executar automação).

  3. Na lista Automation document (Documento do Automation), escolha um runbook. Escolha uma ou mais opções no painel Document categories (Categorias de documentos) para filtrar documentos SSM de acordo com sua finalidade. Para visualizar um runbook que você tenha, escolha a guia Owned by me (De minha propriedade). Para visualizar um runbook compartilhado com sua conta, escolha a guia Shared with me (Compartilhado comigo). Para visualizar todos os runbooks, escolha a guia All documents (Todos os documentos).

    nota

    Você pode visualizar informações sobre um runbook, selecionando o nome dele.

  4. Na seção Document details (Detalhes do documento), verifique se Document version (Versão do documento) está definida como a versão que você quer executar. O sistema inclui as seguintes opções de versão:

    • Versão padrão no runtime: escolha essa opção se o runbook do Automation for atualizado periodicamente e uma nova versão padrão for atribuída.

    • Versão mais recente no runtime: escolha essa opção se o runbook do Automation for atualizado periodicamente e se você quiser executar a versão mais recente.

    • 1 (padrão): escolha esta opção para executar a primeira versão do documento, que é a versão padrão.

  5. Escolha Próximo.

  6. Na seção Execution mode (Modo de execução), escolha Simple execution (Execução simples).

  7. Na seção Input parameters (Parâmetros de entrada), especifique as entradas necessárias. Opcionalmente, você pode escolher uma função de serviço do IAM na lista AutomationAssumeRole.

  8. (Opcional) Escolha um alarme do CloudWatch a fim de aplicar à sua automação para monitoramento. Para anexar um alarme do CloudWatch à sua automação, a entidade principal do IAM que inicia a automação deve ter permissão para a ação iam:createServiceLinkedRole. Para obter mais informações sobre alarmes do CloudWatch, consulte Usar alarmes do Amazon CloudWatch. Observe que a automação será interrompida se o alarme for ativado. Se você usar o AWS CloudTrail, você verá a chamada de API em sua trilha.

  9. Clique em Executar.

O console exibe o status da automação. Se houver falha na execução da automação, consulte Solução de problemas do Systems Manager Automation.

Executar uma automação simples (linha de comando)

O procedimento a seguir descreve como usar a AWS CLI (no Linux ou no Windows) ou o AWS Tools for PowerShell para executar uma automação simples.

Para executar uma automação simples
  1. Instale e configure a AWS CLI ou o AWS Tools for PowerShell, caso ainda não o tenha feito.

    Para obter informações, consulte Instalar ou atualizar a versão mais recente da AWS CLI e Instalar o AWS Tools for PowerShell.

  2. Execute o comando a seguir para iniciar uma automação simples. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --parameters runbook parameters
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --parameters runbook parameters
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName runbook name ` -Parameter runbook parameters

    Este é um exemplo que usa o runbook AWS-RestartEC2Instance para reiniciar a instância do EC2 especificada.

    Linux & macOS
    aws ssm start-automation-execution \ --document-name "AWS-RestartEC2Instance" \ --parameters "InstanceId=i-02573cafcfEXAMPLE"
    Windows
    aws ssm start-automation-execution ^ --document-name "AWS-RestartEC2Instance" ^ --parameters "InstanceId=i-02573cafcfEXAMPLE"
    PowerShell
    Start-SSMAutomationExecution ` -DocumentName AWS-RestartEC2Instance ` -Parameter @{"InstanceId"="i-02573cafcfEXAMPLE"}

    O sistema retorna informações como estas.

    Linux & macOS
    {
        "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
    }
    Windows
    {
        "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
    }
    PowerShell
    4105a4fc-f944-11e6-9d32-0123456789ab
  3. Execute o comando a seguir para recuperar o status da automação.

    Linux & macOS
    aws ssm describe-automation-executions \ --filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
    Windows
    aws ssm describe-automation-executions ^ --filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
    PowerShell
    Get-SSMAutomationExecutionList | ` Where {$_.AutomationExecutionId -eq "4105a4fc-f944-11e6-9d32-0123456789ab"}

    O sistema retorna informações como estas.

    Linux & macOS
    {
        "AutomationExecutionMetadataList": [
            {
                "AutomationExecutionStatus": "InProgress",
                "CurrentStepName": "stopInstances",
                "Outputs": {},
                "DocumentName": "AWS-RestartEC2Instance",
                "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
                "DocumentVersion": "1",
                "ResolvedTargets": {
                    "ParameterValues": [],
                    "Truncated": false
                },
                "AutomationType": "Local",
                "Mode": "Auto",
                "ExecutionStartTime": 1564600648.159,
                "CurrentAction": "aws:changeInstanceState",
                "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
                "LogFile": "",
                "Targets": []
            }
        ]
    }
    Windows
    {
        "AutomationExecutionMetadataList": [
            {
                "AutomationExecutionStatus": "InProgress",
                "CurrentStepName": "stopInstances",
                "Outputs": {},
                "DocumentName": "AWS-RestartEC2Instance",
                "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
                "DocumentVersion": "1",
                "ResolvedTargets": {
                    "ParameterValues": [],
                    "Truncated": false
                },
                "AutomationType": "Local",
                "Mode": "Auto",
                "ExecutionStartTime": 1564600648.159,
                "CurrentAction": "aws:changeInstanceState",
                "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
                "LogFile": "",
                "Targets": []
            }
        ]
    }
    PowerShell
    AutomationExecutionId       : 4105a4fc-f944-11e6-9d32-0123456789ab
    AutomationExecutionStatus   : InProgress
    AutomationType              : Local
    CurrentAction               : aws:changeInstanceState
    CurrentStepName             : startInstances
    DocumentName                : AWS-RestartEC2Instance
    DocumentVersion             : 1
    ExecutedBy                  : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
    ExecutionEndTime            : 1/1/0001 12:00:00 AM
    ExecutionStartTime          : 7/31/2019 7:17:28 PM
    FailureMessage              : 
    LogFile                     : 
    MaxConcurrency              : 
    MaxErrors                   : 
    Mode                        : Auto
    Outputs                     : {}
    ParentAutomationExecutionId : 
    ResolvedTargets             : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
    Target                      : 
    TargetMaps                  : {}
    TargetParameterName         : 
    Targets                     : {}