Zag*_*ags 18 python amazon-web-services boto3
我有一个AWS_ACCESS_KEY_ID和一个AWS_SECRET_KEY.这些是活动凭据,因此它们属于属于AWS账户的活动用户.如何使用Boto3找到此AWS账户的ID?
lou*_*ola 37
可以从get-caller-identity sts函数中获取AccountID.这将返回"帐户"字段:
client = boto3.client("sts", aws_access_key_id=access_key, aws_secret_access_key=secret_key)
account_id = client.get_caller_identity()["Account"]
Run Code Online (Sandbox Code Playgroud)
小智 6
像这样的事情会起作用:
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
Run Code Online (Sandbox Code Playgroud)
如果您使用 EC2 IAM 角色,则可以省略所有访问/密钥内容,代码将变得简单:
iam = boto3.resource('iam')
account_id = iam.CurrentUser().arn.split(':')[4]
Run Code Online (Sandbox Code Playgroud)
感谢@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"]
Run Code Online (Sandbox Code Playgroud)
如果您使用基于 IAM 角色的权限或boto3 的任何其他凭证选项在 EC2 实例上运行,则可以更轻松地执行此操作:
import boto3
account_id = boto3.client("sts").get_caller_identity()["Account"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16674 次 |
| 最近记录: |