Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

196
Visualizações
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? He buscado en las bibliotecas de IAM y STS, pero no veo ninguna API que me permita pasar el Id. de función y obtener el Nombre de 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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda