我希望Boto3从配置文件中获取访问密钥和密钥,而不是对它们进行硬编码。在我的Linux服务器上,我设置了值为/app/.aws/credentials
的以下环境变量AWS_SHARED_CREDENTIALS_FILE
。在/app/.aws/我把一个文件,内容如下名称的证书:Boto3不使用配置文件中的密钥
[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'
不要存储在长期凭据服务器,如果你能避免它。使用IAM角色通过临时凭证授予权限(http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)。 – jarmod
感谢您的建议,但我使用的不是由亚马逊托管的S3服务。 – user3080315