

• O AWS Systems Manager CloudWatch Dashboard não estará mais disponível a partir de 30 de abril de 2026. Os clientes podem continuar usando o console do Amazon CloudWatch para visualizar, criar e gerenciar os painéis do Amazon CloudWatch exatamente como fazem hoje. Para obter mais informações, consulte a [documentação do Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Tutoriais
<a name="automation-tutorials"></a>

Os tutoriais a seguir ajudam você a usar o AWS Systems Manager Automation para lidar com casos de uso comuns. Esses tutoriais demonstram como usar seus próprios runbooks, runbooks predefinidos fornecidos pelo Automation e outras ferramentas do Systems Manager com outros Serviços da AWS.

**Contents**
+ [

# Atualizar o AMIs
](automation-tutorial-update-ami.md)
  + [

# Atualizar uma AMI Linux
](automation-tutorial-update-patch-linux-ami.md)
  + [

## Atualizar uma AMI (AWS CLI) Linux
](automation-tutorial-update-ami.md#update-patch-linux-ami-cli)
  + [

# Atualizar uma AMI Windows Server
](automation-tutorial-update-patch-windows-ami.md)
  + [

# Atualize uma AMI dourada usando Automation, AWS Lambda e Parameter Store
](automation-tutorial-update-patch-golden-ami.md)
    + [

## Tarefa 1: Criar um parâmetro no Systems Manager () Parameter Store
](automation-tutorial-update-patch-golden-ami.md#create-parameter-ami)
    + [

## Tarefa 2: Criar uma função do IAM para o AWS Lambda
](automation-tutorial-update-patch-golden-ami.md#create-lambda-role)
    + [

## Tarefa 3: Criar uma função do AWS Lambda
](automation-tutorial-update-patch-golden-ami.md#create-lambda-function)
    + [

## Tarefa 4: Criar um runbook e aplicar patches à AMI
](automation-tutorial-update-patch-golden-ami.md#create-custom-ami-update-runbook)
  + [

# Atualizar AMIs usando o Automation e Jenkins
](automation-tutorial-update-patch-ami-jenkins-integration.md)
  + [

# Atualização de AMIs para grupos do Auto Scaling
](automation-tutorial-update-patch-windows-ami-autoscaling.md)
    + [

## Criar o runbook **PatchAMIAndUpdateASG**
](automation-tutorial-update-patch-windows-ami-autoscaling.md#create-autoscaling-update-runbook)
+ [

# Uso de runbooks de autoatendimento do AWS Support
](automation-tutorial-support-runbooks.md)
  + [

# Executar a ferramenta EC2Rescue em instâncias inacessíveis
](automation-ec2rescue.md)
    + [

## Como funciona
](automation-ec2rescue.md#automation-ec2rescue-how)
    + [

## Antes de começar
](automation-ec2rescue.md#automation-ec2rescue-begin)
      + [

### Conceder permissões ao `AWSSupport-EC2Rescue` para realizar ações nas instâncias
](automation-ec2rescue.md#automation-ec2rescue-access)
        + [

#### Conceder permissões usando políticas do IAM
](automation-ec2rescue.md#automation-ec2rescue-access-iam)
        + [

#### Conceder permissões usando um modelo do CloudFormation
](automation-ec2rescue.md#automation-ec2rescue-access-cfn)
    + [

## Executar a Automação
](automation-ec2rescue.md#automation-ec2rescue-executing)
  + [

# Redefinir senhas e chaves SSH em instâncias do EC2
](automation-ec2reset.md)
    + [

## Como funciona
](automation-ec2reset.md#automation-ec2reset-how)
    + [

## Antes de começar
](automation-ec2reset.md#automation-ec2reset-begin)
      + [

### Conceder a AWSSupport-EC2Rescue permissões para realizar ações em suas instâncias
](automation-ec2reset.md#automation-ec2reset-access)
        + [

#### Conceder permissões usando políticas do IAM
](automation-ec2reset.md#automation-ec2reset-access-iam)
        + [

#### Conceder permissões usando um modelo do CloudFormation
](automation-ec2reset.md#automation-ec2reset-access-cfn)
    + [

## Executar a Automação
](automation-ec2reset.md#automation-ec2reset-executing)
+ [

# Transferência de dados para o Automation usando transformadores de entrada
](automation-tutorial-eventbridge-input-transformers.md)

# Atualizar o AMIs
<a name="automation-tutorial-update-ami"></a>

Os tutoriais a seguir explicam como atualizar as Amazon Machine Image (AMIs) para incluir os patches mais recentes.

**Topics**
+ [

# Atualizar uma AMI Linux
](automation-tutorial-update-patch-linux-ami.md)
+ [

## Atualizar uma AMI (AWS CLI) Linux
](#update-patch-linux-ami-cli)
+ [

# Atualizar uma AMI Windows Server
](automation-tutorial-update-patch-windows-ami.md)
+ [

# Atualize uma AMI dourada usando Automation, AWS Lambda e Parameter Store
](automation-tutorial-update-patch-golden-ami.md)
+ [

# Atualizar AMIs usando o Automation e Jenkins
](automation-tutorial-update-patch-ami-jenkins-integration.md)
+ [

# Atualização de AMIs para grupos do Auto Scaling
](automation-tutorial-update-patch-windows-ami-autoscaling.md)

# Atualizar uma AMI Linux
<a name="automation-tutorial-update-patch-linux-ami"></a>

Esta demonstração do Systems Manager Automation mostra como usar o console ou a AWS CLI e o runbook `AWS-UpdateLinuxAmi` para atualizar uma AMI Linux com as versões mais atualizadas dos pacotes especificados. O Automation é uma ferramenta do AWS Systems Manager. O runbook `AWS-UpdateLinuxAmi` também automatiza a instalação de pacotes e configurações adicionais específicos de sites. Você pode atualizar várias distribuições do Linux usando esta demonstração, incluindo Ubuntu Server, Red Hat Enterprise Linux (RHEL) ou Amazon Linux AMIs. Para obter uma lista completa das versões compatíveis do Linux, consulte [Pré-requisitos do Patch Manager](patch-manager-prerequisites.md).

O runbook `AWS-UpdateLinuxAmi` permite automatizar tarefas de manutenção de imagens sem precisar criar o runbook em JSON ou YAML. Você pode usar o runbook `AWS-UpdateLinuxAmi` para realizar os seguintes tipos de tarefas:
+ Atualize todos os pacotes de distribuição e software da Amazon em um Amazon Linux, Red Hat Enterprise Linux ou Ubuntu Server Amazon Machine Image (AMI). Esse é o comportamento padrão do runbook.
+ Instale o AWS Systems Manager SSM Agent em uma imagem existente para habilitar ferramentas do Systems Manager, como a execução remota de comandos usando o AWS Systems Manager Run Command ou a coleta de inventário de software usando o Inventory.
+ Instalar pacotes de software adicionais.

**Antes de começar**  
Antes de começar a trabalhar com runbooks, configure funções e, opcionalmente, o EventBridge para o Automation. Para obter mais informações, consulte [Configurar a automação](automation-setup.md). Esta demonstração também requer que você especifique o nome de um perfil de instância do AWS Identity and Access Management (IAM). Para obter mais informações sobre como criar um perfil de instância do IAM, consulte [Configurar permissões de instância obrigatórias para o Systems Manager](setup-instance-permissions.md).

O runbook `AWS-UpdateLinuxAmi` aceita os seguintes parâmetros de entrada:


****  

| Parâmetro | Tipo | Descrição | 
| --- | --- | --- | 
|  SourceAmiId  |  String  |  (Obrigatório) O ID da AMI de origem.  | 
|  IamInstanceProfileName  |  String  |  (Obrigatório) O nome do perfil para o perfil de instância do IAM criado em [Configurar permissões de instância obrigatórias para o Systems Manager](setup-instance-permissions.md). A função de perfil de instância concede ao Automation permissão para realizar ações em suas instâncias, como executar comandos ou iniciar e interromper serviços. O runbook usa apenas o nome da função de perfil da instância. Se você especificar o nome do recurso da Amazon (ARN), a automação falhará.  | 
|  AutomationAssumeRole  |  String  |  (Obrigatório) O nome da função de serviço do IAM que você criou em [Configurar a automação](automation-setup.md). A função de serviço (também chamada de função assumida) concede ao Automation permissão para assumir sua função do IAM e realizar ações em seu nome. Por exemplo, a função de serviço permite que o Automation crie uma nova AMI ao executar a ação `aws:createImage` em um runbook. Para esse parâmetro, o ARN completo deve ser especificado.  | 
|  TargetAmiName  |  String  |  (Opcional) O nome da nova AMI após a sua criação. O nome padrão é uma string gerada pelo sistema que inclui o ID da AMI de origem, bem como a data e a hora de criação.  | 
|  InstanceType  |  String  |  (Opcional) O tipo de instância a ser executada como o host do espaço de trabalho. Os tipos de instância variam de acordo com a região. O tipo padrão é t2.micro.  | 
|  PreUpdateScript  |  String  |  (Opcional) URL de um script a ser executado antes de as atualizações serem aplicadas. O padrão (\$1"none\$1") é não executar um script.  | 
|  PostUpdateScript  |  String  |  (Opcional) URL de um script a ser executado depois de as atualizações de pacote serem aplicadas. O padrão (\$1"none\$1") é não executar um script.  | 
|  IncludePackages  |  String  |  (Opcional) Somente atualiza esses pacotes nomeados. Por padrão (\$1"all\$1"), todas as atualizações disponíveis são aplicadas.  | 
|  ExcludePackages  |  String  |  (Opcional) Nomes de pacotes para evitar atualizações, em todas as condições. Por padrão (\$1"none\$1"), nenhum pacote é excluído.  | 

**Etapas da Automação**  
O runbook `AWS-UpdateLinuxAmi` inclui as seguintes ações de automação, por padrão.

**Etapa 1: launchInstance (ação `aws:runInstances`) **  
Esta etapa executa uma instância usando dados de usuário do Amazon Elastic Compute Cloud (Amazon EC2) e uma função de perfil de instância do IAM. Os dados de usuário instalam o SSM Agent apropriado, com base no sistema operacional. Instalar o SSM Agent permite que você utilize ferramentas do Systems Manager como Run Command, State Manager e Inventory.

**Etapa 2: updateOSSoftware (ação `aws:runCommand`) **  
Essa etapa executa os seguintes comandos na instância executada:  
+ Baixa um script de atualização do Amazon S3.
+ Executa um script de pré-atualização opcional.
+ Atualiza pacotes de distribuição e softwares da Amazon.
+ Executa um script de pós-atualização opcional.
O log de execução é armazenado na pasta /tmp para que o usuário possa visualizá-lo mais tarde.  
Se quiser atualizar um conjunto específico de pacotes, forneça a lista usando o parâmetro `IncludePackages`. Quando essa lista é fornecida, o sistema tenta atualizar somente esses pacotes e suas dependências. Nenhuma outra atualização é realizada. Por padrão, quando nenhum pacote de *inclusão* é especificado, o programa atualiza todos os pacotes disponíveis.  
Se quiser excluir a atualização de um conjunto específico de pacotes, forneça a lista ao parâmetro `ExcludePackages`. Se essa lista for fornecida, os pacotes permanecerão na sua versão atual, independentemente de qualquer outra opção especificada. Por padrão, quando nenhum pacote de *exclusão* é especificado, nenhum pacote é excluído.

**Etapa 3: stopInstance (ação `aws:changeInstanceState`)**  
Essa etapa interrompe a instância atualizada.

**Etapa 4: createImage (ação `aws:createImage`) **  
Essa etapa cria uma nova AMI com um nome descritivo que a vincula ao ID de origem e ao horário de criação. Por exemplo: “AMI Gerado pelo EC2 Automation em \$1\$1global:DATE\$1TIME\$1\$1 do \$1\$1SourceAmiId\$1\$1” DATE\$1TIME e SourceID representam variáveis do Automation.

**Etapa 5: terminateInstance (ação `aws:changeInstanceState`) **  
Essa etapa limpa a automação, encerrando a instância em execução.

**Output**  
A automação retorna o novo ID da AMI como resultado.

**nota**  
Por padrão, quando o Automation executa o runbook `AWS-UpdateLinuxAmi`, o sistema cria uma instância temporária na VPC padrão (172.30.0.0/16). Se tiver excluído a VPC padrão, você receberá o seguinte erro:  
`VPC not defined 400`  
Para resolver esse problema, você deve fazer uma cópia do runbook `AWS-UpdateLinuxAmi` e especificar um ID de sub-rede. Para obter mais informações, consulte [VPC não definida 400](automation-troubleshooting.md#automation-trbl-common-vpc).

**Para criar uma AMI com patch aplicado usando o Automation (AWS Systems Manager)**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

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

1. Escolha **Execute automation**.

1. Na lista **Automation document** (Documento de automação), escolha `AWS-UpdateLinuxAmi`.

1. Na seção **Detalhes do documento**, verifique se a **Versão do documento** está definida como **Versão padrão no runtime**.

1. Escolha **Próximo**.

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

1. Na seção **Input parameters** (Parâmetros de entrada), insira as informações coletadas na seção **Before you begin** (Antes de começar).

1. Escolha **Executar**. O console exibe o status de execução da Automação.

Após a conclusão da automação, execute uma instância de teste da AMI atualizada para verificar as alterações.

**nota**  
Se alguma etapa da automação falhar, as informações sobre a falha serão listadas na página **Automation Executions** (Execuções do Automation). A automação foi concebida para terminar a instância temporária após a conclusão bem-sucedida de todas as tarefas. Se uma etapa falhar, o sistema talvez não encerre a instância. Então, se uma etapa falhar, encerre manualmente a instância temporária.

## Atualizar uma AMI (AWS CLI) Linux
<a name="update-patch-linux-ami-cli"></a>

Esta demonstração do AWS Systems Manager Automation mostra como usar a AWS Command Line Interface (AWS CLI) e o runbook `AWS-UpdateLinuxAmi` do Systems Manager para aplicar patches automaticamente a uma Amazon Machine Image (AMI) do Linux com as versões mais atualizadas dos pacotes especificados. O Automation é uma ferramenta do AWS Systems Manager. O runbook `AWS-UpdateLinuxAmi` também automatiza a instalação de pacotes e configurações adicionais específicos de sites. Você pode atualizar várias distribuições do Linux usando esta demonstração, incluindo Ubuntu Server, Red Hat Enterprise Linux (RHEL) ou Amazon Linux AMIs. Para obter uma lista completa das versões compatíveis do Linux, consulte [Pré-requisitos do Patch Manager](patch-manager-prerequisites.md).

O runbook `AWS-UpdateLinuxAmi` permite automatizar tarefas de manutenção de imagens sem precisar criar o runbook em JSON ou YAML. Você pode usar o runbook `AWS-UpdateLinuxAmi` para realizar os seguintes tipos de tarefas:
+ Atualize todos os pacotes de distribuição e software da Amazon em um Amazon Linux, RHEL ou Ubuntu Server Amazon Machine Image (AMI). Esse é o comportamento padrão do runbook.
+ Instale o AWS Systems Manager SSM Agent em uma imagem existente para habilitar os recursos do Systems Manager, como a execução remota de comandos usando o AWS Systems Manager Run Command ou a coleta de inventário de software usando o Inventory.
+ Instalar pacotes de software adicionais.

**Antes de começar**  
Antes de começar a trabalhar com runbooks, configure funções e, opcionalmente, o EventBridge para o Automation. Para obter mais informações, consulte [Configurar a automação](automation-setup.md). Esta demonstração também requer que você especifique o nome de um perfil de instância do AWS Identity and Access Management (IAM). Para obter mais informações sobre como criar um perfil de instância do IAM, consulte [Configurar permissões de instância obrigatórias para o Systems Manager](setup-instance-permissions.md).

O runbook `AWS-UpdateLinuxAmi` aceita os seguintes parâmetros de entrada:


****  

| Parameter | Tipo | Descrição | 
| --- | --- | --- | 
|  SourceAmiId  |  String  |  (Obrigatório) O ID da AMI de origem. Você pode fazer referência automaticamente ao ID mais recente de uma AMI do Amazon EC2 para Linux usando um parâmetro *público* do AWS Systems Manager Parameter Store . Para obter mais informações, consulte [Consultar os IDs de AMI do Amazon Linux mais recentes usando o AWS Systems Manager Parameter Store](https://aws.amazon.com/blogs/compute/query-for-the-latest-amazon-linux-ami-ids-using-aws-systems-manager-parameter-store/).  | 
|  IamInstanceProfileName  |  String  |  (Obrigatório) O nome do perfil para o perfil de instância do IAM criado em [Configurar permissões de instância obrigatórias para o Systems Manager](setup-instance-permissions.md). A função de perfil de instância concede ao Automation permissão para realizar ações em suas instâncias, como executar comandos ou iniciar e interromper serviços. O runbook usa apenas o nome da função de perfil da instância.  | 
|  AutomationAssumeRole  |  String  |  (Obrigatório) O nome da função de serviço do IAM que você criou em [Configurar a automação](automation-setup.md). A função de serviço (também chamada de função assumida) concede ao Automation permissão para assumir sua função do IAM e realizar ações em seu nome. Por exemplo, a função de serviço permite que o Automation crie uma nova AMI ao executar a ação `aws:createImage` em um runbook. Para esse parâmetro, o ARN completo deve ser especificado.  | 
|  TargetAmiName  |  String  |  (Opcional) O nome da nova AMI após a sua criação. O nome padrão é uma string gerada pelo sistema que inclui o ID da AMI de origem, bem como a data e a hora de criação.  | 
|  InstanceType  |  String  |  (Opcional) O tipo de instância a ser executada como o host do espaço de trabalho. Os tipos de instância variam de acordo com a região. O tipo padrão é t2.micro.  | 
|  PreUpdateScript  |  String  |  (Opcional) URL de um script a ser executado antes de as atualizações serem aplicadas. O padrão (\$1"none\$1") é não executar um script.  | 
|  PostUpdateScript  |  String  |  (Opcional) URL de um script a ser executado depois de as atualizações de pacote serem aplicadas. O padrão (\$1"none\$1") é não executar um script.  | 
|  IncludePackages  |  String  |  (Opcional) Somente atualiza esses pacotes nomeados. Por padrão (\$1"all\$1"), todas as atualizações disponíveis são aplicadas.  | 
|  ExcludePackages  |  String  |  (Opcional) Nomes de pacotes para evitar atualizações, em todas as condições. Por padrão (\$1"none\$1"), nenhum pacote é excluído.  | 

**Etapas da Automação**  
O runbook `AWS-UpdateLinuxAmi` inclui as seguintes etapas, por padrão.

**Etapa 1: launchInstance (ação `aws:runInstances`) **  
Esta etapa executa uma instância usando dados de usuário do Amazon Elastic Compute Cloud (Amazon EC2) e uma função de perfil de instância do IAM. Os dados de usuário instalam o SSM Agent apropriado, com base no sistema operacional. Instalar o SSM Agent permite que você utilize ferramentas do Systems Manager como Run Command, State Manager e Inventory.

**Etapa 2: updateOSSoftware (ação `aws:runCommand`) **  
Essa etapa executa os seguintes comandos na instância executada:  
+ Baixe um script de atualização do Amazon Simple Storage Service (Amazon S3).
+ Executa um script de pré-atualização opcional.
+ Atualiza pacotes de distribuição e softwares da Amazon.
+ Executa um script de pós-atualização opcional.
O log de execução é armazenado na pasta /tmp para que o usuário possa visualizá-lo mais tarde.  
Se quiser atualizar um conjunto específico de pacotes, forneça a lista usando o parâmetro `IncludePackages`. Quando essa lista é fornecida, o sistema tenta atualizar somente esses pacotes e suas dependências. Nenhuma outra atualização é realizada. Por padrão, quando nenhum pacote de *inclusão* é especificado, o programa atualiza todos os pacotes disponíveis.  
Se quiser excluir a atualização de um conjunto específico de pacotes, forneça a lista ao parâmetro `ExcludePackages`. Se essa lista for fornecida, os pacotes permanecerão na sua versão atual, independentemente de qualquer outra opção especificada. Por padrão, quando nenhum pacote de *exclusão* é especificado, nenhum pacote é excluído.

**Etapa 3: stopInstance (ação `aws:changeInstanceState`)**  
Essa etapa interrompe a instância atualizada.

**Etapa 4: createImage (ação `aws:createImage`) **  
Essa etapa cria uma nova AMI com um nome descritivo que a vincula ao ID de origem e ao horário de criação. Por exemplo: “AMI Generated by EC2 Automation on \$1\$1global:DATE\$1TIME\$1\$1 from \$1\$1SourceAmiId\$1\$1” em que DATE\$1TIME e SourceID representam variáveis de Automação.

**Etapa 5: terminateInstance (ação `aws:changeInstanceState`) **  
Essa etapa limpa a automação, encerrando a instância em execução.

**Saída**  
A automação retorna o novo ID da AMI como resultado.

**nota**  
Por padrão, quando o Automation executa o runbook `AWS-UpdateLinuxAmi`, o sistema cria uma instância temporária na VPC padrão (172.30.0.0/16). Se tiver excluído a VPC padrão, você receberá o seguinte erro:  
`VPC not defined 400`  
Para resolver esse problema, você deve fazer uma cópia do runbook `AWS-UpdateLinuxAmi` e especificar um ID de sub-rede. Para obter mais informações, consulte [VPC não definida 400](automation-troubleshooting.md#automation-trbl-common-vpc).

**Para criar uma AMI com patch aplicado usando o Automation**

1. Instale e configure a AWS Command Line Interface (AWS CLI), caso ainda não o tenha feito.

   Para obter informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Execute o comando a seguir para executar o runbook `AWS-UpdateLinuxAmi`. Substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações.

   ```
   aws ssm start-automation-execution \
       --document-name "AWS-UpdateLinuxAmi" \
       --parameters \
       SourceAmiId=AMI ID, \
       IamInstanceProfileName=IAM instance profile, \
       AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole'
   ```

   O comando retorna um ID de execução. Copie esse ID para a área de transferência. Você usará esse ID para visualizar o status da automação.

   ```
   {
       "AutomationExecutionId": "automation execution ID"
   }
   ```

1. Para visualizar a automação usando a AWS CLI, execute o seguinte comando:

   ```
   aws ssm describe-automation-executions
   ```

1. Para visualizar detalhes sobre o andamento da automação, execute o comando a seguir. Substitua *automation execution ID* (ID de execução da automação) por suas próprias informações.

   ```
   aws ssm get-automation-execution --automation-execution-id automation execution ID
   ```

   O processo de atualização pode demorar 30 minutos ou mais para ser concluído.
**nota**  
Você pode também monitorar o status da automação no console. Na lista, escolha a automação que você acabou de processar e depois escolha a guia **Steps** (Etapas). Esta guia mostra o status das ações de automação.

Após a conclusão da automação, execute uma instância de teste da AMI atualizada para verificar as alterações.

**nota**  
Se alguma etapa da automação falhar, as informações sobre a falha serão listadas na página **Automation Executions** (Execuções do Automation). A automação foi concebida para terminar a instância temporária após a conclusão bem-sucedida de todas as tarefas. Se uma etapa falhar, o sistema talvez não encerre a instância. Então, se uma etapa falhar, encerre manualmente a instância temporária.

# Atualizar uma AMI Windows Server
<a name="automation-tutorial-update-patch-windows-ami"></a>

O runbook `AWS-UpdateWindowsAmi` permite automatizar tarefas de manutenção de imagens em Amazon Machine Image (AMI) do Amazon Windows, sem precisar criar o runbook em JSON ou YAML. Este runbook tem suporte para o Windows Server 2008 R2 ou posterior. Você pode usar o runbook `AWS-UpdateWindowsAmi` para realizar os seguintes tipos de tarefas:
+ Instalar todas as atualizações do Windows e atualizar softwares da Amazon (comportamento padrão).
+ Instalar atualizações específicas do Windows e atualizar softwares da Amazon.
+ Personalize uma AMI usando seus scripts.

**Antes de começar**  
Antes de começar a trabalhar com runbooks, [configure funções para o Automation](automation-setup-iam.md) a fim de adicionar uma política `iam:PassRole` que referencia o ARN do perfil da instância ao qual você deseja conceder acesso. Opcionalmente, configure o Amazon EventBridge para o Automation, uma ferramenta do AWS Systems Manager. Para obter mais informações, consulte [Configurar a automação](automation-setup.md). Esta demonstração também requer que você especifique o nome de um perfil de instância do AWS Identity and Access Management (IAM). Para obter mais informações sobre como criar um perfil de instância do IAM, consulte [Configurar permissões de instância obrigatórias para o Systems Manager](setup-instance-permissions.md).

**nota**  
As atualizações do AWS Systems Manager SSM Agent são normalmente implementadas em regiões diferentes e em momentos distintos. Quando você personalizar ou atualizar uma AMI, use apenas AMIs de origem publicadas para a região na qual você está trabalhando. Isso garante que você trabalhe com o SSM Agent mais recente lançado nessa região e evite problemas de compatibilidade.

O runbook `AWS-UpdateWindowsAmi` aceita os seguintes parâmetros de entrada:


****  

| Parâmetro | Tipo | Descrição | 
| --- | --- | --- | 
|  SourceAmiId  |  String  |  (Obrigatório) O ID da AMI de origem. Você pode fazer referência automaticamente ao ID de uma AMI do Windows Server mais recente, ID usando um parâmetro *público* Parameter Store do Systems Manager. Para obter mais informações, consulte [Consultar os mais recentes IDs da AMI do Windows usando o AWS Systems ManagerParameter Store](https://aws.amazon.com/blogs/mt/query-for-the-latest-windows-ami-using-systems-manager-parameter-store/).  | 
|  SubnetId  |  String  |  (Opcional) A sub-rede na qual você deseja iniciar a instância temporária. Você deve especificar um valor para esse parâmetro se tiver excluído a VPC padrão.  | 
|  IamInstanceProfileName  |  String  |  (Obrigatório) O nome do perfil para o perfil de instância do IAM criado em [Configurar permissões de instância obrigatórias para o Systems Manager](setup-instance-permissions.md). A função de perfil de instância concede ao Automation permissão para realizar ações em suas instâncias, como executar comandos ou iniciar e interromper serviços. O runbook usa apenas o nome da função de perfil da instância.  | 
|  AutomationAssumeRole  |  String  |  (Obrigatório) O nome da função de serviço do IAM que você criou em [Configurar a automação](automation-setup.md). A função de serviço (também chamada de função assumida) concede ao Automation permissão para assumir sua função do IAM e realizar ações em seu nome. Por exemplo, a função de serviço permite que o Automation crie uma nova AMI ao executar a ação `aws:createImage` em um runbook. Para esse parâmetro, o ARN completo deve ser especificado.  | 
|  TargetAmiName  |  String  |  (Opcional) O nome da nova AMI após a sua criação. O nome padrão é uma string gerada pelo sistema que inclui o ID da AMI de origem, bem como a data e a hora de criação.  | 
|  InstanceType  |  String  |  (Opcional) O tipo de instância a ser executada como o host do espaço de trabalho. Os tipos de instância variam de acordo com a região. O tipo padrão é t2.medium.  | 
|  PreUpdateScript  |  String  |  (Opcional) Um script a ser executado antes de atualizar a AMI. Insira um script no runbook ou no runtime como um parâmetro.  | 
|  PostUpdateScript  |  String  |  (Opcional) Um script a ser executado depois de atualizar a AMI. Insira um script no runbook ou no runtime como um parâmetro.  | 
|  IncludeKbs  |  String  |  (Opcional) Especifique um ou mais IDs de artigo da Base de Dados de Conhecimento Microsoft (KB) para incluir. Você pode instalar vários IDs usando valores separados por vírgulas. Formatos válidos: KB9876543 ou 9876543.  | 
|  ExcludeKbs  |  String  |  (Opcional) Especifique um ou mais IDs de artigo da Base de Dados de Conhecimento Microsoft (KB) para excluir. Você pode excluir vários IDs usando valores separados por vírgulas. Formatos válidos: KB9876543 ou 9876543.  | 
|  Categorias  |  String  |  (Opcional) Especifique uma ou mais categorias de atualização. Você pode filtrar categorias usando valores separados por vírgulas. Opções: Atualização crítica, Atualização de segurança, Atualização de definição, Pacote de atualizações, Pacote de serviços, Ferramenta, Atualização ou Driver. Os formatos válidos incluem uma única entrada, por exemplo: Atualização crítica. Como alternativa, você pode especificar uma lista separada por vírgulas: Atualização crítica, Atualização de segurança, Atualização de definição.  | 
|  SeverityLevels  |  String  |  (Opcional) Especifique um ou mais níveis de gravidade MSRC associados a uma atualização. Você pode filtrar os níveis de gravidade usando valores separados por vírgulas. Opções: Crítica, Importante, Baixa, Moderada ou Não especificada. Os formatos válidos incluem uma única entrada, por exemplo: Crítica. Como alternativa, você pode especificar uma lista separada por vírgulas: Crítica, Importante, Baixa.  | 

**Etapas da Automação**  
O runbook `AWS-UpdateWindowsAmi` inclui as seguintes etapas, por padrão.

**Etapa 1: launchInstance (ação `aws:runInstances`)**  
Esta etapa executa uma instância com uma função de perfil da instância do IAM no especificado `SourceAmiID`.

**Etapa 2: runPreUpdateScript (ação `aws:runCommand`)**  
Essa etapa permite especificar um script como uma string que é executada antes que as atualizações sejam instaladas.

**Etapa 3: updateEC2Config (ação `aws:runCommand`)**  
Esta etapa usa o runbook `AWS-InstallPowerShellModule` para baixar um módulo PowerShell público da AWS. O Systems Manager verifica a integridade do módulo usando um hash SHA-256. Em seguida, o Systems Manager verifica o sistema operacional para determinar se deve atualizar EC2Config ou EC2Launch. EC2Config é executado no Windows Server 2008 R2 até o Windows Server 2012 R2. EC2Launch é executado no Windows Server 2016.

**Etapa 4: updateSSMAgent (ação `aws:runCommand`)**  
Esta etapa atualiza o SSM Agent usando o runbook `AWS-UpdateSSMAgent`.

**Etapa 5: updateAWSPVDriver (ação `aws:runCommand`)**  
Esta etapa atualiza os drivers de rede do AWS PV usando o runbook `AWS-ConfigureAWSPackage`.

**Etapa 6: updateAwsEnaNetworkDriver (ação `aws:runCommand`)**  
Esta etapa atualiza os drivers de rede do AWS ENA usando o runbook `AWS-ConfigureAWSPackage`.

**Etapa 7: installWindowsUpdates (ação `aws:runCommand`) **  
Essa etapa instala atualizações do Windows usando o runbook `AWS-InstallWindowsUpdates`. Por padrão, o Systems Manager procura e instala todas as atualizações ausentes. Você pode alterar o comportamento padrão especificando um dos seguintes parâmetros: `IncludeKbs`, `ExcludeKbs`, `Categories` ou `SeverityLevels`. 

**Etapa 8: runPostUpdateScript (ação `aws:runCommand`)**  
Essa etapa permite especificar um script como uma string que é executada após a instalação das atualizações.

**Etapa 9: runSysprepGeneralize (ação `aws:runCommand`) **  
Esta etapa usa o runbook `AWS-InstallPowerShellModule` para baixar um módulo PowerShell público da AWS. O Systems Manager verifica a integridade do módulo usando um hash SHA-256. Em seguida, o Systems Manager executa o sysprep usando métodos com suporte da AWS para EC2Launch (Windows Server 2016) ou EC2Config (Windows Server 2008 R2 a 2012 R2).

**Etapa 10: stopInstance (ação `aws:changeInstanceState`) **  
Essa etapa interrompe a instância atualizada. 

**Etapa 11: createImage (ação `aws:createImage`) **  
Essa etapa cria uma nova AMI com um nome descritivo que a vincula ao ID de origem e ao horário de criação. Por exemplo: “AMI Generated by EC2 Automation on \$1\$1global:DATE\$1TIME\$1\$1 from \$1\$1SourceAmiId\$1\$1” em que DATE\$1TIME e SourceID representam variáveis de Automação.

**Etapa 12: TerminateInstance (ação `aws:changeInstanceState`) **  
Essa etapa limpa a automação, encerrando a instância em execução. 

**Output**  
Essa seção permite designar as saídas de várias etapas ou valores de qualquer parâmetro como saída da Automação. Por padrão, o resultado é o ID da AMI do Windows atualizada, criada pela automação.

**nota**  
Por padrão, quando o Automation executa o runbook `AWS-UpdateWindowsAmi` e cria uma instância temporária, o sistema usa a VPC padrão (172.30.0.0/16). Se tiver excluído a VPC padrão, você receberá o seguinte erro:  
VPC não definida 400  
Para resolver esse problema, você deve fazer uma cópia do runbook `AWS-UpdateWindowsAmi` e especificar um ID de sub-rede. Para obter mais informações, consulte [VPC não definida 400](automation-troubleshooting.md#automation-trbl-common-vpc).

**Para criar uma AMI Windows com patch aplicado usando o Automation**

1. Instale e configure a AWS Command Line Interface (AWS CLI), caso ainda não o tenha feito.

   Para obter informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Execute o comando a seguir para executar o runbook `AWS-UpdateWindowsAmi`. Substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações. O exemplo de comando abaixo usa uma AMI recente do Amazon EC2 para minimizar o número de patches que precisam ser aplicados. Se você executar esse comando mais de uma vez, deverá especificar um valor exclusivo para `targetAMIname`. Os nomes da AMI deverão ser exclusivos.

   ```
   aws ssm start-automation-execution \
       --document-name="AWS-UpdateWindowsAmi" \
       --parameters SourceAmiId='AMI ID',IamInstanceProfileName='IAM instance profile',AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole'
   ```

   O comando retorna um ID de execução. Copie esse ID para a área de transferência. Você usará esse ID para visualizar o status da automação.

   ```
   {
       "AutomationExecutionId": "automation execution ID"
   }
   ```

1. Para visualizar a automação usando a AWS CLI, execute o seguinte comando:

   ```
   aws ssm describe-automation-executions
   ```

1. Para visualizar detalhes sobre o andamento da automação, execute o comando a seguir.

   ```
   aws ssm get-automation-execution 
       --automation-execution-id automation execution ID
   ```

**nota**  
Dependendo do número de patches aplicados, o processo de aplicação de patches do Windows, executado nessa automação de amostra, poderá demorar 30 minutos ou mais para ser concluído.

# Atualize uma AMI dourada usando Automation, AWS Lambda e Parameter Store
<a name="automation-tutorial-update-patch-golden-ami"></a>

O exemplo a seguir usa o modelo onde uma organização mantém suas próprias AMIs e aplica patches a elas periodicamente, em vez de se basear em AMIs do Amazon Elastic Compute Cloud (Amazon EC2).

O procedimento a seguir mostra como aplicar patches de sistema operacional (SO) automaticamente a uma AMI que já é considerada a AMI mais atualizada ou *mais recente*. No exemplo, o valor padrão do parâmetro `SourceAmiId` é definido por um parâmetro do AWS Systems Manager Parameter Store chamado `latestAmi`. O valor de `latestAmi` é atualizado por uma função AWS Lambda invocada no final da automação. Como resultado desse processo de automação, o tempo e o esforço gastos na aplicação de patches das AMIs são minimizados, pois o patch é sempre aplicado à AMI mais atualizada. O Parameter Store e o Automation são ferramentas do AWS Systems Manager.

**Antes de começar**  
Configure as funções do Automation e, opcionalmente, o Amazon EventBridge para Automation. Para obter mais informações, consulte [Configurar a automação](automation-setup.md).

**Topics**
+ [

## Tarefa 1: Criar um parâmetro no Systems Manager () Parameter Store
](#create-parameter-ami)
+ [

## Tarefa 2: Criar uma função do IAM para o AWS Lambda
](#create-lambda-role)
+ [

## Tarefa 3: Criar uma função do AWS Lambda
](#create-lambda-function)
+ [

## Tarefa 4: Criar um runbook e aplicar patches à AMI
](#create-custom-ami-update-runbook)

## Tarefa 1: Criar um parâmetro no Systems Manager () Parameter Store
<a name="create-parameter-ami"></a>

Crie um parâmetro de string no Parameter Store que use as seguintes informações:
+ **Nome**: `latestAmi`.
+ **Valor**: um ID de AMI. Por exemplo: .:` ami-188d6e0e`.

Para obter mais informações sobre como criar um parâmetro String usando o Parameter Store, consulte [Criar parâmetros do Parameter Store no Systems Manager](sysman-paramstore-su-create.md).

## Tarefa 2: Criar uma função do IAM para o AWS Lambda
<a name="create-lambda-role"></a>

Use o procedimento a seguir para criar uma função de serviço do IAM para o AWS Lambda. Essas políticas dão ao Lambda a permissão necessária para atualizar o valor do parâmetro `latestAmi` usando uma função do Lambda e do Systems Manager.

**Para criar uma função de serviço do IAM para o Lambda**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**.

1. Selecione a guia **JSON**.

1. Substitua os conteúdos padrão pela política a seguir. Substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "logs:CreateLogGroup",
               "Resource": "arn:aws:logs:us-east-1:111122223333:*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents"
               ],
               "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/lambda/function name:*"
               ]
           }
       ]
   }
   ```

------

1. Escolha **Next: Tags**.

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

1. Selecione **Próximo: revisar**.

1. Na página **Revisar política**, em **Nome**, digite um nome para a política em linha, como **amiLambda**.

1. Escolha **Criar política**.

1. Repita as etapas 2 e 3.

1. Cole a política a seguir. Substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "ssm:PutParameter",
               "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/latestAmi"
           },
           {
               "Effect": "Allow",
               "Action": "ssm:DescribeParameters",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Escolha **Próximo: tags**.

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

1. Escolha **Próximo: revisar**.

1. Na página **Revisar política**, em **Nome**, digite um nome para a política em linha, como **amiParameter**.

1. Escolha **Criar política**.

1. No painel de navegação, escolha **Perfis** e **Criar perfil**.

1. Em seguida, em **Caso de uso**, escolha **Lambda** e escolha **Próximo**.

1. Na página **Adicionar permissões**, use o campo **Pesquisar** para localizar as duas políticas criadas anteriormente.

1. Marque a caixa de seleção ao lado das políticas e, em seguida, escolha **Próximo**.

1. Em **Role name** (Nome da função), insira um nome para a nova função, como **lambda-ssm-role** ou outro nome que você preferir. 
**nota**  
Como várias entidades podem fazer referência à função, não é possível alterar o nome da função depois que ela é criada.

1. (Opcional) Adicione um ou mais pares chave-valor de etiquetas para organizar, acompanhar ou controlar o acesso a esse perfil e, em seguida, escolha **Criar perfil**.

## Tarefa 3: Criar uma função do AWS Lambda
<a name="create-lambda-function"></a>

Use o seguinte procedimento para criar uma função do Lambda que atualize automaticamente o valor do parâmetro `latestAmi`.

**Como criar uma função do Lambda**

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Lambda em [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Escolha a opção **Criar função**.

1. Na página **Create function**, selecione **Author from scratch**.

1. Em **Function name** (Nome da função), insira **Automation-UpdateSsmParam**.

1. Em **Runtime**, selecione **Python 3.11**.

1. Em **Arquitetura**, selecione o tipo de processador de computador que o Lambda usará para executar a função, **x86\$164** ou **arm64**. 

1. Na seção **Permissões**, expanda **Alterar perfil de execução padrão**.

1. Selecione **Use an existing role** (Usar uma função existente) e escolha a função de serviço do Lambda criada na Tarefa 2.

1. Escolha a opção **Criar função**.

1. Na área **Origem do código**, na guia **lambda\$1function**, exclua o código pré-preenchido no campo e cole a amostra de código a seguir.

   ```
   from __future__ import print_function
   
   import json
   import boto3
   
   print('Loading function')
   
   
   #Updates an SSM parameter
   #Expects parameterName, parameterValue
   def lambda_handler(event, context):
       print("Received event: " + json.dumps(event, indent=2))
   
       # get SSM client
       client = boto3.client('ssm')
   
       #confirm  parameter exists before updating it
       response = client.describe_parameters(
          Filters=[
             {
              'Key': 'Name',
              'Values': [ event['parameterName'] ]
             },
           ]
       )
   
       if not response['Parameters']:
           print('No such parameter')
           return 'SSM parameter not found.'
   
       #if parameter has a Description field, update it PLUS the Value
       if 'Description' in response['Parameters'][0]:
           description = response['Parameters'][0]['Description']
           
           response = client.put_parameter(
             Name=event['parameterName'],
             Value=event['parameterValue'],
             Description=description,
             Type='String',
             Overwrite=True
           )
       
       #otherwise just update Value
       else:
           response = client.put_parameter(
             Name=event['parameterName'],
             Value=event['parameterValue'],
             Type='String',
             Overwrite=True
           )
           
       responseString = 'Updated parameter %s with value %s.' % (event['parameterName'], event['parameterValue'])
           
       return responseString
   ```

1. Escolha **Arquivo, Salvar**.

1. Para testar a função do Lambda, no menu **Teste**, escolha **Configurar evento de teste**.

1. Em **Event name (Nome do evento)**, insira um nome para o evento de teste, como **MyTestEvent**.

1. Substitua o texto existente pelo seguinte JSON. Substitua *AMI ID* (ID da AMI) por suas próprias informações para definir o valor do parâmetro `latestAmi`.

   ```
   {
      "parameterName":"latestAmi",
      "parameterValue":"AMI ID"
   }
   ```

1. Escolha **Salvar**.

1. Selecione **Test (Testar)** para testar a função. Na guia **Resultado da execução**, o status deve ser informado como **Com êxito**, junto com outros detalhes sobre a atualização.

## Tarefa 4: Criar um runbook e aplicar patches à AMI
<a name="create-custom-ami-update-runbook"></a>

Use o procedimento a seguir para criar e executar um runbook que aplica patches à AMI especificada para o parâmetro **latestAmi**. Depois que a automação for concluída, o valor de **latestAmi** será atualizado com o ID da AMI que acabou de receber patch. As automações subsequentes usarão a AMI criada pela execução anterior.

**Para criar e executar o runbook**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Em **Criar documento**, escolha **Automation**.

1. Em **Nome**, digite **UpdateMyLatestWindowsAmi**.

1. Escolha a guia **Editor** e depois escolha **Edit (Editar)**.

1. Escolha **OK** quando solicitado.

1. No campo **Editor de documentos**, substitua o conteúdo padrão pelo conteúdo do runbook de amostra YAML apresentado a seguir.

   ```
   ---
   description: Systems Manager Automation Demo - Patch AMI and Update ASG
   schemaVersion: '0.3'
   assumeRole: '{{ AutomationAssumeRole }}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to execute this document.'
       default: ''
     SourceAMI:
       type: String
       description: The ID of the AMI you want to patch.
       default: '{{ ssm:latestAmi }}'
     SubnetId:
       type: String
       description: The ID of the subnet where the instance from the SourceAMI parameter is launched.
     SecurityGroupIds:
       type: StringList
       description: The IDs of the security groups to associate with the instance that's launched from the SourceAMI parameter.
     NewAMI:
       type: String
       description: The name of of newly patched AMI.
       default: 'patchedAMI-{{global:DATE_TIME}}'
     InstanceProfile:
       type: String
       description: The name of the IAM instance profile you want the source instance to use.
     SnapshotId:
       type: String
       description: (Optional) The snapshot ID to use to retrieve a patch baseline snapshot.
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: (Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: startInstances
       action: 'aws:runInstances'
       timeoutSeconds: 1200
       maxAttempts: 1
       onFailure: Abort
       inputs:
         ImageId: '{{ SourceAMI }}'
         InstanceType: m5.large
         MinInstanceCount: 1
         MaxInstanceCount: 1
         IamInstanceProfileName: '{{ InstanceProfile }}'
         SubnetId: '{{ SubnetId }}'
         SecurityGroupIds: '{{ SecurityGroupIds }}'
     - name: verifyInstanceManaged
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 600
       inputs:
         Service: ssm
         Api: DescribeInstanceInformation
         InstanceInformationFilterList:
           - key: InstanceIds
             valueSet:
               - '{{ startInstances.InstanceIds }}'
         PropertySelector: '$.InstanceInformationList[0].PingStatus'
         DesiredValues:
           - Online
       onFailure: 'step:terminateInstance'
     - name: installPatches
       action: 'aws:runCommand'
       timeoutSeconds: 7200
       onFailure: Abort
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
     - name: stopInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: stopped
     - name: createImage
       action: 'aws:createImage'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceId: '{{ startInstances.InstanceIds }}'
         ImageName: '{{ NewAMI }}'
         NoReboot: false
         ImageDescription: Patched AMI created by Automation
     - name: terminateInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: terminated
     - name: updateSsmParam
       action: aws:invokeLambdaFunction
       timeoutSeconds: 1200
       maxAttempts: 1
       onFailure: Abort
       inputs:
           FunctionName: Automation-UpdateSsmParam
           Payload: '{"parameterName":"latestAmi", "parameterValue":"{{createImage.ImageId}}"}'
   outputs:
   - createImage.ImageId
   ```

1. Escolha **Criar automação**.

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

1. Na página **Choose document** (Escolher documento), escolha a guia **Owned by me** (Pertencem a mim).

1. Procure o runbook **UpdateMyLatestWindowsAmi** e selecione o botão no cartão **UpdateMyLatestWindowsAmi**.

1. Escolha **Próximo**.

1. Escolha **Simple execution (Execução simples)**.

1. Especificar valores para os parâmetro de entrada.

1. Clique em **Executar**.

1. Após a conclusão da automação, escolha **Parameter Store** no painel de navegação e confirme se o novo valor para `latestAmi` corresponde ao valor retornado pela automação. Você também pode verificar se o novo ID da AMI corresponde à saída do Automation na seção **AMIs** do console do Amazon EC2.

# Atualizar AMIs usando o Automation e Jenkins
<a name="automation-tutorial-update-patch-ami-jenkins-integration"></a>

Se a sua organização usar o software Jenkins em um pipeline de CI/CD, você poderá adicionar o Automation como uma etapa de pós-compilação para pré-instalar as versões da aplicação na Amazon Machine Images (AMIs). O Automation é uma ferramenta do AWS Systems Manager. Você também pode usar o recurso de agendamento do Jenkins para chamar o Automation e criar sua própria cadência de aplicação de patches de sistema operacional (SO).

O exemplo abaixo mostra como invocar o Automation em um servidor Jenkins em execução on-premises ou no Amazon Elastic Compute Cloud (Amazon EC2). Para realizar a autenticação, o servidor Jenkins usa credenciais da AWS com base em uma política do IAM criada no exemplo e anexada ao seu perfil de instância.

**nota**  
Certifique-se de seguir as práticas recomendadas de segurança do Jenkins ao configurar sua instância.

**Antes de começar**  
Conclua as seguintes tarefas antes de configurar o Automation com o Jenkins:
+ Conclua o exemplo [Atualize uma AMI dourada usando Automation, AWS Lambda e Parameter Store](automation-tutorial-update-patch-golden-ami.md). O exemplo a seguir usa o runbook **UpdateMyLatestWindowsAmi** criado nesse exemplo.
+ Configure as funções do IAM para o Automation. O Systems Manager requer uma função de perfil da instância e um ARN da função de serviço para processar automações. Para obter mais informações, consulte [Configurar a automação](automation-setup.md).

**Como criar uma política do IAM para o servidor Jenkins**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas** e, em seguida, **Criar política**.

1. Selecione a guia **JSON**.

1. Substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "ssm:StartAutomationExecution",
               "Resource": [
                   "arn:aws:ssm:us-east-1:111122223333:document/UpdateMyLatestWindowsAmi",
                   "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
               ]
           }
       ]
   }
   ```

------

1. Selecione **Revisar política**.

1. Na página **Revisar política**, em **Nome**, digite um nome para a política em linha, como **JenkinsPolicy**.

1. Escolha **Criar política**.

1. No painel de navegação, escolha **Perfis**.

1. Escolha o perfil de instância que está anexado ao seu servidor Jenkins.

1. Na guia **Permissões**, selecione **Adicionar permissões** e escolha **Anexar políticas**.

1. Na seção **Outras políticas de permissões**, insira o nome da política criada nas etapas anteriores. Por exemplo, **JenkinsPolicy**.

1. Marque a caixa de seleção ao lado da sua política e escolha **Anexar políticas**.

Use o seguinte procedimento para configurar a AWS CLI no seu servidor Jenkins.

**Para configurar o servidor Jenkins para Automation**

1. Connect ao servidor Jenkins na porta 8080 usando seu navegador preferido para acessar a interface de gerenciamento.

1. Digite a senha encontrada em `/var/lib/jenkins/secrets/initialAdminPassword`. Para exibir sua senha, execute o comando a seguir.

   ```
   sudo cat /var/lib/jenkins/secrets/initialAdminPassword
   ```

1. O script de instalação do Jenkins direciona você para a página **Personalizar o Jenkins**. Selecione **Install suggested plugins** (Instalar plugins sugeridos).

1. Uma vez concluída a instalação, escolha **Credenciais de administrador**, selecione **Salvar credenciais** e, depois, **Começar a usar o Jenkins**.

1. No painel de navegação à esquerda, escolha **Gerenciar Jenkins** e, em seguida, selecione **Gerenciar plugins**.

1. Selecione a guia **Available** (Disponível) e, em seguida, digite **Amazon EC2 plugin**.

1. Marque a caixa de seleção para **Amazon EC2 plugin**e, depois, selecione **Install without restart** (Instalar sem reiniciar).

1. Quando a instalação terminar, selecione **Go back to the top page** (Voltar para a página inicial).

1. Escolha **Gerenciar Jenkins** e, em seguida, **Gerenciar nós e nuvens**.

1. Na seção **Configurar nuvens**, selecione **Adicionar uma nova nuvem** e, em seguida, escolha **Amazon EC2**.

1. Insira suas informações nos campos restantes. Certifique-se de selecionar a opção **Usar perfil de instância do EC2 para obter credenciais**.

Use o procedimento a seguir para configurar o projeto do Jenkins para invocar o Automation.

**Para configurar o servidor Jenkins para invocar o Automation**

1. Abra o console do Jenkins em um navegador Web.

1. Escolha o projeto que deseja configurar com Automação e depois escolha **Configure**.

1. Na guia **Build**, escolha **Add Build Step**.

1. Escolha **Execute shell** ou **Execute Windows batch command** (dependendo do seu sistema operacional).

1. No campo **Command** (Comando), execute um comando da AWS CLI como o seguinte: Substitua cada *espaço reservado para recurso de exemplo* por suas próprias informações.

   ```
   aws ssm start-automation-execution \
           --document-name runbook name \
           --region Região da AWS of your source AMI \
           --parameters runbook parameters
   ```

   O comando de exemplo a seguir usa o runbook **UpdateMyLatestWindowsAmi** e o parâmetro `latestAmi` do Systems Manager criado em [Atualize uma AMI dourada usando Automation, AWS Lambda e Parameter Store](automation-tutorial-update-patch-golden-ami.md).

   ```
   aws ssm start-automation-execution \
           --document-name UpdateMyLatestWindowsAmi \
           --parameters \
               "sourceAMIid='{{ssm:latestAmi}}'"
           --region region
   ```

   No Jenkins, o comando se parece com exemplo mostrado na captura de tela a seguir.  
![\[Um exemplo de comando no software Jenkins.\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/images/sysman-ami-jenkins2.png)

1. No projeto do Jenkins, escolha **Criar agora**. Jenkins retorna uma saída semelhante ao exemplo a seguir.  
![\[Exemplo de saída de comando no software Jenkins.\]](http://docs.aws.amazon.com/pt_br/systems-manager/latest/userguide/images/sysman-ami-jenkins.png)

# Atualização de AMIs para grupos do Auto Scaling
<a name="automation-tutorial-update-patch-windows-ami-autoscaling"></a>

O seguinte exemplo atualiza um grupo do Auto Scaling com uma AMI com patch recém-aplicado. Essa abordagem garante que as novas imagens sejam automaticamente disponibilizadas para diferentes ambientes de computação que usam grupos do Auto Scaling.

A etapa final da automação neste exemplo usa uma função do Python para criar um novo modelo de execução que usa a AMI que acabou de receber patch. Em seguida, o grupo do Auto Scaling é atualizado para usar o novo modelo de execução. Neste tipo de cenário de Auto Scaling, os usuários podem encerrar instâncias existentes no grupo do Auto Scaling para forçar a execução de uma nova instância que usa a nova imagem. Como alternativa, os usuários podem aguardar e permitir que eventos de aumento ou redução de escala aconteçam para executar instâncias mais recentes.

**Antes de começar**  
Conclua as seguintes tarefas antes de começar este exemplo.
+ Configure perfis do IAM para o Automation, uma ferramenta do AWS Systems Manager. O Systems Manager requer uma função de perfil da instância e um ARN da função de serviço para processar automações. Para obter mais informações, consulte [Configurar a automação](automation-setup.md).

## Criar o runbook **PatchAMIAndUpdateASG**
<a name="create-autoscaling-update-runbook"></a>

Use o procedimento a seguir para criar o runbook **PatchAMIAndUpdateASG**, que aplica patch à AMI que você especifica para o parâmetro **SourceAMI**. O runbook também atualiza o grupo do Auto Scaling para usar a AMI que recebeu o patch mais recente.

**Para criar e executar o runbook**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. No painel de navegação, escolha **Documents**.

1. Na lista suspensa **Create document** (Criar documento), escolha **Automation** (Automação).

1. No campo **Name** (Nome), insira **PatchAMIAndUpdateASG**.

1. Escolha a guia **Editor** e escolha **Edit** (Editar).

1. Escolha **OK** quando solicitado e exclua o conteúdo do espaço reservado no campo **Document editor** (Editor de documentos).

1. No campo **Document editor** (Editor de documentos), cole o seguinte conteúdo do runbook de exemplo YAML:

   ```
   ---
   description: Systems Manager Automation Demo - Patch AMI and Update ASG
   schemaVersion: '0.3'
   assumeRole: '{{ AutomationAssumeRole }}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to execute this document.'
       default: ''
     SourceAMI:
       type: String
       description: '(Required) The ID of the AMI you want to patch.'
     SubnetId:
       type: String
       description: '(Required) The ID of the subnet where the instance from the SourceAMI parameter is launched.'
     SecurityGroupIds:
       type: StringList
       description: '(Required) The IDs of the security groups to associate with the instance launched from the SourceAMI parameter.'
     NewAMI:
       type: String
       description: '(Optional) The name of of newly patched AMI.'
       default: 'patchedAMI-{{global:DATE_TIME}}'
     TargetASG:
       type: String
       description: '(Required) The name of the Auto Scaling group you want to update.'
     InstanceProfile:
       type: String
       description: '(Required) The name of the IAM instance profile you want the source instance to use.'
     SnapshotId:
       type: String
       description: (Optional) The snapshot ID to use to retrieve a patch baseline snapshot.
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: (Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: startInstances
       action: 'aws:runInstances'
       timeoutSeconds: 1200
       maxAttempts: 1
       onFailure: Abort
       inputs:
         ImageId: '{{ SourceAMI }}'
         InstanceType: m5.large
         MinInstanceCount: 1
         MaxInstanceCount: 1
         IamInstanceProfileName: '{{ InstanceProfile }}'
         SubnetId: '{{ SubnetId }}'
         SecurityGroupIds: '{{ SecurityGroupIds }}'
     - name: verifyInstanceManaged
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 600
       inputs:
         Service: ssm
         Api: DescribeInstanceInformation
         InstanceInformationFilterList:
           - key: InstanceIds
             valueSet:
               - '{{ startInstances.InstanceIds }}'
         PropertySelector: '$.InstanceInformationList[0].PingStatus'
         DesiredValues:
           - Online
       onFailure: 'step:terminateInstance'
     - name: installPatches
       action: 'aws:runCommand'
       timeoutSeconds: 7200
       onFailure: Abort
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
     - name: stopInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: stopped
     - name: createImage
       action: 'aws:createImage'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceId: '{{ startInstances.InstanceIds }}'
         ImageName: '{{ NewAMI }}'
         NoReboot: false
         ImageDescription: Patched AMI created by Automation
     - name: terminateInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: terminated
     - name: updateASG
       action: 'aws:executeScript'
       timeoutSeconds: 300
       maxAttempts: 1
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: update_asg
         InputPayload:
           TargetASG: '{{TargetASG}}'
           NewAMI: '{{createImage.ImageId}}'
         Script: |-
           from __future__ import print_function
           import datetime
           import json
           import time
           import boto3
   
           # create auto scaling and ec2 client
           asg = boto3.client('autoscaling')
           ec2 = boto3.client('ec2')
   
           def update_asg(event, context):
               print("Received event: " + json.dumps(event, indent=2))
   
               target_asg = event['TargetASG']
               new_ami = event['NewAMI']
   
               # get object for the ASG we're going to update, filter by name of target ASG
               asg_query = asg.describe_auto_scaling_groups(AutoScalingGroupNames=[target_asg])
               if 'AutoScalingGroups' not in asg_query or not asg_query['AutoScalingGroups']:
                   return 'No ASG found matching the value you specified.'
   
               # gets details of an instance from the ASG that we'll use to model the new launch template after
               source_instance_id = asg_query.get('AutoScalingGroups')[0]['Instances'][0]['InstanceId']
               instance_properties = ec2.describe_instances(
                   InstanceIds=[source_instance_id]
               )
               source_instance = instance_properties['Reservations'][0]['Instances'][0]
   
               # create list of security group IDs
               security_groups = []
               for group in source_instance['SecurityGroups']:
                   security_groups.append(group['GroupId'])
   
               # create a list of dictionary objects for block device mappings
               mappings = []
               for block in source_instance['BlockDeviceMappings']:
                   volume_query = ec2.describe_volumes(
                       VolumeIds=[block['Ebs']['VolumeId']]
                   )
                   volume_details = volume_query['Volumes']
                   device_name = block['DeviceName']
                   volume_size = volume_details[0]['Size']
                   volume_type = volume_details[0]['VolumeType']
                   device = {'DeviceName': device_name, 'Ebs': {'VolumeSize': volume_size, 'VolumeType': volume_type}}
                   mappings.append(device)
   
               # create new launch template using details returned from instance in the ASG and specify the newly patched AMI
               time_stamp = time.time()
               time_stamp_string = datetime.datetime.fromtimestamp(time_stamp).strftime('%m-%d-%Y_%H-%M-%S')
               new_template_name = f'{new_ami}_{time_stamp_string}'
               try:
                   ec2.create_launch_template(
                       LaunchTemplateName=new_template_name,
                       LaunchTemplateData={
                           'BlockDeviceMappings': mappings,
                           'ImageId': new_ami,
                           'InstanceType': source_instance['InstanceType'],
                           'IamInstanceProfile': {
                               'Arn': source_instance['IamInstanceProfile']['Arn']
                           },
                           'KeyName': source_instance['KeyName'],
                           'SecurityGroupIds': security_groups
                       }
                   )
               except Exception as e:
                   return f'Exception caught: {str(e)}'
               else:
                   # update ASG to use new launch template
                   asg.update_auto_scaling_group(
                       AutoScalingGroupName=target_asg,
                       LaunchTemplate={
                           'LaunchTemplateName': new_template_name
                       }
                   )
                   return f'Updated ASG {target_asg} with new launch template {new_template_name} which uses AMI {new_ami}.'
   outputs:
   - createImage.ImageId
   ```

1. Escolha **Criar automação**.

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

1. Na página **Choose document** (Escolher documento), escolha a guia **Owned by me** (Pertencem a mim).

1. Procure o runbook **PatchAMIAndUpdateASG** e selecione o botão no cartão **PatchAMIAndUpdateASG**.

1. Escolha **Próximo**.

1. Escolha **Simple execution (Execução simples)**.

1. Especificar valores para os parâmetro de entrada. Verifique se o `SubnetId` e o `SecurityGroupIds` especificados permitem acesso aos endpoints públicos do Systems Manager ou aos seus endpoints de interface para o Systems Manager.

1. Clique em **Executar**.

1. Após a conclusão da automação, no console do Amazon EC2, escolha **Auto Scaling** e depois escolha **Launch Templates** (Modelos de execução). Verifique se você vê o novo modelo de execução e se ele usa a nova AMI.

1. Selecione **Auto Scaling** e, depois, escolha**Auto Scaling Groups** (Grupos Auto Scaling). Verifique se o grupo do Auto Scaling usa o novo modelo de execução.

1. Encerre uma ou mais instâncias no grupo de Auto Scaling. As instâncias de substituição serão executadas usando a nova AMI.

# Uso de runbooks de autoatendimento do AWS Support
<a name="automation-tutorial-support-runbooks"></a>

Esta seção descreve como usar algumas das automações de autoatendimento criadas pela equipe do AWS Support. Essas automações ajudam você a gerenciar seus recursos da AWS.

**Fluxos de trabalho do Automation de suporte**  
Os fluxos de trabalho do Automation de suporte (SAW) são runbooks de automação escritos e mantidos pela equipe do AWS Support. Esses runbooks ajudam a solucionar problemas comuns com seus recursos da AWS, monitoram e identificam proativamente os problemas da rede, coletam e analisam logs e muito mais.

Os runbooks SAW usam o prefixo do **`AWSSupport`**. Por exemplo, [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-activatewindowswithamazonlicense.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-activatewindowswithamazonlicense.html).

Além disso, os clientes com os planos Business Support\$1 e superiores do AWS Support também têm acesso aos runbooks que usam o prefixo **`AWSPremiumSupport`**. Por exemplo, [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awspremiumsupport-troubleshootEC2diskusage.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awspremiumsupport-troubleshootEC2diskusage.html).

Para saber mais sobre o AWS Support, consulte [Conceitos básicos do AWS Support](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html).

**Topics**
+ [

# Executar a ferramenta EC2Rescue em instâncias inacessíveis
](automation-ec2rescue.md)
+ [

# Redefinir senhas e chaves SSH em instâncias do EC2
](automation-ec2reset.md)

# Executar a ferramenta EC2Rescue em instâncias inacessíveis
<a name="automation-ec2rescue"></a>

O EC2Rescue pode ajudar a diagnosticar e solucionar problemas em instâncias do Amazon Elastic Compute Cloud (Amazon EC2) para Linux e Windows Server. Você pode executar a ferramenta manualmente, conforme descrito em [Usar o EC2Rescue para Linux Server](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Linux-Server-EC2Rescue.html) e [Usar o EC2Rescue para Windows Server](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Windows-Server-EC2Rescue.html). Ou você pode executar a ferramenta automaticamente usando o Systems Manager Automation e o runbook **`AWSSupport-ExecuteEC2Rescue`**. O Automation é uma ferramenta do AWS Systems Manager. O runbook **`AWSSupport-ExecuteEC2Rescue`** foi projetado para realizar uma combinação de ações do Systems Manager, ações do CloudFormation e funções do Lambda que automatizam as etapas normalmente necessárias para usar o EC2Rescue. 

Você pode usar o runbook **`AWSSupport-ExecuteEC2Rescue`** para solucionar problemas e potencialmente corrigir diferentes tipos de problemas do sistema operacional (SO). Não há suporte para instâncias com volumes raiz criptografados. Veja os seguintes tópicos para uma lista completa:

**Windows**: consulte *Rescue Action* em [Usar o EC2Rescue para Windows Server com a linha de comando](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2rw-cli.html#ec2rw-rescue).

**Linux** e **macOS**: alguns módulos do EC2Rescue for Linux detectam e tentam corrigir problemas. Para obter mais informações, consulte a documentação [https://github.com/awslabs/aws-ec2rescue-linux/tree/master/docs](https://github.com/awslabs/aws-ec2rescue-linux/tree/master/docs) para cada módulo no GitHub.

## Como funciona
<a name="automation-ec2rescue-how"></a>

Solução de problemas de uma instância com o Automation e o runbook **`AWSSupport-ExecuteEC2Rescue`** funcionam da seguinte maneira:
+ Você especifica o ID da instância inacessível e inicia o runbook.
+ O sistema cria uma VPC temporária e, em seguida, executa uma série de funções do Lambda para configurar a VPC.
+ O sistema identifica uma sub-rede para sua VPC temporária na mesma Zona de disponibilidade da sua instância original.
+ O sistema executa uma instância temporária auxiliar do , habilitada para o SSM.
+ O sistema interrompe sua instância original e cria um backup. Em seguida, atribui o volume raiz original à instância auxiliar.
+ O sistema usa o Run Command para executar o EC2Rescue na instância auxiliar. O EC2Rescue identifica e tenta corrigir problemas no volume raiz original anexado. Ao terminar, o EC2Rescue anexa o volume raiz de volta à instância original.
+ O sistema reinicia sua instância original e encerra a instância temporária. O sistema também encerra a VPC temporária e as funções Lambda criadas no início da automação.

## Antes de começar
<a name="automation-ec2rescue-begin"></a>

Antes de executar a automação a seguir:
+ Copie o ID da instância inacessível. Você especificará esse ID no procedimento.
+ Opcionalmente, colete o ID de uma sub-rede na mesma zona de disponibilidade como sua instância inacessível. A instância EC2Rescue será criada nessa sub-rede. Se você não especificar uma sub-rede, o Automation criará uma nova VPC temporária em sua Conta da AWS. Verifique se sua Conta da AWS tem pelo menos uma VPC disponível. Por padrão, você pode criar cinco VPCs em uma Região. Se você já tiver criado cinco VPCs na Região, a automação falhará sem fazer alterações na sua instância. Para obter mais informações sobre as cotas da Amazon VPC, consulte [VPC e sub-redes](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-vpcs-subnets) no *Manual do usuário da Amazon VPC*.
+ Opcionalmente, você pode criar e especificar uma função do AWS Identity and Access Management (IAM) para o Automation. Se você não especificar essa função, a automação será executada no contexto do usuário que executou a automação.

### Conceder permissões ao `AWSSupport-EC2Rescue` para realizar ações nas instâncias
<a name="automation-ec2rescue-access"></a>

O EC2Rescue precisa de permissão para realizar uma série de ações nas suas instâncias durante a automação. Essas ações invocam os serviços do AWS Lambda, IAM e Amazon EC2 para tentar corrigir problemas com as instâncias de forma segura. Se você tiver permissões em nível de administrador na sua Conta da AWS e/ou VPC, poderá executar a automação sem configurar permissões, conforme descrito nesta seção. Se não tiver permissões em nível de Administrador, você ou um administrador deverá configurar permissões usando uma das seguintes opções.
+ [Conceder permissões usando políticas do IAM](#automation-ec2rescue-access-iam)
+ [Conceder permissões usando um modelo do CloudFormation](#automation-ec2rescue-access-cfn)

#### Conceder permissões usando políticas do IAM
<a name="automation-ec2rescue-access-iam"></a>

É possível anexar a política do IAM a seguir ao seu usuário, grupo ou perfil como uma política em linha, ou criar uma nova política gerenciada do IAM e anexá-la ao seu usuário, grupo ou perfil. Para obter mais informações sobre como adicionar uma política em linha ao seu usuário, grupo ou perfil, consulte [Como trabalhar com políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html). Para obter mais informações sobre como criar uma nova política gerenciada, consulte [Como trabalhar com políticas gerenciadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html).

**nota**  
Se você criar uma nova política gerenciada do IAM, deverá também anexar a ela a política gerenciada **AmazonSSMAutomationRole** para que suas instâncias possam se comunicar com a API do Systems Manager.

**Política do IAM para AWSSupport-EC2Rescue**

Substitua *account ID* (ID da conta) por suas próprias informações.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-EC2Rescue-*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::awssupport-ssm.*/*.template",
                "arn:aws:s3:::awssupport-ssm.*/*.zip"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport-EC2Rescue-*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport-EC2Rescue-*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "lambda:CreateFunction",
                "ec2:CreateVpc",
                "ec2:ModifyVpcAttribute",
                "ec2:DeleteVpc",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:DetachInternetGateway",
                "ec2:DeleteInternetGateway",
                "ec2:CreateSubnet",
                "ec2:DeleteSubnet",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:CreateRouteTable",
                "ec2:AssociateRouteTable",
                "ec2:DisassociateRouteTable",
                "ec2:DeleteRouteTable",
                "ec2:CreateVpcEndpoint",
                "ec2:DeleteVpcEndpoints",
                "ec2:ModifyVpcEndpoint",
                "ec2:Describe*",
                "autoscaling:DescribeAutoScalingInstances"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

#### Conceder permissões usando um modelo do CloudFormation
<a name="automation-ec2rescue-access-cfn"></a>

CloudFormationO automatiza o processo de criação de políticas e funções do IAM, usando um modelo pré-configurado. Use o procedimento a seguir para criar as funções e políticas do IAM necessárias para o Automation EC2Rescue, usando o CloudFormation.

**Para criar as funções e políticas do IAM necessárias para o EC2Rescue**

1. Faça download de [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip) e extraia o arquivo `AWSSupport-EC2RescueRole.json` para um diretório em sua máquina local.

1. Se sua Conta da AWS estiver em uma partição especial, edite o modelo para alterar os valores do ARN para os valores da sua partição.

   Por exemplo, para as regiões da China, altere todos os casos de `arn:aws` para `arn:aws-cn`.

1. Faça login no Console de gerenciamento da AWS e abra o console CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Escolha **Create stack (Criar pilha)**, **With new resources (Com novos recursos (padrão))**.

1. Na página **Create stack (Criar pilha)**, em **Prerequisite - Prepare template (Pré-requisito – Preparar modelo)**, escolha **Template is ready (O modelo está pronto)**.

1. Em **Specify template (Especificar modelo)**, escolha **Upload a template file (Fazer upload de um arquivo de modelo)**.

1. Escolha **Choose file (Escolher arquivo)**, navegue até o arquivo `AWSSupport-EC2RescueRole.json` e selecione-o no diretório onde foi extraído.

1. Escolha **Próximo**.

1. Na página **Specify stack details (Especificar detalhes da pilha)**, no campo **Stack name (Nome da pilha)**, insira um nome para identificar essa pilha e escolha **Next (Próximo)**.

1. (Opcional) Na área **Tags**, aplique um ou mais pares de nome/valor de chave de tag a pilha.

   Tags são metadados opcionais que você atribui a um recurso. Tags permitem categorizar um recurso de diferentes formas, como por finalidade, proprietário ou ambiente. Por exemplo, talvez você queira marcar uma pilha para identificar o tipo de tarefas que ela executa, os tipos de destinos ou outros recursos envolvidos e o ambiente em que ela é executada.

1. Escolha **Next** (Próximo).

1. Na página **Review** (Análise), role para baixo e escolha a opção **I acknowledge that CloudFormation might create IAM resources (Entendo que o ** poderá criar recursos do IAM).

1. Selecione **Criar pilha**.

   O CloudFormation mostrará o status **CREATE\$1IN\$1PROGRESS (CRIAÇÃO\$1EM\$1ANDAMENTO)** por alguns minutos. O status mudará para **CREATE\$1COMPLETE** depois que a pilha tiver sido criada. Também é possível escolher o ícone de atualização para verificar o status do processo de criação.

1. Na lista de **Stacks (Pilhas)**, escolha ao botão de opção ao lado da pilha que você acabou de criar e depois escolha a guia **Outputs (Saídas)**.

1. Anote o **Value (Valor)**. Este é o ARN de AssumeRole. Você especificará esse ARN ao executar a automação no próximo procedimento, [Executar a Automação](#automation-ec2rescue-executing). 

## Executar a Automação
<a name="automation-ec2rescue-executing"></a>

**Importante**  
A automação a seguir interrompe a instância inacessível. A interrupção da instância pode resultar em perda de dados em volumes de armazenamento de instâncias anexados (se presentes). A interrupção da instância também pode fazer com que o IP público seja alterado, caso nenhum IP elástico esteja associado.

**Para executar a automação do `AWSSupport-ExecuteEC2Rescue`**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

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

1. Escolha **Execute automation**.

1. Na seção **Automation document (Documento de automação)**, escolha **Owned by Amazon (De propriedade da Amazon)** na lista.

1. Na lista de runbooks, escolha o botão no cartão para o `AWSSupport-ExecuteEC2Rescue` e, depois, escolha **Next** (Próximo).

1. Na página **Execute automation document (Executar documento de automação)**, escolha **Simple execution (Execução simples)**.

1. Na seção **Document details (Detalhes do documento)**, verifique se **Versão do documento (Document version)** está definida como a versão padrão mais recente. Por exemplo, **\$1DEFAULT** ou **3 (default) (3 (padrão))**.

1. Na seção **Input parameters**, especifique os parâmetros a seguir: 

   1. Em **UnreachableInstanceId**, especifique o ID da instância inacessível. 

   1. (Opcional) Em **EC2RescueInstanceType**, especifique um tipo de instância para a instância EC2Rescue. O tipo de instância padrão é `t2.medium`.

   1. Em **AutomationAssumeRole**, se você criou funções para esta automação usando o procedimento do CloudFormation descrito anteriormente neste tópico, escolha o ARN de AssumeRole que você criou no console do CloudFormation.

   1. (Opcional) Em **LogDestination**, especifique um bucket do S3 se desejar coletar logs no nível do sistema operacional ao solucionar problemas da instância. Os logs são enviados automaticamente para o bucket especificado.

   1. Em **SubnetId**, especifique uma sub-rede em uma VPC existente na mesma zona de disponibilidade da instância inacessível. Por padrão, o Systems Manager cria uma nova VPC, mas você pode especificar uma sub-rede em uma VPC existente, se quiser.
**nota**  
Se a opção para especificar um bucket ou um ID de sub-rede não estiver disponível, verifique se você está usando a versão **padrão** mais recente do runbook.

1. (Opcional) Na área **Tags** aplique um ou mais pares de nome/valor de chave de tag para ajudar a identificar a automação, por exemplo, `Key=Purpose,Value=EC2Rescue`.

1. Clique em **Executar**.

O runbook cria uma AMI de backup como parte da automação. Todos os outros recursos criados pela automação são automaticamente excluídos, mas essa AMI permanece em sua conta. A AMI é chamada usando a convenção a seguir:

AMI de backup: AWSSupport-EC2Rescue:*UnreachableInstanceId*

Você pode localizar essa AMI no console do Amazon EC2 procurando o ID de execução do Automation.

# Redefinir senhas e chaves SSH em instâncias do EC2
<a name="automation-ec2reset"></a>

Você pode usar o runbook `AWSSupport-ResetAccess` para reativar automaticamente a geração de senhas do administrador local em instâncias do Amazon Elastic Compute Cloud (Amazon EC2) para o Windows Server e para gerar uma nova chave SSH nas instâncias do EC2 do Linux. O runbook `AWSSupport-ResetAccess` foi projetado para realizar uma combinação de ações do AWS Systems Manager, ações do AWS CloudFormation e funções do AWS Lambda que automatizam as etapas normalmente necessárias para redefinir a senha de administrador local.

Você pode usar o Automation, uma ferramenta do AWS Systems Manager, com o runbook `AWSSupport-ResetAccess` para resolver os seguintes problemas:

**Windows**

*Você perdeu o par de chaves EC2*: para resolver esse problema, você pode usar o runbook **AWSSupport-ResetAccess** para criar uma AMI ativada por senha de sua instância atual, inicie uma nova instância em uma AMI e selecione um par de chaves que você tenha.

*Você perdeu a senha do administrador local*: para resolver esse problema, você pode usar o runbook `AWSSupport-ResetAccess` para gerar uma nova senha que você pode descriptografar com o par de chaves EC2 atual.

**Linux**

*Você perdeu seu par de chaves EC2 ou configurou o acesso SSH à instância com uma chave perdida*: para resolver esse problema, você pode usar o runbook `AWSSupport-ResetAccess` para criar uma nova chave SSH para a instância atual, que permite se conectar à instância novamente.

**nota**  
Se a instância do EC2 para Windows Server for configurada para o Systems Manager, você poderá também redefinir a senha de administrador local usando o EC2Rescue e AWS Systems Manager Run Command. Para obter mais informações, consulte [Usar o EC2Rescue for Windows Server com o Run Command do Systems Manager](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2rw-ssm.html) no *Guia do usuário do Amazon EC2*.

**Informações relacionadas**  
[Conexão à sua instância do Linux via Windows usando o PuTTY](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html) no *Guia do usuário do Amazon EC2*

## Como funciona
<a name="automation-ec2reset-how"></a>

A solução de problemas em uma instância com o Automation e o runbook `AWSSupport-ResetAccess` funcionam da seguinte maneira:
+ Você especifica o ID da instância e executa o runbook.
+ O sistema cria uma VPC temporária e, em seguida, executa uma série de funções do Lambda para configurar a VPC.
+ O sistema identifica uma sub-rede para sua VPC temporária na mesma Zona de disponibilidade da sua instância original.
+ O sistema executa uma instância temporária auxiliar do , habilitada para o SSM.
+ O sistema interrompe sua instância original e cria um backup. Em seguida, atribui o volume raiz original à instância auxiliar.
+ O sistema usa o Run Command para executar o EC2Rescue na instância auxiliar. No Windows, o EC2Rescue permite a geração de senha para o administrador local usando o EC2Config ou EC2Launch no volume raiz original anexado. No Linux, o EC2Rescue gera e injeta uma nova chave SSH e salva a chave privada, criptografada em Parameter Store. Ao terminar, o EC2Rescue anexa o volume raiz de volta à instância original.
+ O sistema cria uma nova Amazon Machine Image (AMI) de sua instância, agora que a geração de senha está habilitada. Você pode usar essa AMI para criar uma nova instância do EC2 e associar um novo par de chaves, se necessário.
+ O sistema reinicia sua instância original e encerra a instância temporária. O sistema também encerra a VPC temporária e as funções Lambda criadas no início da automação.
+ **Windows**: a instância gera uma nova senha que você pode decodificar no console do Amazon EC2 usando o par de chaves atual designado para a instância.

  **Linux**: você pode se conectar à instância via SSH usando a chave SSH armazenada no Systems Manager Parameter Store, como **/ec2rl/openssh/*instance ID*/key**.

## Antes de começar
<a name="automation-ec2reset-begin"></a>

Antes de executar a automação a seguir:
+ Copie o ID da instância na qual você deseja redefinir a senha de administrador. Você especificará esse ID no procedimento.
+ Opcionalmente, colete o ID de uma sub-rede na mesma zona de disponibilidade como sua instância inacessível. A instância EC2Rescue será criada nessa sub-rede. Se você não especificar uma sub-rede, o Automation criará uma nova VPC temporária em sua Conta da AWS. Verifique se sua Conta da AWS tem pelo menos uma VPC disponível. Por padrão, você pode criar cinco VPCs em uma Região. Se você já tiver criado cinco VPCs na Região, a automação falhará sem fazer alterações na sua instância. Para obter mais informações sobre as cotas da Amazon VPC, consulte [VPC e sub-redes](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-vpcs-subnets) no *Manual do usuário da Amazon VPC*.
+ Opcionalmente, você pode criar e especificar uma função do AWS Identity and Access Management (IAM) para o Automation. Se você não especificar essa função, a automação será executada no contexto do usuário que executou a automação.

### Conceder a AWSSupport-EC2Rescue permissões para realizar ações em suas instâncias
<a name="automation-ec2reset-access"></a>

O EC2Rescue precisa de permissão para realizar uma série de ações nas suas instâncias durante a automação. Essas ações invocam os serviços do AWS Lambda, IAM e Amazon EC2 para tentar corrigir problemas com as instâncias de forma segura. Se você tiver permissões em nível de administrador na sua Conta da AWS e/ou VPC, poderá executar a automação sem configurar permissões, conforme descrito nesta seção. Se não tiver permissões em nível de Administrador, você ou um administrador deverá configurar permissões usando uma das seguintes opções.
+ [Conceder permissões usando políticas do IAM](#automation-ec2reset-access-iam)
+ [Conceder permissões usando um modelo do CloudFormation](#automation-ec2reset-access-cfn)

#### Conceder permissões usando políticas do IAM
<a name="automation-ec2reset-access-iam"></a>

É possível anexar a política do IAM a seguir ao seu usuário, grupo ou perfil como uma política em linha, ou criar uma nova política gerenciada do IAM e anexá-la ao seu usuário, grupo ou perfil. Para obter mais informações sobre como adicionar uma política em linha ao seu usuário, grupo ou perfil, consulte [Como trabalhar com políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html). Para obter mais informações sobre como criar uma nova política gerenciada, consulte [Como trabalhar com políticas gerenciadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html).

**nota**  
Se você criar uma nova política gerenciada do IAM, deverá também anexar a ela a política gerenciada **AmazonSSMAutomationRole** para que suas instâncias possam se comunicar com a API do Systems Manager.

**Política do IAM para `AWSSupport-ResetAccess`**

Substitua *account ID* (ID da conta) por suas próprias informações.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-EC2Rescue-*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::awssupport-ssm.*/*.template",
                "arn:aws:s3:::awssupport-ssm.*/*.zip"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport-EC2Rescue-*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport-EC2Rescue-*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "lambda:CreateFunction",
                "ec2:CreateVpc",
                "ec2:ModifyVpcAttribute",
                "ec2:DeleteVpc",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:DetachInternetGateway",
                "ec2:DeleteInternetGateway",
                "ec2:CreateSubnet",
                "ec2:DeleteSubnet",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:CreateRouteTable",
                "ec2:AssociateRouteTable",
                "ec2:DisassociateRouteTable",
                "ec2:DeleteRouteTable",
                "ec2:CreateVpcEndpoint",
                "ec2:DeleteVpcEndpoints",
                "ec2:ModifyVpcEndpoint",
                "ec2:Describe*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

#### Conceder permissões usando um modelo do CloudFormation
<a name="automation-ec2reset-access-cfn"></a>

CloudFormationO automatiza o processo de criação de políticas e funções do IAM, usando um modelo pré-configurado. Use o procedimento a seguir para criar as funções e políticas do IAM necessárias para o Automation EC2Rescue, usando o CloudFormation.

**Para criar as funções e políticas do IAM necessárias para o EC2Rescue**

1. Faça download de [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip) e extraia o arquivo `AWSSupport-EC2RescueRole.json` para um diretório em sua máquina local.

1. Se sua Conta da AWS estiver em uma partição especial, edite o modelo para alterar os valores do ARN para os valores da sua partição.

   Por exemplo, para as regiões da China, altere todos os casos de `arn:aws` para `arn:aws-cn`.

1. Faça login no Console de gerenciamento da AWS e abra o console CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Escolha **Create stack (Criar pilha)**, **With new resources (Com novos recursos (padrão))**.

1. Na página **Create stack (Criar pilha)**, em **Prerequisite - Prepare template (Pré-requisito – Preparar modelo)**, escolha **Template is ready (O modelo está pronto)**.

1. Em **Specify template (Especificar modelo)**, escolha **Upload a template file (Fazer upload de um arquivo de modelo)**.

1. Escolha **Choose file (Escolher arquivo)**, navegue até o arquivo `AWSSupport-EC2RescueRole.json` e selecione-o no diretório onde foi extraído.

1. Escolha **Próximo**.

1. Na página **Specify stack details (Especificar detalhes da pilha)**, no campo **Stack name (Nome da pilha)**, insira um nome para identificar essa pilha e escolha **Next (Próximo)**.

1. (Opcional) Na área **Tags**, aplique um ou mais pares de nome/valor de chave de tag a pilha.

   Tags são metadados opcionais que você atribui a um recurso. Tags permitem categorizar um recurso de diferentes formas, como por finalidade, proprietário ou ambiente. Por exemplo, talvez você queira marcar uma pilha para identificar o tipo de tarefas que ela executa, os tipos de destinos ou outros recursos envolvidos e o ambiente em que ela é executada.

1. Escolha **Next** (Próximo).

1. Na página **Review** (Análise), role para baixo e escolha a opção **I acknowledge that CloudFormation might create IAM resources (Entendo que o ** poderá criar recursos do IAM).

1. O CloudFormation mostrará o status **CREATE\$1IN\$1PROGRESS (CRIAÇÃO\$1EM\$1ANDAMENTO)** por alguns minutos. O status mudará para **CREATE\$1COMPLETE** depois que a pilha tiver sido criada. Também é possível escolher o ícone de atualização para verificar o status do processo de criação.

1. Na lista de pilhas, escolha a opção ao lado da pilha que você acabou de criar e selecione a guia **Outputs (Saídas)**.

1. Copie o conteúdo em **Value**. Este é o ARN de AssumeRole. Você especificará esse ARN quando executar a automação. 

## Executar a Automação
<a name="automation-ec2reset-executing"></a>

O procedimento a seguir descreve como executar o runbook `AWSSupport-ResetAccess` usando o console do AWS Systems Manager.

**Importante**  
A automação a seguir interrompe a instância. A interrupção da instância pode resultar em perda de dados em volumes de armazenamento de instâncias anexados (se presentes). A interrupção da instância também pode fazer com que o IP público seja alterado, caso nenhum IP elástico esteja associado. Para evitar essas alterações de configuração, use o Run Command para redefinir o acesso. Para obter mais informações, consulte [Usar o EC2Rescue para Windows Server com o Run Command do Systems Manager](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2rw-ssm.html) no *Guia do usuário do Amazon EC2*.

**Para executar a automação AWSSupport-ResetAccess**

1. Abra o console AWS Systems Manager em [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

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

1. Escolha **Execute automation**.

1. Na seção **Automation document (Documento de automação)**, escolha **Owned by Amazon (De propriedade da Amazon)** na lista.

1. Na lista de runbooks, escolha o botão no cartão para **AWSSupport-ResetAccess** e escolha **Next** (Próximo).

1. Na página **Execute automation document (Executar documento de automação)**, escolha **Simple execution (Execução simples)**.

1. Na seção **Document details (Detalhes do documento)**, verifique se **Versão do documento (Document version)** está definida como a versão padrão mais recente. Por exemplo, **\$1DEFAULT** ou **3 (default) (3 (padrão))**.

1. Na seção **Input parameters**, especifique os parâmetros a seguir: 

   1. Em **InstanceID**, especifique o ID da instância inacessível. 

   1. Em **SubnetId**, especifique uma sub-rede em uma VPC existente na mesma zona de disponibilidade da instância que você especificou. Por padrão, o Systems Manager cria uma nova VPC, mas você pode especificar uma sub-rede em uma VPC existente, se quiser.
**nota**  
Se a opção para especificar um ID de sub-rede não estiver disponível, verifique se você está usando a versão **padrão** mais recente do runbook.

   1. Em **EC2RescueInstanceType**, especifique um tipo de instância para a instância EC2Rescue. O tipo de instância padrão é `t2.medium`.

   1. Em **AssumeRole**, se você criou funções para essa automação usando o procedimento do CloudFormation descrito anteriormente neste tópico, especifique o ARN de AssumeRole que você anotou no console do CloudFormation.

1. (Opcional) Na área **Tags** aplique um ou mais pares de nome/valor de chave de tag para ajudar a identificar a automação, por exemplo, `Key=Purpose,Value=ResetAccess`.

1. Clique em **Executar**.

1. Para monitorar o progresso da automação, escolha a automação em execução e depois escolha a guia **Steps** (Etapas). Quando a automação for concluída, escolha a guia **Descriptions** (Descrições) e, em seguida, **View output** (Exibir resultados) para visualizar os resultados. Para exibir a saída de etapas individuais, selecione a guia **Steps (Etapas)** e selecione **View Outputs (Visualizar saídas)** ao lado de uma etapa.

O runbook cria uma AMI de backup e uma AMI ativada por senha como parte da automação. Todos os outros recursos criados pela automação são automaticamente excluídos, mas essas AMIs permanecem em sua conta. As AMIs são nomeadas usando as seguintes convenções:
+ AMI de backup: `AWSSupport-EC2Rescue:InstanceID`
+ AMI ativada por senha: AWSSupport-EC2Rescue: AMI ativada por senha de *Instance ID*

Você pode localizar essas AMIs procurando o ID de execução do Automation.

No Linux, a nova chave privada SSH para sua instância é salva, criptografada, Parameter Store. O nome do parâmetro é **/ec2rl/openssh/*Instance ID*/key**.

# Transferência de dados para o Automation usando transformadores de entrada
<a name="automation-tutorial-eventbridge-input-transformers"></a>

Este tutorial do AWS Systems Manager Automation mostra como usar o recurso transformador de entrada do Amazon EventBridge para extrair o `instance-id` de uma instância do Amazon Elastic Compute Cloud (Amazon EC2) de um evento de alteração de estado da instância. O Automation é uma ferramenta do AWS Systems Manager. Usamos o transformador de entrada para passar esses dados ao destino do runbook do `AWS-CreateImage`, como o parâmetro de entrada do `InstanceId`. A regra será acionada quando qualquer instância for alterada para o estado `stopped`.

Para obter mais informações sobre como trabalhar com transformadores de entrada, consulte [Tutorial: Use o transformador de entrada para personalizar o que o EventBridge passa para o destino do evento](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-input-transformer-tutorial.html) no *Manual do usuário do Amazon EventBridge*.

**Antes de começar**  
Verifique se adicionou as permissões necessárias e a política de confiança para o EventBridge para a função de serviço do Systems Manager Automation. Para obter mais informações, consulte [Visão geral do gerenciamento de permissões de acesso aos recursos do EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/iam-access-control-identity-based-eventbridge.html) no *Manual do usuário do Amazon EventBridge*.

**Como usar transformadores de entrada com automação**

1. Abra o console do Amazon EventBridge em [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. No painel de navegação, escolha **Regras**.

1. Escolha **Create rule**.

1. Insira um nome e uma descrição para a regra.

   Uma regra não pode ter o mesmo nome que outra na mesma Região e barramento de eventos.

1. Em **Barramento de eventos**, selecione o barramento de eventos que você deseja associar a essa regra. Se você quiser que essa regra responda a eventos correspondentes provenientes da sua Conta da AWS, selecione **default** (padrão). Quando um AWS service (Serviço da AWS) na sua conta emite um evento, ele sempre vai para o barramento de eventos padrão da sua conta.

1. Em **Rule type**, escolha **Rule with an event pattern**.

1. Escolha **Próximo**.

1. Em **Event source**, escolha **Eventos da AWS ou eventos de parceiro do EventBridge**.

1. Na seção **Padrão de evento**, selecione **Formulário de padrão de evento**.

1. Em **Event source** (Origem do evento), escolha **AWS services** (Serviços da ).

1. Em **Serviço da AWS**, escolha **EC2**.

1. Para **Event Type (Tipo de evento)**, escolha **EC2 Instance State-change Notification (Notificação de alteração de estado da instância do EC2)**.

1. Para **Especificação de tipo de evento 1**, selecione **Estado(s) específico(s)** e escolha **parado**.

1. Para **Especificação de tipo de evento 2**, selecione **Qualquer instância** ou selecione **ID(s) de instância específica** e insira as IDs das instâncias a serem monitoradas.

1. Escolha **Próximo**.

1. Em **Tipos de destino**, escolha **Serviço da AWS**.

1. Para **Select a target** (Selecionar um destino), escolha **Systems Manager Automation** (Automation do Systems Manager).

1. Em **Document (Documento)**, escolha **AWS-CreateImage**.

1. Na seção **Configure automation parameter(s)** (Configurar parâmetros de automação), escolha **Input Transformer** (Transformador de entrada).

1. Para **Input path** (Caminho de entrada), insira **\$1"instance":"\$1.detail.instance-id"\$1**.

1. Para **Template** (Modelo), insira **\$1"InstanceId":[<instance>]\$1**.

1. Para **Execution role**, escolha **Use existing role** (Usar função existente) e escolha sua função de serviço do Automation.

1. Escolha **Próximo**.

1. (Opcional) Insira uma ou mais tags para a regra. Para obter mais informações, consulte [Marcar recursos do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-tagging.html) no *Guia do usuário do Amazon EventBridge*.

1. Escolha **Próximo**.

1. Analise os detalhes da regra e selecione **Criar regra**.