获取boto3中的当前用户帐户ID

Ste*_*o M 32 botocore boto3

我需要在脚本中获取"当前用户" 的帐户IDboto3.到目前为止,我最好的解决方案是解析当前用户arn:

>>> import boto3
>>> account_id = boto3.resource('iam').CurrentUser().arn.split(':')[4]
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更"轻量级"的方法.事实上

>>> timeit.timeit("boto3.resource('iam').CurrentUser().arn",
... 'import boto3', number=10)
4.8895583080002325
Run Code Online (Sandbox Code Playgroud)

我实际上不需要CurrentUser脚本中的资源.

mix*_*xja 71

您可以使用STS API获取帐户ID:

>>> import boto3
>>> boto3.client('sts').get_caller_identity().get('Account')
'012345678901'
Run Code Online (Sandbox Code Playgroud)

  • 仍适用于boto3 1.4.0 (2认同)
  • 多年后这个方法仍然有效。如果您遇到类似@Mark 的错误,请检查您的用户是否拥有正确的策略。 (2认同)