getting the current user account-id in boto3

boto3, botocore

Solution

You can get the account ID by using the STS API:

>>> import boto3
>>> boto3.client('sts').get_caller_identity().get('Account')
'012345678901'

Problem

I need to get the account-id of the 'current user' in a `boto3` script. Up to now my best solution is to parse the current user arn: ``` >>> import boto3 >>> account_id = boto3.resource('iam').CurrentUser().arn.split(':')[4] ``` but I was wondering if there is a more 'lightweight' approach. In fact ``` >>> timeit.timeit("boto3.resource('iam').CurrentUser().arn", ... 'import boto3', number=10) 4.8895583080002325 ``` and I actually do not need the `CurrentUser` resource in my script.

Original source