
Tentando entender um pouco melhor os recursos/conceitos do AWS IAM. Eu sei que existe uma maneira de configurar um EC2 (possivelmente por meio de sua AMI subjacente ou de um modelo de inicialização) para que, quando for iniciado pela primeira vez, ele receba automaticamente as funções/permissões corretas para coisas às quais a instância deve ter acesso. Por exemplo, se eu souber que o servidor de software em execução nessa instância precisará de acesso de leitura/gravação S3, devo ser capaz de configurar as coisas para não precisar fazer SSH nessa instância e configurar um ~/.aws/credentials
arquivo.
Meuentendimentoé aqueleUsuárioseFunçõessão recursos IAM que constituem identidades autenticadas. Isso significa que você pode fornecer a um usuário/função um conjunto de credenciais e essas credenciais podem então ser autenticadas na AWS e se identificarem. Acredito que seja uma prática recomendada dar aos seres humanos um recurso de usuário e dar ao software um recurso de função. Portanto, eu teria meu próprio usuário AWS IAM, e esse usuário teria credenciais que eu inseriria no console da web ou CLI para obter acesso à AWS. E meu servidor (que seria implantado na AWS) receberia uma função AWS IAM, como ( myapp-server-dev
) e essa função teria credenciais que o servidor poderia então apresentar à API da AWS para autenticação.
Meuentendimentoé aqueleGrupossão apenas coleções de usuários e/ou funções, usadas com a finalidade de atribuir esses usuários/funções a conjuntos de permissões específicos.
Meuentendimentoé aquele IAMPolíticassão esses conjuntos de permissões e que você anexa/vincula políticas a usuários, funções e/ou grupos para conceder-lhes permissão para vários serviços/recursos da AWS.
Meuentendimentoé aquele IAMPerfis de instânciade alguma forma vincular uma instância do EC2 a uma função, mas aqui reside minha principal confusão.
Finalmente, é meuentendimentoisso para fazer com que:
- Eu crio instâncias EC2; e
- Essa instância do EC2 tem acesso automático aos serviços/recursos corretos da AWS sem precisar instalar manualmente arquivos de credenciais na instância via SSH...
... para que isso aconteça, preciso:
- Crie uma função para a instância EC2 e quaisquer outras instâncias que executarão software de servidor homogêneo nelas (que tenham as mesmas necessidades de autorização)
- Criar umPerfil da instânciapara a instância EC2 que está vinculada a esta função
- Anexe umPolíticapara essa função (ou qualquer grupo do qual a função é membro) que lhe dá acesso aos serviços/recursos apropriados
Então, primeiro, se algo que afirmei acima for impreciso, por favor, comece a fornecer algumas correções/esclarecimentos de curso para mim! Supondo que meus entendimentos estejam corretos, então minha pergunta aqui é:como e onde associo uma determinada instância do EC2 a um perfil de instância do IAM e como/onde associo esse perfil a uma função?
Responder1
Um "Perfil de instância IAM" é uma função se você estiver usando o console.
Você associa um ao criar a instância, na seção "Detalhes avançados".
Nos bastidores, a AWS está criando um perfil de instância para você. Se estiver usando a linha de comando ou API, você poderá criá-los separadamente, se desejar; verhttps://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.htmlpara detalhes.