2016-08-23 2 views
0

Ich habe eine Testumgebung, die die S3-Umgebung nachahmt, und ich möchte einige Testskripts mit Boto3 schreiben. Wie kann ich mich mit diesem Dienst verbinden?boto3 und verbinden mit benutzerdefinierten URL

Ich habe versucht:

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") 

Beide arbeiten scheitern.

Der Dienst ist für die Verwendung der IAM-Authentifizierung eingerichtet.

Mein Fehler:

botocore.exceptions.NoCredentialsError: Unable to locate credentials 

Irgendwelche Ideen?

Dank

+0

Haben Sie aws-Anmeldedaten eingerichtet? – cuongnv23

+0

@ josh1234 - Ist die Maschine, von der Sie über boto3-Befehle laufen, die EC2-Instanz? Oder ist es normale Desktop-Maschine/Laptop? –

Antwort

0

Bitte wie unten verwenden:

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

Überprüfen Sie bitte diesen Link, um weitere Möglichkeiten AWS-Anmeldeinformationen zu konfigurieren. http://boto3.readthedocs.io/en/latest/guide/configuration.html

+0

Ich kann nicht die Methode access_key/secret_key verwenden, die IAM auf dem Server, den ich benutze, eingerichtet habe, von dem ich nicht einmal weiß, dass es möglich ist, auf diese Weise auf Ressourcen zuzugreifen. –

+0

Wenn der von Ihnen verwendete Server eine EC2-Instanz ist und ihm eine IAM-Rolle zugeordnet ist, müssen Sie nichts tun, um die Anmeldeinformationen zu finden. Boto3 wird dann für Sie finden. – garnaat

-1

1. Boto API für Credential sucht immer zu Verbindungsdienste weitergeben, gibt es keine Möglichkeit, AWS-Ressourcen zugreifen kann, ohne einen Zugangsschlüssel und Passwort bietet.

Wenn Sie beabsichtigen, eine andere Methode zu verwenden, z. Temporäre Sicherheitsanmeldeinformationen: Ihr AWS-Administrator muss Rollen und usw. einrichten, damit die VM-Instanz eine Verbindung mit AWS herstellen kann, indem sie AWS Security Token Service verwendet.

Andernfalls müssen Sie einen Berechtigungsschlüssel mit eingeschränktem Berechtigungsnachweis von Ihrem AWS-Kontoadministrator anfordern.

2.Auf der anderen Seite sollten Sie FakeS3 einrichten, wenn Sie S3 imitieren und den schnellen Upload/Download großer Datenmengen für die Entwicklung testen möchten. Es wird ein Dummy-Zugangsschlüssel benötigt. Es gibt jedoch einige Nachteile von FakeS3: Sie können die S3-Bucket-Richtlinie nicht einrichten und testen.

3.Sie können Ihren S3-Bucket auch so konfigurieren, dass jeder die Datei übernehmen kann. Nur über die URL ist es eine Dateizugriffsberechtigung, keine Bucket-Zugriffsberechtigung.

Verwandte Themen