

# Configurar as ferramentas de AMIs do Amazon EC2
<a name="set-up-ami-tools"></a>

Você pode usar as ferramentas da AMI para criar e gerenciar AMIs do Linux baseadas no Amazon S3. Para usar as ferramentas, é necessário instalá-las na sua instância do Linux. As ferramentas das AMIs estão disponíveis como RPM e arquivo .zip para distribuições Linux incompatíveis com RPM. 

**Para definir as ferramentas da AMI usando RPM**

1. Instale o Ruby usando o gerenciador de pacotes para sua distribuição do Linux, como yum. Por exemplo:

   ```
   [ec2-user ~]$ sudo yum install -y ruby
   ```

1. Baixe o arquivo RPM usando uma ferramenta como wget ou curl. Por exemplo:

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm
   ```

1. Verifique se a assinatura do arquivo RPM está usando o seguinte comando:

   ```
   [ec2-user ~]$ rpm -K ec2-ami-tools.noarch.rpm
   ```

   O comando acima deve indicar que os hashes SHA1 e MD5 do arquivo estão `OK.` Se o comando indicar que os hashes estão `NOT OK`, use o seguinte comando para ver os hashes SHA1 e MD5 do cabeçalho do arquivo:

   ```
   [ec2-user ~]$ rpm -Kv ec2-ami-tools.noarch.rpm
   ```

   Em seguida, compare os hashes SHA1 e MD5 do cabeçalho do arquivo com os seguintes hashes das ferramentas de AMIs verificadas para confirmar a autenticidade do arquivo:
   + SHA1 do cabeçalho: a1f662d6f25f69871104e6a62187fa4df508f880
   + MD5: 9faff05258064e2f7909b66142de6782

   Se os hashes SHA1 e MD5 do cabeçalho do arquivo corresponder aos hashes das ferramentas de AMI verificadas, vá para a próxima etapa.

1. Instale o RPM usando o comando a seguir:

   ```
   [ec2-user ~]$ sudo yum install ec2-ami-tools.noarch.rpm
   ```

1. Verifique a instalação das suas ferramentas da AMI usando o comando [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version).

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```
**nota**  
Se você receber um erro de carregamento, como "não é possível carregar esse arquivo -- ec2/amitools/version (LoadError)", realize a próxima etapa para adicionar o local de instalação das suas ferramentas da AMI para seu `RUBYLIB` caminho.

1. (Opcional) Se você tiver recebido um erro na etapa anterior, adicione a localização das suas ferramentas da AMI para seu caminho `RUBYLIB`.

   1. Execute o comando a seguir para determinar os caminhos a adicionar.

      ```
      [ec2-user ~]$ rpm -qil ec2-ami-tools | grep ec2/amitools/version
      /usr/lib/ruby/site_ruby/ec2/amitools/version.rb
      /usr/lib64/ruby/site_ruby/ec2/amitools/version.rb
      ```

      No exemplo acima, o arquivo ausente no erro de carga anterior está localizado em `/usr/lib/ruby/site_ruby` e `/usr/lib64/ruby/site_ruby`.

   1. Adicione os locais da etapa anterior ao seu caminho de `RUBYLIB`.

      ```
      [ec2-user ~]$ export RUBYLIB=$RUBYLIB:/usr/lib/ruby/site_ruby:/usr/lib64/ruby/site_ruby
      ```

   1. Verifique a instalação das suas ferramentas da AMI usando o comando [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version).

      ```
      [ec2-user ~]$ ec2-ami-tools-version
      ```

**Para configurar as ferramentas da AMI usando o arquivo .zip**

1. Instale o Ruby e descompacte usando o gerenciador de pacotes para sua distribuição do Linux, como **apt-get**. Por exemplo:

   ```
   [ec2-user ~]$ sudo apt-get update -y && sudo apt-get install -y ruby unzip
   ```

1. Baixe o arquivo .zip usando uma ferramenta como wget ou curl. Por exemplo:

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
   ```

1. Descompacte os arquivos em um diretório de instalação apropriado, como `/usr/local/ec2`.

   ```
   [ec2-user ~]$ sudo mkdir -p /usr/local/ec2
   $ sudo unzip ec2-ami-tools.zip -d /usr/local/ec2
   ```

   Observe que o arquivo .zip contém uma pasta ec2-ami-tools-*x*.*x*.*x*, em que *x*.*x*.*x* é o número da versão das ferramentas (por exemplo, `ec2-ami-tools-1.5.7`).

1. Ajuste a variável de ambiente `EC2_AMITOOL_HOME` para o diretório de instalação para as ferramentas. Por exemplo:

   ```
   [ec2-user ~]$ export EC2_AMITOOL_HOME=/usr/local/ec2/ec2-ami-tools-x.x.x
   ```

1. Adicione as ferramentas à sua variável de ambiente `PATH`. Por exemplo:

   ```
   [ec2-user ~]$ export PATH=$EC2_AMITOOL_HOME/bin:$PATH
   ```

1. É possível verificar a instalação das suas ferramentas da AMI usando o comando [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version).

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```

## Gerenciar certificados de assinatura
<a name="ami-tools-managing-certs"></a>

Determinados comandos nas ferramentas da AMI exigem a assinatura de um certificado (também conhecido como certificado X.509). É necessário criar o certificado e, então, carregá-lo para a AWS. Por exemplo, é possível usar uma ferramenta de terceiros, como OpenSSL, para criar o certificado.

**Para criar um certificado de assinatura**

1. Instale e configure o OpenSSL.

1. Crie uma chave privada usando o comando `openssl genrsa` e salve a saída em um arquivo `.pem`. Recomendamos que você crie uma chave RSA de 2048 ou 4096 bits.

   ```
   openssl genrsa 2048 > private-key.pem
   ```

1. Gere um certificado usando o comando `openssl req`.

   ```
   openssl req -new -x509 -nodes -sha256 -days 365 -key private-key.pem -outform PEM -out certificate.pem
   ```

Para carregar o certificado para a AWS, use o comando [upload-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/upload-signing-certificate.html).

```
aws iam upload-signing-certificate --user-name user-name --certificate-body file://path/to/certificate.pem
```

Para listar os certificados para um usuário, use o comando [list-signing-certificates](https://docs.aws.amazon.com/cli/latest/reference/iam/list-signing-certificates.html):

```
aws iam list-signing-certificates --user-name user-name
```

Para desabilitar ou reabilitar um certificado de assinatura para um usuário, use o comando [update-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/update-signing-certificate.html). O comando a seguir desabilita o certificado:

```
aws iam update-signing-certificate --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE --status Inactive --user-name user-name
```

Para excluir um certificado, use o comando [delete-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-signing-certificate.html):

```
aws iam delete-signing-certificate --user-name user-name --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE
```