2016-08-23 3 views
0

S3環境を模倣したテスト環境があり、boto3を使用していくつかのテストスクリプトを作成したいと思います。そのサービスにどのように接続できますか?boto3とカスタムURLに接続

私が試した:

client = boto3.client('s3', region_name="us-east-1", endpoint_url="http://mymachine") 
client = boto3.client('iam', region_name="us-east-1", endpoint_url="http://mymachine") 

は両方が動作しません。

IAM認証を使用するようにサービスが設定されています。

マイエラー:

botocore.exceptions.NoCredentialsError: Unable to locate credentials 

任意のアイデア?

おかげ

+0

aws資格情報を設定しましたか? – cuongnv23

+0

@ josh1234 - boto3コマンドの上で実行しているマシンはEC2インスタンスですか?それとも、通常のデスクトップマシン/ラップトップですか? –

答えて

0

は、以下のように使用してください:

import boto3 
client = boto3.client('s3', aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY,) 

をAWSの資格情報を設定するには、より多くの方法のために、このリンクをご確認ください。 http://boto3.readthedocs.io/en/latest/guide/configuration.html

+0

access_key/secret_keyメソッドを使用することはできません。私が使用しているサーバーでセットアップIAMを使用していますが、これは私には分かりませんが、リソースにそのようにアクセスすることは可能です。 –

+0

使用しているサーバーがEC2インスタンスで、IAMロールが関連付けられている場合、資格情報を見つけるために何もする必要はありません。 Boto3はあなたのためにそれを見つけるでしょう。 – garnaat

-1

1. boto APIは、接続サービスに渡す資格情報を常に探します。アクセスキーとパスワードなしでボットを使用してAWSリソースにアクセスする方法はありません。

他の方法を使用する場合は、 Temporary Security Credentialsの場合、AWS管理者は、VMインスタンスがAWS Security Token Serviceを使用してAWSに接続できるように、ロールなどを設定する必要があります。

それ以外の場合は、制限付きの資格情報キーをAWSアカウント管理者にリクエストする必要があります。

2.一方、S3を模倣し、膨大な量のデータを高速アップロード/ダウンロードしてテストしたい場合は、FakeS3を設定する必要があります。ダミーのアクセスキーを使用します。しかし、FakeS3の欠点はほとんどありません.S3バケットポリシーをセットアップしてテストすることはできません。

3.あなたのS3バケットを誰もがファイルを取るように設定しても、それはURLを通じてのみで、バケットアクセス許可ではなくファイルアクセス許可です。

関連する問題