我希望Boto3从配置文件中获取访问权限和密钥,而不是硬编码。在我的Linux服务器上,我使用值AWS_SHARED_CREDENTIALS_FILE
设置以下环境变量/app/.aws/credentials
。在/app/.aws/我放置了一个名为凭据的文件,其中包含以下内容:
[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'
答案 0 :(得分:2)
如果您拥有已创建aws凭据的凭据文件夹,则表示您在实例化客户端时不需要指定它们。以下应该有效:
<button onclick="myFunction()">Show div</button>
<p><span>some text</span></p>
<p><span>some text</span></p>
<p><span>some text</span></p>
<p><span>some text</span></p>
<p><span>some text</span></p>
<div id="outside" onclick="hide()"></div>
<div id="myDiv"></div>
答案 1 :(得分:1)
如果您在EC2实例上运行应用程序,您还可以为您的实例分配一个S3角色,并让boto承担该角色。防止您必须在实例中存储密钥。
查看&#34;假设角色提供者&#34;在文档中:
http://boto3.readthedocs.io/en/latest/guide/configuration.html
链接到IAM角色:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html