簡體   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