Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

252
Vistas
Obtener el nombre del rol de IAM mediante el ID del rol de IAM

Todos los roles de AWS IAM tienen un nombre de rol y un ID de rol asociados. El ID de la función no suele verse porque la consola de AWS muestra solo el nombre de la función. Dentro del mensaje JSON de un evento de S3 hay un valor de PrincipalID que contiene el ID de rol que se usó para realizar la acción de S3, por ejemplo, "principalId":"AWS:AROAKJDKSDKF93HSA:123456789 .

De este documento vemos,

Cada entidad de IAM (usuario, grupo o función) tiene una variable aws:userid definida. Necesitará esta variable para usar dentro de la política del depósito para especificar el rol o el usuario como una excepción en un elemento condicional. El valor aws:userId de una función asumida se define como ÚNICA-FUNCIÓN-ID:FUNCIÓN-NOMBRE-DE-SESIÓN (por ejemplo, AROAEXAMPLEID:nombredesesióndefinidoporelusuario).

Entonces sabemos que PrincipalId en el mensaje de evento de S3 es una ID de función para una función de IAM. ¿Cómo puedo usar esa identificación de rol para obtener el nombre de rol? Busqué en las bibliotecas de IAM y STS, pero no veo ninguna API que me permita pasar el ID de la función y obtener el Nombre de la función. STS GetCallerIdentity no ayuda y IAM GetRole solo acepta un nombre de función como entrada.

Cualquier ayuda sería muy apreciada. Simplemente estoy consumiendo S3 Events , leyendo el valor PrincipalID del mensaje json del evento S3 , extrayendo el IAM Role ID de PrincipalID, y necesito una forma de obtener el IAM Role Name usando IAM Role ID.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Aquí hay una forma rápida de obtenerlo a través de AWS CLI:

 aws iam list-roles --query 'Roles[?RoleId==`AROAEXAMPLEID`]'
over 4 years ago · Santiago Trujillo Denunciar

0

Usando python, por ejemplo, puede usar list_roles .
La salida le dará la identificación del rol de cada rol. Simplemente haga un bucle y busque el RoleId que desee.

 { 'Roles': [ { 'Path': 'string', 'RoleName': 'string', 'RoleId': 'string', 'Arn': 'string', 'CreateDate': datetime(2015, 1, 1), 'AssumeRolePolicyDocument': 'string', 'Description': 'string', 'MaxSessionDuration': 123, 'PermissionsBoundary': { 'PermissionsBoundaryType': 'PermissionsBoundaryPolicy', 'PermissionsBoundaryArn': 'string' }, 'Tags': [ { 'Key': 'string', 'Value': 'string' }, ], 'RoleLastUsed': { 'LastUsedDate': datetime(2015, 1, 1), 'Region': 'string' } }, ], 'IsTruncated': True|False, 'Marker': 'string' }

Id . de rol (cadena)
La cadena estable y única que identifica el rol. Para obtener más información sobre los ID, consulte Identificadores de IAM en la Guía del usuario de IAM.

Referencia: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#IAM.Client.list_roles

También te recomiendo que uses Paginator .

Algunas operaciones de AWS devuelven resultados incompletos y requieren solicitudes posteriores para obtener el conjunto de resultados completo. El proceso de enviar solicitudes posteriores para continuar donde quedó una solicitud anterior se denomina paginación.

Referencia: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/paginators.html

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda