1

現在、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 のニュアンスはありますか?

4

2 に答える 2

1

新しい規則では 、Windows マシンに古いバージョンの Boto がインストールされてAWS_ACCESS_KEY_ID いない可能性があります。AWS_ACCESS_KEY

于 2015-06-26T18:15:00.563 に答える