Uma maneira mais simples é mostrada abaixo.
Para usuários de Linux / Mac:
-
Para criar chaves públicas e privadas, use o seguinte comando:
$ ssh-keygen -t rsa -b 4096
-
Carregue a chave pública em uma pasta no seu intervalo do S3. Por exemplo: S3 > MyBucket > Keypair
-
Salve e proteja sua chave privada.
Para usuários do Windows:
- Use o puttygen para gerar as chaves.
- Siga DigitalOcean para criar chaves SSH.
- Envie a chave pública para 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.
-
Certifique-se de que a função do IAM tenha uma função criada com a política do AmazonS3FullAccess. Isso permite que a instância assuma uma função para acessar os buckets do 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 Configurar detalhes da instância > 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 User1 e User2 e os adiciona aos usuários sudo . O comando aws s3 cp copia as chaves públicas dos usuários da pasta S3 para seus .ssh/authorized_keys path
. A última seção é executar comandos como admin sem precisar de senhas.
Há muitas melhorias de segurança que podem ser recomendadas aqui. Embora não seja explicitamente usado neste exemplo, limitar o acesso ao bucket do S3 a um bucket específico e conhecer as implicações de segurança de desativar o uso de senha no sudo, são poucas coisas que podem ser destacadas. Use-os com sabedoria, com base em suas necessidades particulares.