Contenido del curso
SDK, CLI y AWS Access Keys
Seguridad dentro de AWS
Roles IAM para AWS
Contenido del curso
Roles IAM para AWS
Juan Manuel Hincapié
studentDiego Fernando Ramos Aguirre
studentPatricio Sánchez Fernández
studentjhon velasque
studentMario Alexander Vargas Celis
studentJhon Freddy Tavera Blandon
studentJeisson Espinosa
studentDarlyn Bravo
studentEdgar Alejandro España Amaya
studentKevin Toruño
studentJhon Freddy Tavera Blandon
studentCarlos Andres Valencia Rojas
studentDavid Hernandez
studentCristian Camilo Suarez Martinez
studentLeonardo Buezo
studentYerson Rojas
studentMiguel Angel Ortiz Escobar
studentPara ejecutar ciertas acciones dentro de AWS es necesario asignar roles a los servicios para que puedan ejecutar las acciones requeridas.
Ejemplo Si queremos que una instancia EC2 envíe imágenes o archivos a un bucket de S3, deberemos crear el rol que le permita a la instancia realizar estas acciones con otros servicios, al rol se le deben agregar políticas que le den permisos (sólo los requeridos).
Nota: Es una mala práctica tener Access Key dentro de las máquinas virtuales porque entonces si entran a la instancia podrían tener acceso a los servicios que tenga registrado con los access keys.
Usos comunes
Gracias por el aporte.
Muy buen aporte, Juan.
Usar roles en AWS es como tener diferentes disfraces que te permiten hacer diferentes tareas, pero manteniendo la misma identidad.
Imagina que eres un niño que tiene una máscara de superhéroe. Cuando usas esa máscara, puedes hacer cosas que normalmente no harías, como volar o ser muy fuerte, pero al final del día sigues siendo tú mismo.
En AWS, un rol es como esa máscara de superhéroe. Te permite hacer ciertas tareas que normalmente no podrías hacer con tu identidad normal, pero aún así eres la misma persona.
👤 Roles IAM en AWS
Un rol IAM en AWS es una identidad con permisos específicos que puedes asignar a servicios, usuarios u otras cuentas de AWS. A diferencia de los usuarios de IAM, los roles no requieren credenciales (como contraseñas o claves de acceso); en su lugar, utilizan credenciales temporales que AWS genera automáticamente.
🔹 ¿Para qué sirven los roles IAM?
Los roles IAM permiten asignar permisos de acceso temporal a diferentes entidades, como:
✅ Servicios de AWS (Ejemplo: permitir que una Lambda acceda a un bucket S3). ✅ Usuarios en la misma cuenta de AWS (Ejemplo: acceso temporal a EC2 sin credenciales). ✅ Usuarios en otra cuenta de AWS (Ejemplo: una cuenta externa accede a recursos compartidos). ✅ Aplicaciones en servidores on-premise (Ejemplo: usar IAM Roles con federación de identidad).
🔹 Cómo crear un rol IAM en AWS
📌 Opción 1: Desde la consola de AWS
1️⃣ Ir a AWS IAM 👉 Consola IAM 2️⃣ En el menú de la izquierda, seleccionar Roles. 3️⃣ Clic en Crear rol. 4️⃣ Seleccionar la entidad de confianza:
📌 Opción 2: Crear un rol IAM usando AWS CLI
aws iam create-role --role-name MiRolS3 \ --assume-role-policy-document file://policy.json
📌 Ejemplo de policy.json (permite a EC2 asumir el rol):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
🔹 Casos de uso de los roles IAM
💡 Ejemplo 1: Un rol IAM para Lambda que le permite acceder a S3:
lambda.amazonaws.com.AmazonS3ReadOnlyAccess.💡 Ejemplo 2: Un rol IAM para EC2 que permite acceder a DynamoDB:
ec2.amazonaws.com.AmazonDynamoDBFullAccess.💡 Ejemplo 3: Un rol IAM para acceso entre cuentas (cross-account):
🔹 Diferencia entre un rol y un usuario IAM
CaracterísticaUsuario IAMRol IAMUsa credenciales fijas✅ Sí❌ NoCredenciales temporales❌ No✅ SíPuede usarse por servicios de AWS❌ No✅ SíSe usa para acceso entre cuentas❌ No✅ Sí
🚀 Conclusión
Los roles IAM permiten gestionar el acceso seguro a los recursos en AWS sin necesidad de credenciales estáticas. Son esenciales para automatización, buenas prácticas de seguridad y acceso entre cuentas o servicios.
¿Quieres probarlo en la práctica? 🎯 ¡Crea un rol IAM y úsalo en EC2 o Lambda! 🚀
¿Qué es un Role IAM?
Un Role IAM es una entidad de IAM que define un conjunto de permisos para hacer solicitudes a los servicios de AWS. Los roles no están asociados con un usuario específico o un grupo, sino que pueden ser asumidos por cualquier entidad que necesite permisos temporales para ejecutar una tarea en particular.
Componentes Clave de un Role IAM
Casos de Uso de Roles IAM
Información resumida de esta clase #EstudiantesDePlatzi
Puedo adjuntar roles a algunos servicios de AWS
Los roles nos ayudan con la seguridad y debemos usarlos
Los servicios más comunes a los que le puedo dar un rol son: Instancia EC2, función de Lambda y Cloudformation
También el assumeRole puede ser usado además de:
Los roles IAM (Identity and Access Management) en AWS permiten otorgar permisos a usuarios o servicios para realizar acciones específicas en tu cuenta. A diferencia de los usuarios IAM, los roles no tienen credenciales permanentes y son ideales para proporcionar acceso temporal.
Resumen de los tipos de roles IAM:
Cada rol puede tener políticas que determinen el acceso a recursos específicos. Utilizar roles en lugar de credenciales de usuario permite seguir el principio de privilegios mínimos, mejorando la seguridad.
En el caso de que necesitemos usar los servicios directamente entre servicios, entonces creamos un rol en el servicio que va a ser utilizado y así este se podria empezar a comunicar directamente con otros servicios en AWS.
Por ejemplo tenemos una maquina virtual EC2 y nos queremos comunicar con el servicio de S3, entonces tenemos que crear un rol.
Este rol va a asumir el servicio EC2 para poder empezar a ejecutar las acciones que necesitamos directamente hacia el servicio de S3. Supongamos que nuestra EC2 quiere empezar a subir archivos estáticos dentro de S3, lo que debemos hacer es adjuntar y crear ese rol que va a tener todos los permisos de S3 y se lo adjuntamos a la maquina virtual EC2, y así podremos interactuar directamente con el servicio de S3.
También podemos entrar a la EC2 y configurar nuestros access key y secret keys de nuestro usuario para poder comunicarnos con S3, pero esto es considerado una mala practica. Esto es debido a que en el caso en que nuestra EC2 sea hackeada, nos van a quitar nuestros access keys y secret keys, esto seria un hueco de seguridad grande, debido a que los hackers podrán acceder a toda la cuenta de AWS.
¿Qué es un Role IAM?
Un Role IAM es una entidad de IAM que define un conjunto de permisos para hacer solicitudes a los servicios de AWS. Los roles no están asociados con un usuario específico o un grupo, sino que pueden ser asumidos por cualquier entidad que necesite permisos temporales para ejecutar una tarea en particular.
Componentes Clave de un Role IAM
Trust Policy (Política de Confianza):
Define quién puede asumir el rol. Por ejemplo, puede ser un usuario, una aplicación o un servicio de AWS como EC2 o Lambda.
Permissions Policy (Política de Permisos):
Especifica qué acciones se pueden realizar y en qué recursos cuando el rol es asumido.
Session Duration (Duración de la Sesión):
Determina cuánto tiempo pueden durar las credenciales temporales otorgadas por el rol.
Casos de Uso de Roles IAM
Roles para Servicios de AWS:
Permiten que los servicios de AWS (como EC2, Lambda, etc.) realicen acciones en tu nombre. Por ejemplo, un rol puede permitir a una instancia de EC2 leer datos de un bucket S3.
Roles para Usuarios:
Permiten a los usuarios de IAM asumir temporalmente permisos adicionales necesarios para una tarea específica.
Roles para Federated Users:
Permiten a usuarios externos (como empleados de otra empresa) acceder a tu cuenta de AWS utilizando sus credenciales de inicio de sesión existentes.
Resumen
El profe: Es una mala practica utilizar AWS CLI en los servicios de AWS como EC2.
Yo: *Configurando mi AWS CLI para hacer actualizaciones de mi plataforma web jajajj
Es muy válido lo mencionado. Entiendo que en casos donde no es posible asignar un rol a objetos expuestos entre diferentes cuentas AWS, la utilización de access keys y secrets key se vuelve necesaria. En estas situaciones, el manejo adecuado de keys es mediante el servicio de Secrets Manager que proporciona una capa adicional de seguridad, facilitando la prevención del acceso no autorizado a estas claves. Esto contribuye a evitar la exposición y obtención indebida de datos de secret key y access key de manera más efectiva.
Generalmente, los roles se asocian a servicios, no a usuarios. Los usuarios asumen un rol que está asociado a un servicio/recurso en AWS. Por ejemplo, un usuario puede asumir un rol particular temporalmente para realizar una tarea específica en un momento determinado. Finalizada la tarea, abandona ese rol.
Muy bien explicado, frenet a que por buena practica no deberiamos asignar un secret key a las VM. (y)
Los roles de AWS Identity and Access Management (IAM) son una forma de acceso a AWS basada en credenciales de seguridad temporales. Cada rol cuenta con un conjunto de permisos para realizar solicitudes de servicios de AWS y los roles no están asociados a un usuario o grupo específico.