例如:当我登录到我的AWS账户时,联合登录显示为myrole/usr1
。用户user1
不是IAM用户。尝试通过client.get_caller_identity()
模块使用sts
获得身份。
当运行lambda时,它是赋予分配给lambda的角色,而不是正在寻找的实际角色。如何获取角色信息myrole
?
通常是从代码中获取角色名称的方法:
import boto3
s = boto3.Session(profile_name="some_profile_name")
c = s.client("sts")
c.get_caller_identity()
您将得到{'UserId': '...', 'Account': '...', 'Arn': 'arn:aws:sts::...:assumed-role/.../federated_username_here', ...}
的响应
但是这意味着您已经使用名称some_profile_name
配置了AWS CLI配置文件,并且为此需要通过CLI设置联合访问或知道角色的名称,据我所知。鸡肉和鸡蛋问题。
同样尝试使用AWS代码环境来获取它,lambda将以相同的方式显示其角色ec2。
因此,从控制台可以看到它,您可以尝试转到页面https://console.aws.amazon.com/billing/home?#/account,并且您具有查看该页面的权限,您的假定角色将列为Account Name
。