

# Conecte-se à sua instância Linux usando um endereço IP público e o EC2 Instance Connect
<a name="connect-linux-inst-eic"></a>

O Amazon EC2 Instance Connect fornece uma forma segura de conexão com as instâncias do Linux com o Secure Shell (SSH). Com o EC2 Instance Connect, você usa [políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) do AWS Identity and Access Management (IAM) e [principais](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) para controlar o acesso de SSH às suas instâncias, eliminando a necessidade de compartilhar e gerenciar as chaves de SSH. Todas as solicitações de conexão usando o EC2 Instance Connect são [registradas no AWS CloudTrail para que você possa auditar as solicitações de conexão](monitor-with-cloudtrail.md#ec2-instance-connect-cloudtrail).

É possível usar o EC2 Instance Connect para se conectar às instâncias usando o console do Amazon EC2 ou um cliente SSH da sua escolha.

Ao conectar-se a uma instância usando o EC2 Instance Connect, a API do EC2 Instance Connect envia por push uma chave pública SSH para os [metadados da instância](ec2-instance-metadata.md), onde ela permanece por 60 segundos. A política do IAM anexada ao usuário autoriza o usuário a enviar por push a chave pública para os metadados da instância. O daemon SSH usa `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser`, que são configurados quando o EC2 Instance Connect é instalado, para procurar a chave pública dos metadados da instância para autenticação e conectar você à instância.

**dica**  
O EC2 Instance Connect é uma das opções para se conectar a instâncias do Linux. Para obter outras opções, consulte [Conectar-se à instância do Linux usando SSH](connect-to-linux-instance.md). Para se conectar a uma instância do Windows, consulte [Conectar-se à instância do Windows no usando RDP](connecting_to_windows_instance.md).

**Preços**  
O EC2 Instance Connect está disponível sem custo adicional.

**Disponibilidade de regiões**  
O EC2 Instance Connect está disponível em todas as Regiões da AWS, exceto na região Ásia-Pacífico (Malásia). Ele não é compatível em zonas locais.

**Topics**
+ [Tutorial](ec2-instance-connect-tutorial.md)
+ [Pré-requisitos](ec2-instance-connect-prerequisites.md)
+ [Permissões](ec2-instance-connect-configure-IAM-role.md)
+ [Instalar o EC2 Instance Connect](ec2-instance-connect-set-up.md)
+ [Conectar a uma instância](ec2-instance-connect-methods.md)
+ [Desinstalar o EC2 Instance Connect](ec2-instance-connect-uninstall.md)

Para obter uma postagem de blog que discute como melhorar a segurança de bastion hosts usando o EC2 Instance Connect, consulte [Proteção dos seus bastion hosts com o Amazon EC2 Instance Connect](https://aws.amazon.com/blogs/infrastructure-and-automation/securing-your-bastion-hosts-with-amazon-ec2-instance-connect/).

# Tutorial: Concluir a configuração necessária para se conectar à sua instância usando o EC2 Instance Connect
<a name="ec2-instance-connect-tutorial"></a>

Para se conectar à sua instância usando o EC2 Instance Connect no console do Amazon EC2, primeiro é necessário concluir a configuração de pré-requisito que permitirá que você se conecte com sucesso à sua instância. O objetivo deste tutorial é orientar você pelas tarefas de conclusão da configuração de pré-requisitos.

**Visão geral do tutorial**

Nesse tutorial, você deverá concluir as seguintes quatro tarefas:
+ [Tarefa 1: conceder as permissões necessárias para usar o EC2 Instance Connect](#eic-tut1-task1)

  Primeiro, você criará uma política do IAM que contenha as permissões do IAM que permitem que você envie uma chave pública para os metadados da instância. Você anexará essa política à sua identidade (usuário, grupo de usuários ou perfil) do IAM para que sua identidade do IAM receba essas permissões.
+ [Tarefa 2: permitir tráfego de entrada do serviço EC2 Instance Connect para a instância](#eic-tut1-task2)

  Em seguida, você criará um grupo de segurança que permita o tráfego do EC2 Instance Connect para sua instância. Isso é necessário quando você usa o EC2 Instance Connect no console do Amazon EC2 para se conectar à sua instância.
+ [Tarefa 3: iniciar sua instância](#eic-tut1-task3)

  Em seguida, você iniciará uma instância do EC2 usando uma AMI pré-instalada com o EC2 Instance Connect e adicionará o grupo de segurança que criou na etapa anterior.
+ [Tarefa 4: conectar à sua instância](#eic-tut1-task4)

  Por fim, você usará o EC2 Instance Connect no console do Amazon EC2 para se conectar à sua instância. Se você conseguir se conectar, poderá ter certeza de que a configuração de pré-requisito concluída nas Tarefas 1, 2 e 3 foi bem-sucedida.

## Tarefa 1: conceder as permissões necessárias para usar o EC2 Instance Connect
<a name="eic-tut1-task1"></a>

Ao conectar-se a uma instância usando o EC2 Instance Connect, a API do EC2 Instance Connect envia por push uma chave pública SSH para os [metadados da instância](ec2-instance-metadata.md), onde ela permanece por 60 segundos. É necessário ter uma política do IAM anexada à sua identidade do IAM (usuário, grupo de usuários ou função) para fornecer a permissão necessária para enviar por push a chave pública para os metadados da instância.

**Objetivo da tarefa**

Você criará a política do IAM que concede a permissão necessária para enviar por push a chave pública para a instância. A ação específica a ser permitida é `ec2-instance-connect:SendSSHPublicKey`. Você também deve permitir a ação `ec2:DescribeInstances` para poder visualizar e selecionar sua instância no console do Amazon EC2.

Depois de criar a política, você anexará a política à sua identidade do IAM (usuário, grupo de usuários ou perfil) para que sua identidade do IAM receba as permissões.

Você criará uma política configurada da seguinte forma:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}
```

------

**Importante**  
A política do IAM criada neste tutorial é uma política altamente permissiva. Ela permite que você se conecte a qualquer instância usando qualquer nome de usuário da AMI. Estamos usando essa política altamente permissiva para manter o tutorial simples e focado nas configurações específicas que este tutorial está ensinando. No entanto, em um ambiente de produção, recomendamos que sua política do IAM seja configurada para fornecer permissões com [privilégios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). Para obter exemplos de políticas do IAM, consulte [Conceder permissões do IAM para o EC2 Instance Connect](ec2-instance-connect-configure-IAM-role.md).

**Para criar e anexar uma política do IAM que permita a você usar o EC2 Instance Connect para se conectar às suas instâncias**

1. **Crie primeiro a política do IAM**

   1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

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

   1. Selecione **Criar política**.

   1. Na página **Especificar permissão**, faça o seguinte:

      1. Em **Serviço**, escolha **EC2 Instance Connect**.

      1. Em **Ações permitidas**, no campo de pesquisa, comece a digitar **send** para mostrar as ações relevantes e selecione **SendSSHPublicKey**.

      1. Em **Recursos**, escolha **Todos**. Para um ambiente de produção, recomendamos especificar a instância pelo ARN, mas, neste tutorial, você está permitindo todas as instâncias.

      1. Escolha **Add more permissions (Adicionar mais permissões)**.

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

      1. Em **Ações permitidas**, no campo de pesquisa, comece a digitar **describein** para mostrar as ações relevantes e selecione **DescribeInstances**.

      1. Escolha **Próximo**.

   1. Na página **Revisar e criar**, faça o seguinte:

      1. Em **Policy Name (Nome da política)**, digite um nome para a política.

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

1. **Em seguida, anexe a política à sua identidade**

   1. No console do IAM, no painel de navegação, escolha **Policies** (Políticas).

   1. Na lista de políticas, selecione o botão de seleção ao lado do nome da política que você criou. É possível usar a caixa de pesquisa para filtrar a lista de políticas.

   1. Clique em **Actions (Ações)** e em **Attach (Associar)**.

   1. Em **Entidades do IAM**, marque a caixa de seleção ao lado da sua identidade (usuário, grupo de usuários ou perfil). É possível usar a caixa de pesquisa para filtrar a lista de identidades.

   1. Escolha **Anexar política**.

### Visualizar uma animação: criar uma política do IAM
<a name="eic-tut1-task1-animation1"></a>

![\[Esta animação mostra como criar uma política do IAM. Para obter a versão em texto desta animação, consulte as etapas do procedimento anterior.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/eic-tut1-task1-create-iam-policy.gif)


### Visualizar uma animação: anexar uma política do IAM
<a name="eic-tut1-task1-animation2"></a>

![\[Esta animação mostra como anexar uma política do IAM a uma identidade do IAM. Para obter a versão em texto desta animação, consulte as etapas do procedimento anterior.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/eic-tut1-task1-attach-iam-policy.gif)


## Tarefa 2: permitir tráfego de entrada do serviço EC2 Instance Connect para a instância
<a name="eic-tut1-task2"></a>

Quando você usa o EC2 Instance Connect no console do Amazon EC2 para se conectar a uma instância, o tráfego que deve ser permitido para chegar à instância é o tráfego do serviço do EC2 Instance Connect. Isso é diferente de se conectar do seu computador local a uma instância; nesse caso, você deverá permitir o tráfego do seu computador local para sua instância. Para permitir o tráfego do EC2 Instance Connect, é necessário criar um grupo de segurança que permita tráfego SSH de entrada da faixa de endereços IP para o serviço do EC2 Instance Connect.

A AWS usa listas de prefixos para gerenciar intervalos de endereços IP. Os nomes das listas de prefixos do EC2 Instance Connect são os seguintes, com a *região* substituída pelo código da região:
+ Nome da lista de prefixos IPv4: `com.amazonaws.region.ec2-instance-connect`
+ Nome da lista de prefixos IPv6: `com.amazonaws.region.ipv6.ec2-instance-connect`

**Objetivo da tarefa**

Você criará um grupo de segurança que permite tráfego SSH de entrada na porta 22 da lista de prefixos IPv4 na região em que sua instância está localizada.

**Para criar um grupo de segurança que permita tráfego de entrada do serviço do EC2 Instance Connect para sua instância**

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

1. No painel de navegação, selecione **Grupos de segurança**.

1. Escolha **Criar grupo de segurança**.

1. Em **Basic details (Detalhes básicos)**, faça o seguinte:

   1. Em **Nome do grupo de segurança**, insira um nome que faça sentido para o grupo de segurança.

   1. Em **Descrição**, insira uma descrição para o grupo de segurança.

1. Em **Regras de entrada**, faça o seguinte:

   1. Escolha **Adicionar regra**.

   1. Para **Tipo**, escolha **SSH**.

   1. Em **Origem**, mantenha a opção **Personalizada**.

   1. No campo ao lado de **Origem**, selecione a lista de prefixos do EC2 Instance Connect.

      Por exemplo, se sua instância estiver localizada na região Leste dos EUA (Norte da Virgínia) (`us-east-1`) e seus usuários se conectarão ao seu endereço IPv4 público, escolha a seguinte lista de prefixos: **com.amazonaws.us-east-1.ec2-instance-connect**

1. Escolha **Criar grupo de segurança**.

### Visualizar uma animação: criar um grupo de segurança
<a name="eic-tut1-task2-animation"></a>

![\[Esta animação mostra como configurar um grupo de segurança. Para obter a versão em texto desta animação, consulte as etapas do procedimento anterior.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/tut1-task2-eic-security-group.gif)


## Tarefa 3: iniciar sua instância
<a name="eic-tut1-task3"></a>

Ao iniciar uma instância, especifique uma AMI que contenha as informações necessárias para iniciá-la. É possível optar por iniciar uma instância com ou sem o EC2 Instance Connect pré-instalado. Nessa tarefa, especificamos uma AMI que é fornecida pré-instalada com o EC2 Instance Connect.

Se você iniciar sua instância sem o EC2 Instance Connect pré-instalado e quiser usar o EC2 Instance Connect para se conectar à sua instância, precisará executar etapas adicionais de configuração. Essas etapas estão fora do escopo deste tutorial.

**Objetivo da tarefa**

Você iniciará uma instância com a AMI do Amazon Linux 2023, que é fornecida pré-instalada com o EC2 Instance Connect. Você também especificará o grupo de segurança que criou anteriormente para poder usar o EC2 Instance Connect no console do Amazon EC2 para se conectar à sua instância. Como você usará o EC2 Instance Connect para se conectar à sua instância, que envia uma chave pública aos metadados da sua instância, não será necessário especificar uma chave SSH ao executar sua instância.

**Para iniciar uma instância que pode usar o EC2 Instance Connect no console do Amazon EC2 para conexão**

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

1. Na barra de navegação na parte superior da tela, a região da AWS atual será exibida (por exemplo, **Irlanda**). Selecione uma região na qual a instância será iniciada. Essa escolha é importante porque você criou um grupo de segurança que permite tráfego para uma região específica. Por isso, é necessário selecionar a mesma região na qual a instância será executada.

1. No painel do console do Amazon EC2, selecione **Launch instance (Executar instância)**. 

1. (Opcional) Em **Name and tags** (Nome e tags), para **Name** (Nome), insira um nome descritivo para a instância.

1. Em **Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)**, escolha **Início rápido**. O **Amazon Linux** é selecionado por padrão. Em **Imagem de máquina da Amazon (AMI)**, a opção **AMI do Amazon Linux 2023** é selecionada por padrão. Mantenha a seleção padrão para essa tarefa.

1. Em **Tipo de instância**, para **Tipo de instância**, mantenha a seleção padrão ou escolha um tipo de instância diferente.

1. Em **Par de chaves (login)**, em **Nome do par de chaves**, escolha **Continuar sem um par de chaves (não recomendado)**. Quando você usa o EC2 Instance Connect para se conectar a uma instância, o EC2 Instance Connect envia um par de chaves para os metadados da instância, e é esse par de chaves que é usado para a conexão.

1. Em **Network settings** (Configurações de rede), faça o seguinte:

   1. Em **Atribuir IP público automaticamente**, mantenha a opçaõ **Habilitar**.
**nota**  
Para usar o EC2 Instance Connect no console do Amazon EC2 para se conectar a uma instância, a instância deve ter um endereço IPv4 público ou IPv6.

   1. Em **Firewall (grupos de segurança)**, escolha **Selecionar grupo de segurança existente**.

   1. Em **Grupos de segurança comuns**, escolha o grupo de segurança criado anteriormente.

1. No painel **Resumo** painel, escolha **Iniciar instância**.

### Visualizar uma animação: iniciar sua instância
<a name="eic-tut1-task3-animation"></a>

![\[Esta animação mostra como iniciar uma instância. Para obter a versão em texto desta animação, consulte as etapas do procedimento anterior.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/tut1-task3-launch-an-instance.gif)


## Tarefa 4: conectar à sua instância
<a name="eic-tut1-task4"></a>

Ao conectar-se a uma instância usando o EC2 Instance Connect, a API do EC2 Instance Connect envia por push uma chave pública SSH para os [metadados da instância](ec2-instance-metadata.md), onde ela permanece por 60 segundos. O daemon SSH usa `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser` para procurar a chave pública nos metadados da instância para autenticação e conectar você à instância.

**Objetivo da tarefa**

Nessa tarefa, você se conectará à sua instância usando o EC2 Instance Connect no console do Amazon EC2. Se você concluiu os pré-requisitos das Tarefas 1, 2 e 3, a conexão deverá ser bem-sucedida. 

**Etapas para se conectar à sua instância**

Use as etapas a seguir para se conectar à sua instância. Para visualizar uma animação dessas etapas, consulte [Visualizar uma animação: conectar à sua instância](#eic-tut1-task4-animation).

**Para conectar uma instância usando o EC2 Instance Connect no console do Amazon EC2**

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

1. Na barra de navegação na parte superior da tela, a região da AWS atual será exibida (por exemplo, **Irlanda**). Selecione a região na qual a instância está localizada.

1. No painel de navegação, escolha **Instâncias**. 

1. Selecione a instância e escolha **Conectar**.

1. Escolha a guia **EC2 Instance Connect**.

1. Escolha **Conectar usando um IP público**. 

1. Selecione **Conectar**.

   Uma janela de terminal abrirá no navegador e você estará conectado à sua instância.

### Visualizar uma animação: conectar à sua instância
<a name="eic-tut1-task4-animation"></a>

![\[Esta animação mostra como conectar uma instância usando o EC2 Instance Connect. Para obter a versão em texto desta animação, consulte as etapas do procedimento anterior.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/eic-tut1-task4-connect.gif)


# Pré-requisitos para o EC2 Instance Connect
<a name="ec2-instance-connect-prerequisites"></a>

**Topics**
+ [Instalar o EC2 Instance Connect](#eic-prereqs-install-eic-on-instance)
+ [Garantir a conectividade da rede](#eic-prereqs-network-access)
+ [Permitir tráfego SSH de entrada](#ec2-instance-connect-setup-security-group)
+ [Conceder permissões](#eic-prereqs-grant-permissions)
+ [Instalar um cliente SSH no computador local](#eic-prereqs-install-ssh-client)
+ [Atender a requisitos de nome de usuário](#eic-prereqs-username)

## Instalar o EC2 Instance Connect
<a name="eic-prereqs-install-eic-on-instance"></a>

Para usar o EC2 Instance Connect para se conectar a uma instância, a instância deve ter o EC2 Instance Connect instalado. É possível iniciar a instância usando uma AMI que é fornecida pré-instalada com o EC2 Instance Connect ou instalar o EC2 Instance Connect em instâncias que são iniciadas com AMIs compatíveis. Para obter mais informações, consulte [Instalar o EC2 Instance Connect nas suas instâncias do EC2](ec2-instance-connect-set-up.md).

## Garantir a conectividade da rede
<a name="eic-prereqs-network-access"></a>

As instâncias podem ser configuradas para permitir que os usuários conectem-se à sua instância pela Internet ou por meio do endereço IP privado da instância. Dependendo de como seus usuários forem conectar-se à sua instância usando o EC2 Instance Connect, será necessário configurar o seguinte acesso à rede:
+ Se os usuários forem se conectar à sua instância pela Internet, a instância deverá ter um endereço público IPv4 ou IPv6 e estar em uma sub-rede pública com uma rota para a Internet. Se você não modificou sua sub-rede pública padrão, ela contém uma rota para a Internet somente para IPv4, e não para IPv6. Para obter mais informações, consulte [Habilitar o acesso à internet usando gateways da internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#vpc-igw-internet-access) no *Guia do usuário do Amazon VPC*.
+ Caso seus usuários forem se conectar à sua instância por meio do endereço IPv4 privado da instância, você deverá estabelecer uma conectividade de rede privada com sua VPC por meio do AWS Direct Connect, do AWS Site-to-Site VPN ou do emparelhamento da VPC, para que os usuários possam acessar o endereço IP privado da instância.

Se a instância não tiver um endereço IPv4 público ou um endereço IPv6 e você preferir não configurar o acesso à rede como descrito acima, considere o EC2 Instance Connect Endpoint como uma alternativa ao EC2 Instance Connect. Com o EC2 Instance Connect Endpoint, você pode se conectar a uma instância usando SSH ou RDP mesmo que a instância não tenha um endereço um IPv4 público ou um endereço IPv6. Para obter mais informações, consulte [Conectar-se à sua instância do Linux usando o console do Amazon EC2](connect-using-eice.md#connect-using-the-ec2-console).

## Permitir tráfego SSH de entrada
<a name="ec2-instance-connect-setup-security-group"></a>

**Ao usar o console do Amazon EC2 para se conectar a uma instância**  
Quando usuários se conectam a uma instância usando o console do Amazon EC2 o tráfego que deve ser permitido para chegar à instância é o tráfego do serviço do EC2 Instance Connect. O serviço é identificado por intervalos de endereços IP específicos, que a AWS gerencia por meio de listas de prefixos. Você deve criar um grupo de segurança que permita tráfego de SSH de entrada do serviço do EC2 Instance Connect. Para configurar isso, para a regra de entrada, no campo ao lado de **Origem**, selecione a lista de prefixos do EC2 Instance Connect.

A AWS fornece diferentes listas de prefixo gerenciadas para endereços IPv4 e IPv6 para cada região. Os nomes das listas de prefixos do EC2 Instance Connect são os seguintes, com a *região* substituída pelo código da região:
+ Nome da lista de prefixos IPv4: `com.amazonaws.region.ec2-instance-connect`
+ Nome da lista de prefixos IPv6: `com.amazonaws.region.ipv6.ec2-instance-connect`

Para obter instruções sobre a criação do grupo de segurança, consulte [Tarefa 2: permitir tráfego de entrada do serviço EC2 Instance Connect para a instância](ec2-instance-connect-tutorial.md#eic-tut1-task2). Para obter mais informações, consulte [AWS-managed prefix lists](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#available-aws-managed-prefix-lists) disponíveis no *Guia do usuário do Amazon VPC*.

**Ao usar a CLI ou SSH para conectar a uma instância**  
Certifique-se de que o grupo de segurança associado à sua instância [permita tráfego SSH de entrada](security-group-rules-reference.md#sg-rules-local-access) na porta 22 a partir do seu endereço IP ou da rede. O grupo de segurança padrão para a VPC não permite o tráfego SSH de entrada por padrão. O grupo de segurança criado pelo assistente de inicialização de instâncias permite o tráfego SSH de entrada por padrão. Para obter mais informações, consulte [Regras para se conectar a instâncias pelo computador](security-group-rules-reference.md#sg-rules-local-access).

## Conceder permissões
<a name="eic-prereqs-grant-permissions"></a>

Você deve conceder as permissões necessárias a cada usuário do IAM que usará o EC2 Instance Connect para se conectar a uma instância. Para obter mais informações, consulte [Conceder permissões do IAM para o EC2 Instance Connect](ec2-instance-connect-configure-IAM-role.md).

## Instalar um cliente SSH no computador local
<a name="eic-prereqs-install-ssh-client"></a>

Caso os usuários utilizem SSH para se conectar, eles devem garantir que o computador local tenha um cliente SSH.

É muito provável que o computador local do usuário tenha um cliente SSH instalado por padrão. É possível verificar se existe um cliente SSH digitando **ssh** na linha de comando. Se o computador local não reconhecer o comando, será preciso instalar um cliente SSH. Para obter informações sobre como instalar um cliente SSH no Linux ou macOS X, consulte [http://www.openssh.com](http://www.openssh.com/). Para obter informações sobre como instalar um cliente SSH no Windows 10, consulte [OpenSSH no Windows](https://learn.microsoft.com/en-us/windows-server/administration/OpenSSH/openssh-overview).

Não haverá necessidade de instalar um cliente SSH em um computador local se os usuários só usarem o console do Amazon EC2 para se conectarem a uma instância.

## Atender a requisitos de nome de usuário
<a name="eic-prereqs-username"></a>

Quando o EC2 Instance Connect for usado para conexão com uma instância, o nome de usuário deverá atender aos seguintes requisitos:
+ Primeiro caractere: deve ser uma letra (`A-Z` ou `a-z`), um dígito (`0-9`) ou um sublinhado (`_`)
+ Caracteres subsequentes: podem ser letras (`A-Z`, `a-z`), dígitos (`0-9`) ou os seguintes caracteres: `@ . _ -`
+ Tamanho mínimo: 1 caractere
+ Tamanho máximo: 31 caracteres

# Conceder permissões do IAM para o EC2 Instance Connect
<a name="ec2-instance-connect-configure-IAM-role"></a>

Para se conectar a uma instância usando o EC2 Instance Connect, é necessário criar uma política do IAM que conceda permissões aos usuários para as ações e condições a seguir:
+ Ação `ec2-instance-connect:SendSSHPublicKey`: concede permissão para enviar por push a chave pública a uma instância.
+ Condição `ec2:osuser`: especifica o nome do usuário do sistema operacional que pode enviar por push a chave pública a uma instância. Use o nome de usuário padrão da AMI que você usou para iniciar a instância. O nome de usuário padrão para o AL2023 e o Amazon Linux 2 é `ec2-user` e, para o Ubuntu, é `ubuntu`.
+ Ação `ec2:DescribeInstances`: exigida ao usar o console do EC2, pois o wrapper chama essa ação. Os usuários talvez já tenham permissão para chamar essa ação a partir de outra política.
+ Ação `ec2:DescribeVpcs`: necessário ao se conectar a um endereço IPv6.

Considere restringir o acesso a instâncias do EC2 específicas. Caso contrário, todas as entidades principais do IAM com permissão para ação `ec2-instance-connect:SendSSHPublicKey` poderão conectar a todas as instâncias do EC2. É possível restringir o acesso especificando ARNs de recursos ou usando tags de recurso como [chaves de condição](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2instanceconnect.html#amazonec2instanceconnect-policy-keys).

Para obter mais informações, consulte [Ações, recursos e chaves de condição para o Amazon EC2 Instance Connect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2instanceconnect.html).

Para obter informações sobre a criação de políticas do IAM, consulte [Criação de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html), no *Manual do usuário do IAM*.

## Permitir que os usuários conectem-se a instâncias específicas
<a name="eic-permissions-allow-users-to-connect-to-specific-instances"></a>

A política do IAM a seguir concede permissão para se conectar a instâncias específicas, identificadas por seus ARNs de recursos. 

No exemplo de política do IAM a seguir, as ações e condições abaixo são especificadas:
+ A ação `ec2-instance-connect:SendSSHPublicKey` concede aos usuários permissão para se conectar a duas instâncias, especificadas pelos ARNs do recurso. Para conceder aos usuários permissão para se conectar a *todas* as instâncias do EC2, substitua os ARNs do recurso pelo curinga `*`.
+ A condição `ec2:osuser` concede permissão para se conectar às instâncias somente se o nome do *ami-user* for especificado durante a conexão.
+ A ação `ec2:DescribeInstances` é especificada para conceder permissão aos usuários que usarão o console para se conectar às suas instâncias. Caso seus usuários utilizem somente um cliente SSH para se conectar às suas instâncias, é possível omitir `ec2:DescribeInstances`. Observe que as ações da API `ec2:Describe*` não oferecem suporte a permissões no nível do recurso. Portanto, o caractere curinga `*` é necessário no elemento `Resource`.
+ A ação `ec2:DescribeVpcs` é especificada para conceder permissão aos usuários que usarão o console para se conectar às suas instâncias usando um endereço IPv6. Se seus usuários usarão somente um endereço IPv4, você pode omitir `ec2:DescribeVpcs`. Observe que as ações da API `ec2:Describe*` não oferecem suporte a permissões no nível do recurso. Portanto, o caractere curinga `*` é necessário no elemento `Resource`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey",
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-1234567890abcdef0",
                "arn:aws:ec2:us-east-1:111122223333:instance/i-0598c7d356eba48d7"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:osuser": "ami-username"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Permitir que os usuários conectem-se a instâncias com tags específicas
<a name="eic-permissions-allow-users-to-connect-to-instances-with-specific-tags"></a>

O controle de acesso por atributo (ABAC) é uma estratégia de autorização que define permissões de acordo com tags que podem ser anexadas a usuários e a recursos da AWS. É possível usar tags de recurso para controlar o acesso a uma instância. Para obter mais informações sobre como usar tags para controlar o acesso aos recursos da AWS, consulte [Controle do acesso aos recursos da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources) no *Guia do usuário do IAM*.

No exemplo de política do IAM a seguir, a ação `ec2-instance-connect:SendSSHPublicKey` concede aos usuários permissão para se conectar a qualquer instância (indicada pelo curinga `*` no ARN do recurso), desde que a instância tenha uma tag de recurso com key=`tag-key` e value=`tag-value`.

A ação `ec2:DescribeInstances` é especificada para conceder permissão aos usuários que usarão o console para se conectar às suas instâncias. Caso seus usuários usem somente um cliente SSH para se conectarem às suas instâncias, será possível omitir `ec2:DescribeInstances`. Observe que as ações da API `ec2:Describe*` não oferecem suporte a permissões no nível do recurso. Portanto, o caractere curinga `*` é necessário no elemento `Resource`.

A ação `ec2:DescribeVpcs` é especificada para conceder permissão aos usuários que usarão o console para se conectar às suas instâncias usando um endereço IPv6. Se seus usuários usarão somente um endereço IPv4, você pode omitir `ec2:DescribeVpcs`. Observe que as ações da API `ec2:Describe*` não oferecem suporte a permissões no nível do recurso. Portanto, o caractere curinga `*` é necessário no elemento `Resource`.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey", 
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/tag-key": "tag-value"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# Instalar o EC2 Instance Connect nas suas instâncias do EC2
<a name="ec2-instance-connect-set-up"></a>

Para conexão com uma instância do Linux usando o EC2 Instance Connect, a instância deve ter o EC2 Instance Connect instalado. Instalar o EC2 Instance Connect configura o daemon SSH na instância.

Para obter mais informações sobre o pacote do EC2 Instance Connect, consulte [aws/aws-ec2-instance-connect-config ](https://github.com/aws/aws-ec2-instance-connect-config) no site do GitHub.

**nota**  
Se você definiu as configurações de `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser` para a autenticação SSH, a instalação do EC2 Instance Connect não as atualizará. Consequentemente, não é possível usar o EC2 Instance Connect.

## Pré-requisitos de instalação
<a name="ec2-instance-connect-install-prerequisites"></a>

Antes de instalar o EC2 Instance Connect, verifique se você atende aos pré-requisitos a seguir.
+ **Verifique se a instância usa algum dos seguintes recursos:**
  + Amazon Linux 2 anterior à versão 2.0.20190618 \$1
  + AMI mínima do AL2023 ou AMI otimizada para o Amazon ECS
  + CentOS Stream 8 e 9
  + macOS Sonoma anterior à versão 14.2.1, Ventura anterior à versão 13.6.3 e Monterey anterior à versão 12.7.2 \$1
  + Red Hat Enterprise Linux (RHEL) 8 e 9
  + Ubuntu 16.04 e 18.04 \$1
**dica**  
\$1 Para Amazon Linux 2, macOS e Ubuntu: se você iniciou sua instância usando uma versão posterior às listadas acima, o EC2 Instance Connect vem pré-instalado e nenhuma instalação manual é necessária.
+ **Verifique os pré-requisitos gerais para o EC2 Instance Connect.**

  Para obter mais informações, consulte [Pré-requisitos para o EC2 Instance Connect](ec2-instance-connect-prerequisites.md).
+ **Verifique os pré-requisitos para se conectar à sua instância usando um cliente SSH em sua máquina local.**

  Para obter mais informações, consulte [Conectar-se à instância do Linux usando SSH](connect-to-linux-instance.md).
+ **Obtenha o ID da instância.**

  É possível obter o ID da instância usando o console do Amazon EC2 (na coluna **ID da instância**). Se preferir, é possível usar o comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) (AWS CLI) ou [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) (AWS Tools for Windows PowerShell).

## Instalar manualmente o EC2 Instance Connect
<a name="ec2-instance-connect-install"></a>

**nota**  
Se você iniciar a instância usando uma das AMIs a seguir, o EC2 Instance Connect estará pré-instalado e será possível ignorar este procedimento:  
AMI padrão do AL2023
Amazon Linux 2 2.0.20190618 ou posterior
macOS Sonoma 14.2.1 ou posterior
macOS Ventura 13.6.3 ou posterior
macOS Monterey 12.7.2 ou posterior
Ubuntu 20.04 ou posterior

Use um dos procedimentos a seguir para instalar o EC2 Instance Connect, dependendo do sistema operacional da instância.

------
#### [ Amazon Linux 2 ]

**Para instalar o EC2 Instance Connect em uma instância aberta com Amazon Linux 2**

1. Conecte-se à sua instância usando SSH.

   Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves SSH atribuído à sua instância ao abri-la e o nome do usuário padrão da AMI usada para abrir a instância. Para o Amazon Linux 2, o nome do usuário padrão é `ec2-user`.

   ```
   $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obter mais informações sobre como se conectar à sua instância, consulte [Conectar-se à instância do Linux usando um cliente SSH](connect-linux-inst-ssh.md).

1. Instale o pacote EC2 Instance Connect na sua instância.

   ```
   [ec2-user ~]$ sudo yum install ec2-instance-connect
   ```

   Deverão estar visíveis três novos scripts na pasta `/opt/aws/bin/`:

   ```
   eic_curl_authorized_keys
   eic_parse_authorized_keys
   eic_run_authorized_keys
   ```

1. (Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.

   ```
   [ec2-user ~]$ sudo less /etc/ssh/sshd_config
   ```

   O EC2 Instance Connect foi instalado com êxito se as linhas `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser` contiverem os seguintes valores:

   ```
   AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + O `AuthorizedKeysCommand` define o script `eic_run_authorized_keys` para buscar as chaves nos metadados da instância
   + `AuthorizedKeysCommandUser` O define o usuário do sistema como `ec2-instance-connect`
**nota**  
Se você tiver previamente configurado `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser`, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

------
#### [ CentOS ]

**Para instalar o EC2 Instance Connect em uma instância executada com o CentOS**

1. Conecte-se à sua instância usando SSH.

   Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves SSH atribuído à sua instância ao abri-la e o nome do usuário padrão da AMI usada para abrir a instância. Para o CentOS, o nome de usuário padrão é `centos` ou `ec2-user`.

   ```
   $ ssh -i my_ec2_private_key.pem centos@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obter mais informações sobre como se conectar à sua instância, consulte [Conectar-se à instância do Linux usando um cliente SSH](connect-linux-inst-ssh.md).

1. Se você usar um proxy HTTP ou HTTPS, defina o `http_proxy` ou as variáveis de ambiente `https_proxy` na sessão do shell atual.

   Se você não estiver usando um proxy, ignore esta etapa.
   + Para um servidor de proxy HTTP, execute os seguintes comandos:

     ```
     $ export http_proxy=http://hostname:port
     $ export https_proxy=http://hostname:port
     ```
   + Para um servidor de proxy HTTPS, execute os seguintes comandos:

     ```
     $ export http_proxy=https://hostname:port
     $ export https_proxy=https://hostname:port
     ```

1. Instale o pacote do EC2 Instance Connect na sua instância executando os comandos a seguir.

   Os arquivos de configuração do EC2 Instance Connect para CentOS são fornecidos em um pacote do Red Hat Package Manager (RPM), com pacotes do RPM diferentes para CentOS 8 e CentOS 9 e para tipos de instância executados em Intel/AMD (x86\$164) ou ARM (AArch64).

   Use o bloco de comando para a arquitetura do seu sistema operacional e de CPU.
   + CentOS 8

     Intel/AMD (x86\$164)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel8.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

     ARM (AArch64)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel8.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```
   + CentOS 9

     Intel/AMD (x86\$164)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel9.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

     ARM (AArch64)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel9.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

   Deverá estar visível o seguinte novo script na pasta `/opt/aws/bin/`:

   ```
   eic_run_authorized_keys
   ```

1. (Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.
   + Para o CentOS 8:

     ```
     [ec2-user ~]$ sudo less /lib/systemd/system/sshd.service.d/ec2-instance-connect.conf
     ```
   + Para o CentOS 9:

     ```
     [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf
     ```

   O EC2 Instance Connect foi instalado com êxito se as linhas `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser` contiverem os seguintes valores:

   ```
   AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + O `AuthorizedKeysCommand` define o script `eic_run_authorized_keys` para buscar as chaves nos metadados da instância
   + `AuthorizedKeysCommandUser` O define o usuário do sistema como `ec2-instance-connect`
**nota**  
Se você tiver previamente configurado `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser`, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

------
#### [ macOS ]

**Para instalar o EC2 Instance Connect em uma instância executada com o macOS**

1. Conecte-se à sua instância usando SSH.

   Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves SSH atribuído à sua instância ao abri-la e o nome do usuário padrão da AMI usada para abrir a instância. Para instâncias macOS, o nome de usuário padrão é `ec2-user`.

   ```
   $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obter mais informações sobre como se conectar à sua instância, consulte [Conectar-se à instância do Linux usando um cliente SSH](connect-linux-inst-ssh.md).

1. Atualize o Homebrew usando o seguinte comando. A atualização listará o software que o Homebrew conhece. O pacote do EC2 Instance Connect é fornecido via Homebrew em instâncias do macOS. Para obter mais informações, consulte [Atualizar o sistema operacional e o software em instâncias Mac do Amazon EC2](mac-instance-updates.md).

   ```
   [ec2-user ~]$ brew update
   ```

1. Instale o pacote EC2 Instance Connect na sua instância. Isso instalará o software e configurará o SSHD para usá-lo.

   ```
   [ec2-user ~]$ brew install ec2-instance-connect
   ```

   Deverá estar visível o seguinte novo script na pasta `/opt/aws/bin/`:

   ```
   eic_run_authorized_keys
   ```

1. (Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.

   ```
   [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf
   ```

   O EC2 Instance Connect foi instalado com êxito se as linhas `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser` contiverem os seguintes valores:

   ```
   AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + O `AuthorizedKeysCommand` define o script `eic_run_authorized_keys` para buscar as chaves nos metadados da instância
   + `AuthorizedKeysCommandUser` O define o usuário do sistema como `ec2-instance-connect`
**nota**  
Se você tiver previamente configurado `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser`, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

------
#### [ RHEL ]

**Para instalar o EC2 Instance Connect em uma instância executada com o Red Hat Enterprise Linux (RHEL)**

1. Conecte-se à sua instância usando SSH.

   Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves SSH atribuído à sua instância ao abri-la e o nome do usuário padrão da AMI usada para abrir a instância. Para o RHEL, o nome de usuário padrão é `ec2-user` ou `root`.

   ```
   $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obter mais informações sobre como se conectar à sua instância, consulte [Conectar-se à instância do Linux usando um cliente SSH](connect-linux-inst-ssh.md).

1. Se você usar um proxy HTTP ou HTTPS, defina o `http_proxy` ou as variáveis de ambiente `https_proxy` na sessão do shell atual.

   Se você não estiver usando um proxy, ignore esta etapa.
   + Para um servidor de proxy HTTP, execute os seguintes comandos:

     ```
     $ export http_proxy=http://hostname:port
     $ export https_proxy=http://hostname:port
     ```
   + Para um servidor de proxy HTTPS, execute os seguintes comandos:

     ```
     $ export http_proxy=https://hostname:port
     $ export https_proxy=https://hostname:port
     ```

1. Instale o pacote do EC2 Instance Connect na sua instância executando os comandos a seguir. 

   Os arquivos de configuração do EC2 Instance Connect para RHEL são fornecidos em um pacote do Red Hat Package Manager (RPM), com pacotes do RPM diferentes para RHEL 8 e RHEL 9 e para tipos de instância executados em Intel/AMD (x86\$164) ou ARM (AArch64).

   Use o bloco de comando para a arquitetura do seu sistema operacional e de CPU.
   + RHEL 8

     Intel/AMD (x86\$164)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel8.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

     ARM (AArch64)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel8.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```
   + RHEL 9

     Intel/AMD (x86\$164)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel9.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

     ARM (AArch64)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel9.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

   Deverá estar visível o seguinte novo script na pasta `/opt/aws/bin/`:

   ```
   eic_run_authorized_keys
   ```

1. (Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.
   + Para o RHEL 8:

     ```
     [ec2-user ~]$ sudo less /lib/systemd/system/sshd.service.d/ec2-instance-connect.conf
     ```
   + Para o RHEL 9:

     ```
     [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf
     ```

   O EC2 Instance Connect foi instalado com êxito se as linhas `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser` contiverem os seguintes valores:

   ```
   AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + O `AuthorizedKeysCommand` define o script `eic_run_authorized_keys` para buscar as chaves nos metadados da instância
   + `AuthorizedKeysCommandUser` O define o usuário do sistema como `ec2-instance-connect`
**nota**  
Se você tiver previamente configurado `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser`, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

------
#### [ Ubuntu ]

**Para instalar o EC2 Instance Connect em uma instância aberta com Ubuntu 16.04 ou posterior**

1. Conecte-se à sua instância usando SSH.

   Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves SSH atribuído à sua instância quando você a executou e use o nome de usuário padrão da AMI que você usou para iniciar sua instância. Para uma AMI Ubuntu, o nome de usuário é `ubuntu`.

   ```
   $ ssh -i my_ec2_private_key.pem ubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obter mais informações sobre como se conectar à sua instância, consulte [Conectar-se à instância do Linux usando um cliente SSH](connect-linux-inst-ssh.md).

1. (Opcional) Garanta que sua instância tenha a AMI do Ubuntu mais recente.

   Execute os comandos a seguir para atualizar todos os pacotes na instância.

   ```
   ubuntu:~$ sudo apt-get update
   ```

   ```
   ubuntu:~$ sudo apt-get upgrade
   ```

1. Instale o pacote EC2 Instance Connect na sua instância.

   ```
   ubuntu:~$ sudo apt-get install ec2-instance-connect
   ```

   Deverão estar visíveis três novos scripts na pasta `/usr/share/ec2-instance-connect/`:

   ```
   eic_curl_authorized_keys
   eic_parse_authorized_keys
   eic_run_authorized_keys
   ```

1. (Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.

   ```
   ubuntu:~$ sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf
   ```

   O EC2 Instance Connect foi instalado com êxito se as linhas `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser` contiverem os seguintes valores:

   ```
   AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + O `AuthorizedKeysCommand` define o script `eic_run_authorized_keys` para buscar as chaves nos metadados da instância
   + `AuthorizedKeysCommandUser` O define o usuário do sistema como `ec2-instance-connect`
**nota**  
Se você tiver previamente configurado `AuthorizedKeysCommand` e `AuthorizedKeysCommandUser`, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

------

# Conectar-se à instância do Linux usando EC2 Instance Connect
<a name="ec2-instance-connect-methods"></a>

As instruções a seguir explicam como você pode se conectar a instâncias do Linux usando o EC2 Instance Connect por meio do console do Amazon EC2, da AWS CLI ou de um cliente SSH. 

Ao conectar-se a uma instância usando o EC2 Instance Connect por meio do console ou da AWS CLI, a API do EC2 Instance Connect envia automaticamente por push uma chave pública de SSH para os [metadados da instância](ec2-instance-metadata.md), onde ela permanece por 60 segundos. Uma política do IAM anexada ao seu usuário autoriza esta ação. Se você preferir usar sua própria chave de SSH, será possível usar um cliente de SSH e enviar explicitamente sua chave de SSH para a instância usando o EC2 Instance Connect.

**Considerações**  
Depois de se conectar a uma instância usando o Instance Connect do EC2, a conexão persiste até que a sessão SSH seja encerrada. A duração da conexão não é determinada pela duração de suas credenciais do IAM. Se as suas credenciais do IAM expirarem, a conexão persistirá. Ao utilizar a experiência do console do Instance Connect do EC2, se as suas credenciais de IAM expirarem, encerre a conexão fechando a página do navegador. Ao usar seu próprio cliente SSH e o Instance Connect do EC2 para enviar sua chave, você pode definir um valor de tempo limite de SSH para encerrar a sessão SSH automaticamente.

**Requisitos**  
Antes de começar, revise todos os [pré-requisitos](ec2-instance-connect-prerequisites.md).

**Topics**
+ [Conectar-se usando o console do Amazon EC2](#ec2-instance-connect-connecting-console)
+ [Conectar-se usando o AWS CLI](#connect-linux-inst-eic-cli-ssh)
+ [Conectar-se usando sua própria chave e cliente SSH](#ec2-instance-connect-connecting-aws-cli)
+ [Solução de problemas](#ic-troubleshoot)

## Conectar-se usando o console do Amazon EC2
<a name="ec2-instance-connect-connecting-console"></a>

É possível se conectar a uma instância usando o EC2 Instance Connect por meio do console do Amazon EC2.

**Requisitos**  
Para se conectar usando o console do Amazon EC2, a instância deve ter um endereço IPv4 público ou IPv6. Se a instância só tiver um endereço IPv4 privado, será possível usar o [comando da AWS CLI ec2-instance-connect](#connect-linux-inst-eic-cli-ssh) para se conectar.

**Conectar-se a instâncias do Linux usando o console do Amazon EC2**

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

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Selecione a instância e escolha **Connect (Conectar)**.

1. Escolha a guia **EC2 Instance Connect**.

1. Escolha **Conectar usando um IP público**.

1. Se houver uma opção, selecione o endereço IP ao qual se conectar. Caso contrário, o endereço IP será selecionado automaticamente.

1. Em **Nome de usuário**, verifique o nome de usuário.

1. Escolha **Conectar** para estabelecer uma conexão. Uma janela de terminal no navegador é aberta.

## Conectar-se usando o AWS CLI
<a name="connect-linux-inst-eic-cli-ssh"></a>

É possível usar o comando da AWS CLI [ec2-instance-connect](https://docs.aws.amazon.com/cli/latest/reference/ec2-instance-connect/index.html) para se conectar à instância usando um cliente de SSH. O EC2 Instance Connect tenta estabelecer uma conexão usando um endereço IP disponível em uma ordem predefinida, com base no tipo de conexão especificado. Se um endereço IP não estiver disponível, ele tentará automaticamente o próximo, na ordem.Tipos de conexão

`auto` (padrão)  
O EC2 Instance Connect tentará conectar-se usando os endereços IP da instância na ordem a seguir e com o tipo de conexão correspondente:  

1. IPv4 público: `direct`

1. IPv4 privado: `eice`

1. IPv6: `direct`

`direct`  
O EC2 Instance Connect tentará conectar-se usando os endereços IP da instância na ordem a seguir:  

1. IPv4 público

1. IPv6

1. IPv4 privado (não se conecta por meio de um endpoint do EC2 Instance Connect)

`eice`  
O EC2 Instance Connect tenta se conectar usando o endereço IPv4 privado da instância e um [endpoint do EC2 Instance Connect](connect-with-ec2-instance-connect-endpoint.md).

**nota**  
No futuro, podemos mudar o comportamento do tipo de conexão `auto`. Para garantir que o tipo de conexão desejado seja usado, recomendamos que você defina explicitamente o `--connection-type` como `direct` ou `eice`.

**Requisitos**  
É necessário usar a AWS CLI versão 2. Para obter mais informações, consulte [Install or update to the latest version of the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

**Para se conectar a uma instância usando o ID da instância**  
Se souber apenas o ID da instância e quiser permitir que o EC2 Instance Connect determine o tipo de conexão a ser usado ao se conectar à sua instância, use o comando da CLI [ec2-instance-connect ssh](https://docs.aws.amazon.com/cli/latest/reference/ec2-instance-connect/ssh.html) e o ID da instância.

```
aws ec2-instance-connect ssh --instance-id i-1234567890example
```

**Para se conectar a uma instância usando o ID da instância e um EC2 Instance Connect Endpoint**  
Se você quiser conectar-se à sua instância por meio de um [EC2 Instance Connect Endpoint](connect-with-ec2-instance-connect-endpoint.md), use o comando anterior e também especifique o parâmetro `--connection-type` com o valor `eice`.

```
aws ec2-instance-connect ssh --instance-id i-1234567890example --connection-type eice
```

**Para se conectar a uma instância usando o ID da instância e seu próprio arquivo de chave privada**  
Se você quiser conectar-se à sua instância por meio de um EC2 Instance Connect Endpoint usando sua própria chave privada, especifique o ID da instância e o caminho para o arquivo da chave privada. Não inclua *file://* no caminho. O exemplo a seguir falhará: *file: ///caminho/para/a/chave*.

```
aws ec2-instance-connect ssh --instance-id i-1234567890example --private-key-file /path/to/key.pem
```

**dica**  
Se receber um erro ao usar esses comandos, verifique se está usando a AWS CLI versão 2, pois o comando `ssh` só está disponível nesta versão principal. Também recomendamos atualizar regularmente para a versão secundária mais recente da AWS CLI versão 2 para acessar os recursos mais recentes. Para obter mais informações, consulte [Sobre o AWS CLI versão 2](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html#welcome-versions-v2), no *Guia do usuário do AWS Command Line Interface*.

## Conectar-se usando sua própria chave e cliente SSH
<a name="ec2-instance-connect-connecting-aws-cli"></a>

É possível usar sua própria chave SSH e conectar-se à sua instância a partir do cliente SSH de sua escolha enquanto usa a API do EC2 Instance Connect. Isso permite que você se beneficie da capacidade do EC2 Instance Connect de enviar por push uma chave pública para a instância. Esse método de conexão funciona para instâncias com endereços IP públicos e privados.

**Requisitos**
+ Requisitos para pares de chaves
  + Tipos com suporte: RSA (OpenSSH e SSH2) e ED25519
  + Tamanhos com suporte: 2048 e 4096.
  + Para obter mais informações, consulte [Criar um par de chaves usando uma ferramenta de terceiros e importe a chave pública para o Amazon EC2](create-key-pairs.md#how-to-generate-your-own-key-and-import-it-to-aws).
+ Quando ocorre uma conexão com uma instância que só tem endereços IP privados, o computador local em que você está iniciando a sessão SSH deve ter conectividade com o endpoint do serviço EC2 Instance Connect (para enviar sua chave pública SSH para a instância), além de conectividade de rede para o endereço IP privado da instância para estabelecer a sessão SSH. O endpoint de serviço do EC2 Instance Connect é acessível pela Internet ou por meio de uma interface virtual pública do Direct Connect. Para se conectar ao endereço IP privado da instância, é possível aproveitar serviços, como [Direct Connect](https://aws.amazon.com/directconnect/), [AWS Site-to-Site VPN](https://aws.amazon.com/vpn/) ou [emparelhamento de VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html).

**Para se conectar à sua instância usando a própria chave e qualquer cliente SSH**

1. 

**(Opcional) Gerar chaves novas chaves SSH privadas e públicas**

   É possível gerar novas chaves SSH públicas e privadas, `my_key` e `my_key.pub`, usando o comando a seguir:

   ```
   ssh-keygen -t rsa -f my_key
   ```

1. 

**Envie por push a chave pública do SSH para a instância**

   Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2-instance-connect/send-ssh-public-key.html](https://docs.aws.amazon.com/cli/latest/reference/ec2-instance-connect/send-ssh-public-key.html) para enviar por push a chave pública SSH para a instância. Se você executou sua instância usando o AL2023 ou o Amazon Linux 2, o nome de usuário padrão da AMI é `ec2-user`. Se você executou sua instância usando o Ubuntu, o nome de usuário padrão da AMI é `ubuntu`.

   O exemplo a seguir envia a chave pública para a instância especificada na zona de disponibilidade especificada, para autenticar `ec2-user`.

   ```
   aws ec2-instance-connect send-ssh-public-key \
       --region us-west-2 \
       --availability-zone us-west-2b \
       --instance-id i-001234a4bf70dec41EXAMPLE \
       --instance-os-user ec2-user \
       --ssh-public-key file://my_key.pub
   ```

1. 

**Conecte-se à instância usando a chave privada**

   Use o comando **ssh** para se conectar à instância usando a chave privada antes de a chave pública ser removida dos metadados da instância (você tem 60 segundos antes de ser removida). Especifique a chave privada que corresponde à chave pública, o nome de usuário padrão da AMI usado para iniciar sua instância e o nome DNS público da instância (se estiver se conectando por uma rede privada, especifique o nome DNS privado ou o endereço IP). Adicione a opção `IdentitiesOnly=yes` para garantir que apenas os arquivos na configuração ssh e a chave especificada sejam usados para a conexão. 

   ```
   ssh -o "IdentitiesOnly=yes" -i my_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
   ```

   O exemplo a seguir usa `timeout 3600` para definir que sua sessão SSH seja encerrada após 1 hora. Os processos iniciados durante a sessão podem continuar em execução na sua instância após o término da sessão.

   ```
   timeout 3600 ssh -o “IdentitiesOnly=yes” -i my_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
   ```

## Solução de problemas
<a name="ic-troubleshoot"></a>

Se você receber um erro ao tentar se conectar à instância, consulte:
+ [Solucionar problemas de conexão com a instância do Linux do Amazon EC2](TroubleshootingInstancesConnecting.md)
+ [Como solucionar problemas de conexão à minha instância do EC2 usando o EC2 Instance Connect?](https://repost.aws/knowledge-center/ec2-instance-connect-troubleshooting)

# Desinstalar o EC2 Instance Connect
<a name="ec2-instance-connect-uninstall"></a>

Para desabilitar o EC2 Instance Connect, conecte-se à instância do Linux e desinstale o pacote `ec2-instance-connect` que está instalado no SO. Se a configuração `sshd` corresponder ao que foi definido quando você instalou o EC2 Instance Connect, desinstalar o pacote `ec2-instance-connect` também removerá a configuração `sshd`. Se a configuração `sshd` tiver sido modificada após a instalação do EC2 Instance Connect, você deverá atualizá-la manualmente.

------
#### [ Amazon Linux ]

É possível desinstalar o EC2 Instance Connect no AL2023 e no Amazon Linux 2 2.0.20190618 ou posterior, em que o EC2 Instance Connect está pré-configurado.

**Desinstalar o EC2 Instance Connect em uma instância iniciada com o Amazon Linux**

1. Conecte-se à sua instância usando SSH. Especifique o par de chaves SSH que você usou para sua instância ao executá-la e o nome de usuário padrão da AMI AL2023 ou Amazon Linux 2, que é `ec2-user`.

   Por exemplo. o comando **ssh** conecta-se à instância com o nome DNS público `ec2-a-b-c-d.us-west-2.compute.amazonaws.com`, usando o par de chaves `my_ec2_private_key.pem`.

   ```
   $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

1. Desinstale o pacote `ec2-instance-connect` usando o comando **yum**.

   ```
   [ec2-user ~]$ sudo yum remove ec2-instance-connect
   ```

------
#### [ Ubuntu ]

**Desinstalar o EC2 Instance Connect em uma instância iniciada com uma AMI do Ubuntu**

1. Conecte-se à sua instância usando SSH. Especifique o par de chaves SSH usado para sua instância ao iniciá-la e o nome de usuário padrão da AMI Ubuntu, que é `ubuntu`.

   Por exemplo. o comando **ssh** conecta-se à instância com o nome DNS público `ec2-a-b-c-d.us-west-2.compute.amazonaws.com`, usando o par de chaves `my_ec2_private_key.pem`.

   ```
   $ ssh -i my_ec2_private_key.pem ubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

1. Desinstale o pacote `ec2-instance-connect` usando o comando **apt-get**.

   ```
   ubuntu:~$ sudo apt-get remove ec2-instance-connect
   ```

------