
Tratando de comprender un poco mejor los recursos/conceptos de AWS IAM. Sé que hay una manera de configurar un EC2 (ya sea posiblemente a través de su AMI subyacente o una plantilla de lanzamiento) para que cuando se inicie por primera vez se le asigne automáticamente el rol/permisos correctos para las cosas a las que esa instancia debería tener acceso. Por ejemplo, si sé que el servidor de software que se ejecuta en esa instancia necesitará acceso de lectura/escritura S3, debería poder configurar las cosas para no necesitar SSH en esa instancia y configurar un ~/.aws/credentials
archivo.
Micomprensiónes esoUsuariosyRolesson recursos de IAM que conforman identidades autenticables. Lo que significa que puede otorgarle a un usuario/rol un conjunto de credenciales y esas credenciales pueden luego autenticarse en AWS e identificarse. Creo que las prácticas recomendadas son darle a los seres humanos un recurso de Usuario y darle al software un recurso de Rol. Entonces tendría mi propio usuario de AWS IAM, y ese usuario tendría credenciales que ingresaría en la consola web o CLI para obtener acceso a AWS. Y a mi servidor (que se implementaría en AWS) se le asignaría una función de AWS IAM como ( myapp-server-dev
) y esa función tendría credenciales que el servidor podría presentar a la API de AWS para su autenticación.
Micomprensiónes esoGruposson solo colecciones de Usuarios y/o Roles, utilizados con el fin de asignar esos Usuarios/Roles a conjuntos de permisos específicos.
Micomprensiónes que soyPolíticasson esos conjuntos de permisos, y que usted adjunta/vincula políticas a usuarios, roles y/o grupos para otorgarles permiso para varios servicios/recursos de AWS.
Micomprensiónes que soyPerfiles de instanciavincular de alguna manera una instancia EC2 a un rol, pero aquí radica mi principal confusión.
Finalmente, es micomprensióneso para que sea así:
- Creo instancias EC2; y
- Esa instancia EC2 automáticamente tiene acceso a los servicios/recursos correctos de AWS sin tener que instalar manualmente archivos de credenciales en la instancia a través de SSH...
...para que eso suceda, necesito:
- Cree una función para la instancia EC2 y cualquier otra instancia que ejecute software de servidor homogéneo en ellas (que tengan las mismas necesidades de autorización)
- Crear unPerfil de instanciapara la instancia EC2 que está vinculada a este rol
- Adjunta unPolíticaa ese rol (o cualquier grupo del que el rol sea miembro) que le brinda acceso a los servicios/recursos apropiados
Entonces, primero, si algo de lo que he dicho anteriormente es inexacto, ¡comience a brindarme algunas correcciones o aclaraciones! Suponiendo que mis conocimientos sean correctos, entonces mi pregunta aquí es:¿Cómo y dónde asocio una instancia EC2 determinada con un perfil de instancia de IAM y cómo/dónde asocio ese perfil con una función?
Respuesta1
Un "Perfil de instancia de IAM" es una función si utiliza la consola.
Uno lo asocias cuando creas la instancia, en la sección "Detalles avanzados".
Entre bastidores, AWS está creando un perfil de instancia para usted. Si está utilizando la línea de comando o API, puede crearlos por separado si lo desea; verhttps://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.htmlpara detalles.