
Actualmente, utilizamos instancias ec2 en nuestro entorno.
Con el fin de evitar que las credenciales queden expuestas al código fuente, utilizamos roles de IAM para delegar el acceso a usuarios, aplicaciones o servicios.
Sin embargo, también hay varias instancias locales en nuestro entorno. ¿Pueden también utilizar la función IAM tal como lo hace EC2?
Sé que CodeDeploy admite el registro de instancias locales con roles de IAM, pero de esta manera, es un agente de implementación de código para administrar roles de IAM para obtener credenciales.
Entonces, mi pregunta es la siguiente:
¿Cómo obtienen credenciales las aplicaciones en instancias locales implementadas por CodeDeploy? por ejemplo, obtener un objeto de S3...
¿Puedo también usar IAM en mi máquina y aplicaciones locales para obtener credenciales como lo hace un EC2?
Respuesta1
No puede desempeñar una función de IAM per se, pero puede adjuntar exactamente la misma política o políticas a un usuario y luego generar un conjunto de claves de acceso para ese usuario. A partir de ahí, proporcione las claves para la CLI de AWS u otras herramientas y tendrán los mismos permisos.
Se recomienda encarecidamente incluir en la lista blanca el rango de IP de las políticas para las claves que se utilizarán, de modo que si se violan (fuga de código/compromiso público de git/etc.), no se puedan usar fuera de su pila.
Respuesta2
¡Los roles de servicio de IAM son solo para servicios de IAM!
Existe la opción de obtener créditos temporales en función de la clave secreta/de acceso de los usuarios de IAM a largo plazo. Un uso típico es en una aplicación proxy que obtiene credenciales de seguridad temporales en nombre de aplicaciones distribuidas dentro de una red corporativa.
https://docs.aws.amazon.com/cli/latest/reference/sts/get-federation-token.html
puede tener un máximo de 36 hrs de vigencia. Puede automatizar la generación de créditos y luego distribuirlos en consecuencia en sus sistemas locales.