繁体   English   中英

Boto3 不使用配置文件中的密钥

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

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