Uma maneira mais simples é como mostrado abaixo.
Para usuários Linux / Mac:
Para criar chaves públicas e privadas, use o seguinte comando:
$ ssh-keygen -t rsa -b 4096
Faça o upload da chave pública para uma pasta no seu bucket S3. Por exemplo: S3> MyBucket> Keypair
Salve e proteja sua chave privada.
Para usuários do Windows:
- Use puttygen para gerar as chaves.
- Siga o DigitalOcean para criar chaves SSH.
- Carregue a chave pública em S3> MyBucket> Keypair
- Salve e proteja sua chave privada.
As etapas a seguir são importantes durante o lançamento de qualquer AMI do Linux.
Verifique se a função IAM possui uma função criada com a política AmazonS3FullAccess. Isso permite que a instância assuma uma função para acessar os buckets S3. Isso é necessário para ler as chaves públicas do S3 e copiá-las para o perfil do usuário
Adicione o seguinte código na seção de dados do usuário em Detalhes da instância de configuração> Detalhes avançados (como texto):
#!/bin/bash
usermod user 1
usermod -aG wheel user1
mkdir /home/user1/.ssh/
aws s3 cp s3://MyBucket /Keypair/user1-pub.pub /home/user1/.ssh/authorized_keys
useradd user2
usermod -aG wheel user2
mkdir /home/user2/.ssh/
aws s3 cp s3://MyBucket /Keypair/user2-pub.pub /home/user2/.ssh/authorized_keys
sudo -i
echo “user1 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
echo “user2 ALL=(ALL) NOPASSWD:ALL” >> /etc/sudoers
yum update -y
Essa configuração cria o Usuário1 e o Usuário2 e os adiciona aos usuários do sudo . O comando aws s3 cp copia as chaves públicas dos usuários da pasta S3 para as deles .ssh/authorized_keys path
. A última seção é executar comandos como administrador sem precisar de senhas.
Existem muitas melhorias de segurança que podem ser recomendadas aqui. Embora não seja explicitamente usado neste exemplo, limitar o acesso do bucket do S3 a um bucket específico e conhecer as implicações de segurança da desativação do uso de senhas no sudo, são algumas coisas que podem ser destacadas. Use-os com sabedoria, com base em suas necessidades particulares.