繁体   English   中英

从 Boto 获取 AWS 账户 ID

[英]Get AWS Account ID from Boto

我有一个 AWS_ACCESS_KEY_ID 和一个 AWS_SECRET_KEY。 这些是活动凭证,因此它们属于属于 AWS 账户的活动用户。 如何使用 Boto3 找到此 AWS 账户的 ID?

AccountID 可以从 get-caller-identity sts 函数中获取。 这将返回一个“帐户”字段:

client = boto3.client("sts", aws_access_key_id=access_key, aws_secret_access_key=secret_key)
account_id = client.get_caller_identity()["Account"]

感谢@louahola对我最初回答的改进。

这将为您提供密钥对的帐户 ID:

import boto3

sts = boto3.client(
    "sts", aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY,
)
account_id = sts.get_caller_identity()["Account"]

如果您使用 基于 IAM 角色的权限boto3 的任何其他凭证选项在 EC2 实例上运行,则可以更轻松地执行此操作:

import boto3

account_id = boto3.client("sts").get_caller_identity()["Account"]

像这样的事情会起作用:

import boto3

ACCESS_KEY = 'FOO'
SECRET_KEY = 'BAR'

iam = boto3.resource('iam',
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
)
account_id = iam.CurrentUser().arn.split(':')[4]

print account_id

如果您使用 EC2 IAM 角色,您可以省略所有访问/密钥内容,代码变得简单:

iam = boto3.resource('iam')
account_id = iam.CurrentUser().arn.split(':')[4]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM