Eu não entendo porque preciso do usuário do IAM. A documentação diz que há duas maneiras de acessar o EC2. Uma delas é criar chaves de acesso para sua conta da AWS. O outro é usar o IAM. A Amazon recomenda o IAM.
Então eu entrei na conta principal e, na página do IAM, criei um usuário do IAM, criei um grupo do IAM e adicionei o usuário ao grupo do IAM com a política AdministratorAccess. Eu também atribuí uma senha personalizada na guia "Credenciais de segurança".
Quando eu seleciono o usuário, ele navega para uma página de resumo. Na página de resumo, há uma definição "User ARN:", que inclui o ID da conta e o nome de usuário:
arn:aws:iam::account_id:user/username
Com essas informações, posso sair da conta principal da AWS e fazer login como o usuário do IAM, usando o nome de usuário e a senha do IAM que criei para o usuário.
https://account_id.signin.aws.amazon.com/console/
Agora, a documentação diz que as instâncias do Linux não possuem senhas. Você precisa especificar o nome do par de chaves ao iniciar a instância e fornecer uma chave privada ao efetuar login usando o SSH. Assim, como usuário do IAM, eu crio um par de chaves em "Rede e segurança". E eu salvo o arquivo de chave privada em um lugar seguro.
Finalmente, quando eu lanço uma instância, ela me pede um par de chaves, então eu seleciono o par de chaves que eu criei. Quando a instância está em execução, tento conectar-me a partir do ssh:
$ ssh -i ~/.aws/username-key-pair-useast.pem [email protected]
E isso não funciona. Eu tenho que especificar o usuário chamado ubuntu:
$ ssh -i ~/.aws/username-key-pair-useast.pem [email protected]
E então funciona. Mas por que não me permite conectar ao servidor com o usuário do IAM? Eu pensei que todo o propósito do usuário do IAM era para segurança extra da minha instância. Mas se eu estou logando com um superusuário do ubuntu e o usuário do IAM não é adicionado ao sistema operacional da instância, então que segurança extra o IAM oferece?
Além disso, tudo que fiz com o usuário do IAM poderia ter sido feito com a conta principal da AWS. Por exemplo, posso fazer login na conta principal da AWS e criar pares de chaves e iniciar uma instância. Então parece que o IAM é apenas redundante.
Eu não entendo porque preciso do usuário do IAM.