[英]Boto3 doesn't use keys from config file
我希望 Boto3 从配置文件中获取访问密钥和密钥,而不是对它们进行硬编码。 在我的 Linux 服务器上,我将以下环境变量AWS_SHARED_CREDENTIALS_FILE
设置为值/app/.aws/credentials
。 在 /app/.aws/ 中,我放置了一个名为 credentials 的文件,其中包含以下内容:
[default]
aws_access_key_id = abcd
aws_secret_access_key = abcd
当然,我使用了实际的键而不是 abcd。
Python:
import boto3
conn = boto3.client('s3',
region_name="eu-west-1",
endpoint_url="endpoint",
aws_access_key_id=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
config=Config(signature_version="s3", s3={'addressing_style': 'path'}))
但是它说name'aws_access_key_id' is not defined
。 我该如何解决? 谢谢
编辑:
>>> os.environ['AWS_SHARED_CREDENTIALS_FILE']
'/app/.aws/credentials'
如果您有已创建 aws 凭据的凭据文件夹,这意味着您无需在实例化客户端时指定它们。 以下应该工作:
import boto3
conn = boto3.client('s3',
region_name="eu-west-1",
endpoint_url="endpoint",
config=Config(signature_version="s3", s3={'addressing_style': 'path'}))
如果您在 EC2 实例上运行您的应用程序,您还可以为您的实例分配一个 S3 角色并让 boto 承担该角色。 使您不必在实例中存储密钥。
查看文档中的“担任角色提供者”部分:
http://boto3.readthedocs.io/en/latest/guide/configuration.html
也链接到 IAM 角色:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.