現在、Windows 8 OS 内で実行されている Ubuntu 14 VM から AWS に接続しようとしています。Ubuntu シェルで、次を実行します。
$AWS_ACCESS_KEY=my_access_key
$AWS_SECRET_ACCESS_KEY=my_secret_key
$python
$export AWS_ACCESS_KEY
$export AWS_SECRET_ACCESS_KEY
$python
>>>import os
>>>from boto import ec2
>>>auth = {"aws_access_key_id":os.environ.get("AWS_ACCESS_KEY"),
>>>"aws_secret_access_key":os.environ.get("AWS_SECRET_ACCESS_KEY")}
>>>conn = ec2.connect_to_region("us-east-1", **auth)
>>>conn.get_all_instances()
私が得るエラーメッセージは
boto.exception.EC2ResponseError: EC2ResponseError: 401 Unauthorized
AuthFailure
AWS was not able to validate the provided access credentials
最初は、資格情報が正しく提供されていないと思いました。ただし、Windows の場合:
C:\>SET AWS_ACCESS_KEY=my_access_key
C:\>SET AWS_SECRET_ACCESS_KEY=my_secret_key
C:\>python
>>>import os
>>>from boto import ec2
>>>auth = {"aws_access_key_id":os.environ.get("AWS_ACCESS_KEY"),
>>>"aws_secret_access_key":os.environ.get("AWS_SECRET_ACCESS_KEY")}
>>>conn = ec2.connect_to_region("us-east-1", **auth)
>>>conn.get_all_instances()
期待どおりにすべての予約を返します。両方の Python シェルの auth の値を比較しましたが、同じです。Python と boto のバージョンは同じようです。boto 構成ファイルを使用しようとしたことはありませんが、これは組織内の複数のユーザーが展開できるスクリプトのコンポーネントであるため、使用しないことをお勧めします。
認証を渡すためのより良い方法はありますか? 私が見逃している Linux/Windows のニュアンスはありますか?