Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

251
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!