读取aws凭证文件的最佳方式



在我的python代码中,我需要提取AWS凭证AWS_SECRET_ACCESS_KEY和AWS_ACCESS_KEY_ID它们存储在纯文本文件中,如下所述:https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html

我知道文件的名称:AWS_SHARED_CREDENTIALS_FILE配置文件的名称:AWS_PROFILE.

我目前的方法是自己在python中读取和解析该文件,以获得AWS_SECRET_ACCESS_KEY和AWS_ACCESS_KEY_ID。

但我希望已经有标准的方法来获得它使用boto3或其他一些库。请建议。

像这样的东西对你有用吗,还是我误解了这个问题?基本上是为适当的配置文件(我猜是默认的)启动一个会话,然后从凭据对象中查询这些值:

session = boto3.Session(profile_name=<...your-profile...>)
credentials = session.get_credentials()
print("AWS_ACCESS_KEY_ID = {}".format(credentials.access_key))
print("AWS_SECRET_ACCESS_KEY = {}".format(credentials.secret_key))
print("AWS_SESSION_TOKEN = {}".format(credentials.token))

据我所知,AWS凭证文件使用标准的INI文件格式。您可以使用configparser轻松解析文件。请参考:https://docs.python.org/3/library/configparser.html.

对于boto3,如果你把它放在标准区域,它会自动加载。

Boto3在搜索凭据时将查找多个位置。Boto3查找凭证的机制是搜索通过一个可能的位置列表,并停止一旦它找到凭证。Boto3搜索凭据的顺序是:

  1. 将凭据作为参数传递给bottom .client()方法
  2. 凭据作为创建会话对象时的参数
  3. <
  4. 环境变量/gh>
  5. 共享凭证文件(~/.aws/credentials)
  6. AWS配置文件(~/.aws/config)
  7. 假设角色提供者
  8. Boto2配置文件(/etc/boto.cfg和~/.boto)
  9. 配置了IAM角色的Amazon EC2实例上的实例元数据服务

参考:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html

最新更新