Ir para o conteúdo

Como faço para usar cloud-init e dados do usuário para adicionar novas contas de usuário da AWS com acesso SSH à minha instância do Linux do EC2?

4 minuto de leitura
0

Quero criar um usuário adicional que possa se conectar à minha instância Linux do Amazon Elastic Compute Cloud (Amazon EC2) com SSH.

Breve descrição

Inclua o comando de dados do usuário que realiza as seguintes tarefas:

  • Cria um novo usuário.
  • Concede permissões sudo ao usuário.
  • Anexa a chave pública SSH ao arquivo authorized_keys.

Resolução

Importante: antes de alterar uma instância, revise o seguinte:

Conclua as etapas a seguir:

  1. Faça login na instância com SSH ou Gerenciador de Sessões.

  2. Execute o comando a seguir para confirmar se o cloud-init está instalado:

    $ cloud-init -v

    Se o comando retornar um erro, execute o seguinte comando para instalar uma instância na sua distribuição Linux:

    Para instâncias baseadas em Debian

    $ sudo apt-get install cloud-init

    Para instâncias baseadas em RPM

    sudo dnf install cloud-init

    Para instâncias do Suse

    zypper install cloud-init
  3. Depois de confirmar a instalação do cloud-init, continue interrompendo a instância.
    Observação: se a ação Parar não estiver disponível, significa que a instância já está parada ou seu dispositivo raiz é um volume de armazenamento de instância.

  4. Gere a chave pública a partir da sua chave privada para se conectar ao novo usuário.
    Observação: você deve ter um par de chaves ou uma chave privada para obter a chave pública. Para criar um par de chaves, consulte Criar um par de chaves para sua instância do Amazon EC2. Para segurança SSH, é uma prática recomendada criar pares de chaves por meio do console do EC2 ou de uma ferramenta de terceiros.
    Para recuperar a chave pública, execute o comando a seguir. Se sua chave privada tiver uma frase secreta, digite-a quando solicitado.

    $ ssh-keygen -f <private_key_file> -y
  5. Insira sua chave pública no comando a seguir e atualize o campo de dados do usuário com este comando:
    Selecione a instância.
    No painel de navegação, escolha Ações e, em seguida, selecione Configurações da instância.
    Escolha Editar dados do usuário e cole o script no campo.
    Observação: substitua o username do espaço reservado pelo nome de usuário que você pretende usar. Para ssh-rsa AB3nzExample, insira sua chave pública. Se você usa uma Instância do Debian, altere o valor dos grupos de wheel para sudo:

    #cloud-config
    cloud_final_modules:
    - [users-groups,always]
    users:
      - name:username
        groups: [ wheel ]
        shell: /bin/bash
        sudo: ["ALL=(ALL) NOPASSWD:ALL"]
         ssh-authorized-keys:
         - ssh-rsa AB3nzExample

    O comando anterior cria um usuário com acesso irrestrito. Para bloquear o acesso sudo ao usuário, defina o valor de sudo como falso. Para obter mais informações, consulte Exemplos de configuração de nuvem no site cloud-init.
    Observação: por padrão, as diretivas do cloud-init são executadas somente quando uma instância é iniciada. No entanto, quando você usa esse script de dados do usuário, o cloud-init adiciona a chave pública à instância toda vez que a instância é reinicializada ou reiniciada. Se você remover o script de dados do usuário, a funcionalidade padrão será restaurada.

  6. Escolha Salvar.

  7. Escolha Ações, selecione Estado da instância e escolha Iniciar.

  8. Quando a instância atingir o estado de execução, faça login como o novo usuário. O novo usuário tem o mesmo comportamento padrão do ec2-user.
    Observação: use a ação API ModifyInstanceAttribute para modificar os dados do usuário de uma instância. É possível criar uma política do AWS Identity and Access Management (AWS IAM) para restringir essa ação.

Informações relacionadas

Exibir o par de chaves

Como adiciono novas contas de usuário com acesso do SSH a instâncias do Linux do Amazon EC2?

AWS OFICIALAtualizada há um ano