boto3 - sistemas - sistema de recomendacion tesis
obteniendo la cuenta de usuario actual en boto3 (2)
Necesito obtener el account-id de cuenta del "usuario actual" en un script de boto3
. Hasta ahora mi mejor solución es analizar el usuario actual arn :
>>> import boto3
>>> account_id = boto3.resource(''iam'').CurrentUser().arn.split('':'')[4]
pero me preguntaba si hay un enfoque más "ligero". De hecho
>>> timeit.timeit("boto3.resource(''iam'').CurrentUser().arn",
... ''import boto3'', number=10)
4.8895583080002325
y en realidad no necesito el recurso CurrentUser
en mi script.
EDITAR: Ahora hay una api a la que puede llamar, vea la respuesta de mixja.
En primer lugar, no hay forma de obtener el ID de cuenta directamente desde boto3
. No hay información almacenada localmente que pueda decirle eso, y no hay una API de servicio que la devuelva fuera del contexto de un ARN. Así que no hay forma de obtenerlo de boto3
sin inspeccionar un ARN.
En segundo lugar, usar timeit
puede ser muy engañoso con boto3
o botocore
porque hay un poco de tiempo de calentamiento cuando se crea un cliente o recurso por primera vez (las definiciones de servicio se cargan al instante).
Puede obtener el ID de cuenta utilizando la API de STS:
>>> import boto3
>>> boto3.client(''sts'').get_caller_identity().get(''Account'')
''012345678901''