Etapa 8: (Opcional) Permitir e controlar permissões de conexões de SSH por meio do Session Manager
Você pode permitir que os usuários da sua Conta da AWS usem a AWS Command Line Interface (AWS CLI) para estabelecer conexões Secure Shell (SSH) com nós gerenciados que usam o Session Manager do AWS Systems Manager. Os usuários que se conectam usando SSH também podem copiar arquivos entre suas máquinas locais e os nós gerenciados usando o Secure Copy Protocol (SCP). Você pode usar essa funcionalidade para se conectar aos nós gerenciados sem abrir portas de entrada nem manter bastion hosts.
Depois de permitir conexões SSH, você pode usar as políticas do AWS Identity and Access Management (IAM) para permitir ou negar explicitamente que usuários, grupos ou funções façam conexões de SSH usando o Session Manager.
nota
O registro em log não está disponível para sessões do Session Manager que se conectam por meio de encaminhamento de portas ou SSH. Isso ocorre porque o SSH criptografa todos os dados da sessão e o Session Manager serve apenas como um túnel para conexões SSH.
Tópicos
Permitir conexões de SSH para o Session Manager
Use as etapas a seguir para permitir conexões de SSH por meio do Session Manager em um nó gerenciado.
Para permitir conexões de SSH para o Session Manager
-
Nesse nó gerenciado, para a qual você quer permitir conexões SSH, faça o seguinte:
-
Certifique-se de que o SSH está em execução em um nó gerenciado. (Você pode fechar portas de entrada em um nó.)
-
Certifique-se de que o SSM Agent versão 2.3.672.0 ou posterior esteja instalado em seu nó gerenciado.
Para obter informações sobre como instalar ou atualizar o SSM Agent em um nó gerenciado, consulte os seguintes tópicos:
nota
Para usar o Session Manager com servidores on-premises, dispositivos de borda e máquinas virtuais (VMs) que você ativou como nós gerenciados, você deve usar o nível de instâncias avançadas. Para obter mais informações sobre instâncias avançadas, consulte Configurar níveis de instâncias.
-
-
Na máquina local da qual você deseja se conectar a um nó gerenciado usando SSH, faça o seguinte:
-
Certifique-se de que a versão 1.1.23.0 ou posterior do plugin do Session Manager esteja instalada.
Para obter informações sobre como instalar o plugin do Session Manager, consulte Instalar o plug-in do Session Manager para a AWS CLI.
-
Atualize o arquivo de configuração do SSH para permitir a execução de um comando proxy que inicia uma sessão do Session Manager e transferir todos os dados por meio da conexão.
Linux e macOS
dica
O arquivo de configuração do SSH normalmente está localizado em
~/.ssh/config
.Adicione o seguinte ao arquivo de configuração na máquina local:
# SSH over Session Manager host i-* mi-* ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
Windows
dica
O arquivo de configuração do SSH normalmente está localizado em
C:\Users\
.<username>
\.ssh\configAdicione o seguinte ao arquivo de configuração na máquina local:
# SSH over Session Manager host i-* mi-* ProxyCommand C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters portNumber=%p"
-
Crie ou verifique se você tem um certificado de Privacy Enhanced Mail (um arquivo PEM) ou, no mínimo, uma chave pública para usar ao estabelecer conexões com os nós gerenciados. Essa deve ser uma chave que já esteja associada ao nó gerenciado. As permissões do seu arquivo de chave privada devem ser definidas para que somente você possa lê-lo. Você pode usar o seguinte comando para definir as permissões do arquivo de chave privada para que somente você possa lê-lo.
chmod 400
<my-key-pair>
.pemPor exemplo, para uma instância do Amazon Elastic Compute Cloud (Amazon EC2), o arquivo de par de chaves que você criou ou selecionou quando criou a instância. (Você especifica o caminho para o certificado ou a chave como parte do comando para iniciar uma sessão. Para obter informações sobre começar uma seção usando o SSH, consulte Iniciar uma sessão (SSH).)
-
Controlar permissões do usuário para conexões SSH por meio do Session Manager
Depois de habilitar conexões SSH por meio do Session Manager em um nó gerenciado, você poderá usar políticas do IAM para permitir ou recusar que usuários, grupos ou funções estabeleçam conexões SSH por meio do Session Manager.
Para usar uma política do IAM para permitir conexões SSH por meio do Session Manager
-
Use uma das seguintes opções:
-
Opção 1: abra o console do IAM em https://console.aws.amazon.com/iam/
. No painel de navegação, escolha Policies (Políticas) e atualize a política de permissões para o usuário ou função ao qual você deseja permitir iniciar conexões SSH por meio do Session Manager.
Por exemplo, adicione o elemento a seguir à política do Quickstart que você criou em Políticas do usuário final do Quickstart para o Session Manager. Substitua cada
espaço reservado para recurso de exemplo
por suas próprias informações.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": [ "arn:aws:ec2:
region
:account-id
:instance/instance-id
", "arn:aws:ssm:*:*:document/AWS-StartSSHSession" ] } ] } -
Opção 2: anexe uma política em linha a uma política de usuário usando o AWS Management Console, a AWS CLI ou a API da AWS.
Usando o método de sua escolha, anexe a declaração de política na Opção 1 à política de um usuário, grupo ou função da AWS.
Para obter informações, consulte Adicionar e remover permissões de identidade do IAM no Manual do usuário do IAM.
-
Para usar uma política do IAM para negar conexões SSH por meio do Session Manager
-
Use uma das seguintes opções:
-
Opção 1: abra o console do IAM em https://console.aws.amazon.com/iam/
. No painel de navegação, escolha Policies (Políticas) e, então, atualize a política de permissões para que o usuário ou a função não possa iniciar sessões do Session Manager. Por exemplo, adicione o elemento a seguir à política do Quickstart que você criou em Políticas do usuário final do Quickstart para o Session Manager.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Deny", "Action": "ssm:StartSession", "Resource": "arn:aws:ssm:*:*:document/AWS-StartSSHSession" } ] }
-
Opção 2: anexe uma política em linha a uma política de usuário usando o AWS Management Console, a AWS CLI ou a API da AWS.
Usando o método de sua escolha, anexe a declaração de política na Opção 1 à política de um usuário, grupo ou função da AWS.
Para obter informações, consulte Adicionar e remover permissões de identidade do IAM no Manual do usuário do IAM.
-