[英]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.