繁体   English   中英

Boto3 session get_credentials() 没有返回令牌

[英]Boto3 session get_credentials() is not returning token

我的应用程序需要使用 AWS v4 身份验证,并且我能够更早地检索到令牌。 现在它返回None

session = boto3.Session()
credentials = session.get_credentials().get_frozen_credentials()
ACCESS_KEY_ID = credentials.access_key
ACCESS_SECRET_KEY = credentials.secret_key
SESSION_TOKEN = credentials.token # Not working
region = session.region_name

print(f'SESSION_TOKEN: {SESSION_TOKEN}')

Output:

SESSION_TOKEN: None

这是我的本地配置文件的内容:

$ cat ~/.aws/credentials

[default]
aws_access_key_id = <DEFAULT_ACCESS_KEY_ID>
aws_secret_access_key = <DEFAULT_SECRET_ACCESS_KEY>

是什么原因以及如何取回令牌?

原因是您没有可用的凭据来源。

当您调用Session.get_credentials()时,它会尝试从一系列来源加载凭证,例如$HOME/.aws中的配置文件或 EC2 实例角色。

当您能够检索令牌时,您正在一个支持其中一种方法的环境中运行——很可能是 EC2 实例或 Lambda function。当你现在尝试这样做时——可能是从你的个人计算机上——你没有。

解决问题的方法是在您当前的环境中配置凭据,点击上面的链接。

使用凭据时,请注意并非所有凭据源都使用安全令牌。 您应该为这两种情况做好准备。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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