繁体   English   中英

您是否必须通过 SSO 配置文件凭据才能使用 boto3 承担 IAM 角色

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM