我希望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