[英]do you have to pass SSO profile credentials in order to assume the IAM role using boto3
我的配置文件设置了多个配置文件,我正在尝试担任 IAM 角色,但我看到的所有关于担任角色的文章都是从使用 sts 客户端开始的
import boto3 client = boto3.client('sts')
这是有道理的,但唯一的问题是,当我尝试这样做时,它给了我一个错误。 但是当我这样做时,在传递配置文件中存在的配置文件时,它可以工作。 这是下面的代码:
import boto3 session = boto3.Session(profile_name="test_profile")
sts = session.client("sts")
response = sts.assume_role(
RoleArn="arn:aws:iam::xxx:role/role-name",
RoleSessionName="test-session"
)
new_session = Session(aws_access_key_id=response['Credentials']['AccessKeyId'], aws_secret_access_key=response['Credentials']['SecretAccessKey'], aws_session_token=response['Credentials']['SessionToken'])
当其他人在没有传递配置文件的情况下在他们的代码中担任角色时,这甚至如何工作? boto3 会自动从配置文件中获取默认配置文件还是类似的配置文件?
是的。 这一行:
sts = session.client("sts")
告诉 boto3 使用default
凭据创建 session。
凭证可以在~/.aws/credentials
文件中提供。 如果代码在 Amazon EC2 实例上运行,boto3 将自动使用与实例关联的 IAM 角色关联的凭证。
凭据也可以通过环境变量传递。
请参阅: 凭据 — Boto3 文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.