Etapa 8: (Opcional) Permitir e controlar permissões de conexões de SSH por meio do Session Manager - AWS Systems Manager

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.

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
  1. Nesse nó gerenciado, para a qual você quer permitir conexões SSH, faça o seguinte:

  2. 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\config.

      Adicione 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>.pem

      Por 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" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } } ] }
    • 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" } ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } }
    • 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.