如何使用boto3获取登录用户的IAM角色信息?

py_*_*_py 4 roles amazon-iam boto3

例如:当我登录我的 AWS 账户时,联合登录显示为myrole/usr1。用户user1不是 IAM 用户。client.get_caller_identity()尝试使用using模块获取身份sts

当在 lambda 中运行时,它给出的是分配给 lambda 的角色,而不是我正在寻找的实际角色。如何获取角色信息myrole

Ole*_*oha 6

一般来说,从代码中获取角色名称的方法如下:

import boto3
s = boto3.Session(profile_name="some_profile_name")
c = s.client("sts")
c.get_caller_identity()
Run Code Online (Sandbox Code Playgroud)

您将得到如下回复{'UserId': '...', 'Account': '...', 'Arn': 'arn:aws:sts::...:assumed-role/.../federated_username_here', ...}

但是,这意味着您已经配置了名为 AWS CLI 配置文件的 AWS CLI 配置文件some_profile_name,为此,您需要通过 CLI 设置联合访问或知道角色的名称,据我所知,这是您想要获得的。先有鸡还是先有蛋的问题。

尝试使用AWS代码环境获取它也是如此,lambda将显示其角色,ec2以相同的方式。

因此,要从控制台查看它,您可以尝试转到页面https://console.aws.amazon.com/billing/home?#/account,并且如果您有权查看该页面,您的假定角色将被列为Account Name