Die von Boto 3 verwendeten Authentifizierungsinformationen sind in "Anmeldeinformationen - Boto 3" an 8 Standorten zusammengefasst. Die Anmeldeinformationen werden in der angegebenen Reihenfolge durchsucht.
Boto3 versucht auf verschiedene Weise, Anmeldeinformationen abzurufen, einschließlich Parameter und Profile. Die Methode und Reihenfolge finden Sie unter "Anmeldeinformationen konfigurieren - Anmeldeinformationen - Boto 3". Meine Übersetzung des Teils lautet wie folgt.
Der Suchmechanismus für Anmeldeinformationen von boto3 besteht darin, gemäß der folgenden Liste zu suchen und dort anzuhalten, wenn der Berechtigungsnachweis gefunden wird. Die Reihenfolge, in der Boto3 nach Anmeldeinformationen sucht, lautet:
- Anmeldeinformationen, die als Parameter an die Methode
boto.client ()
übergeben wurden- Anmeldeinformationen, die beim Erstellen des "Session" -Objekts als Parameter übergeben wurden
- Umgebungsvariablen
- Gemeinsame Anmeldeinformationsdatei (
~ / .aws / credentials
)- AWS-Konfigurationsdatei (
~ / .aws / config
)- Roll Underwriting anbieten
- Boto2-Konfigurationsdatei (
/etc/boto.cfg und ~ / .boto
)- Auf Amazon EC2-Instanzen, die mit der IAM-Rolle konfiguriert wurden, dieser Instanz-Metadatendienst
Wir werden uns einige davon ansehen, die API-Zugriffsschlüssel und geheime API-Schlüssel oder benannte Profile verwenden.
Geben Sie in der Methode "boto3.client ()" oder in der Methode "boto3.session.Session (). Client ()" Folgendes mit Parametern an.
Schlüssel | Spezifizierter Wert |
---|---|
aws_access_key_id | API-Zugriffsschlüssel |
aws_secret_access_key | API geheimer Schlüssel |
aws_session_token | (Zum Zeitpunkt der Multi-Faktor-Authentifizierung) Sitzungstoken |
Das Folgende ist ein Beispiel für die Ausführung in einer interaktiven Shell.
>>> import boto3
>>> client = boto3.client('iam', aws_access_key_id='YOURACCESSKEY', aws_secret_access_key='YOURSECRETKEY')
>>> client.list_users()
Sie können die obigen drei Parameter auch dann angeben, wenn Sie anstelle von "client ()" die Methode "resource ()" ("boto3.resource ()" oder "boto3.session.Session (). Resource ()") verwenden.
>>> import boto3
>>> resource = boto3.resource('iam', aws_access_key_id='YOURACCESSKEY', aws_secret_access_key='YOURSECRETKEY')
>>> list(resource.users.all())
Geben Sie beim Erstellen eines Sitzungsobjekts mit "boto3.session.Session ()" Folgendes mit Parametern an. Clients, die von der Methode "client ()" generiert wurden, und Ressourcen, die von der Methode "resource ()" aus dem generierten Sitzungsobjekt generiert wurden, verwenden diesen Berechtigungsnachweis.
Schlüssel | Spezifizierter Wert |
---|---|
aws_access_key_id | API-Zugriffsschlüssel |
aws_secret_access_key | API geheimer Schlüssel |
aws_session_token | (Zum Zeitpunkt der Multi-Faktor-Authentifizierung) Sitzungstoken |
Das Folgende ist ein Beispiel für die Ausführung in einer interaktiven Shell.
>>> import boto3
>>> session = boto3.session.Session(aws_access_key_id='YOURACCESSKEY', aws_secret_access_key='YOURSECRETKEY')
>>> client = session.client('iam')
>>> client.list_users()
Geben Sie beim Erstellen eines Sitzungsobjekts mit "boto3.session.Session ()" Folgendes mit Parametern an. Die im angegebenen benannten Profil (https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-profiles.html) konfigurierten Anmeldeinformationen werden verwendet. Clients, die von der Methode "client ()" generiert wurden, und Ressourcen, die von der Methode "resource ()" aus dem generierten Sitzungsobjekt generiert wurden, verwenden diesen Berechtigungsnachweis.
Schlüssel | Spezifizierter Wert |
---|---|
profile_name | Profilname |
Das Folgende ist ein Beispiel für die Ausführung in einer interaktiven Shell.
>>> import boto3
>>> session = boto3.session.Session(profile_name='YOURPROFILENAME')
>>> client = session.client('iam')
>>> client.list_users()
Geben Sie Folgendes mit Umgebungsvariablen an. Wenn bis zum vorherigen Abschnitt keine expliziten Anmeldeinformationen angegeben wurden, wird dies verwendet.
Name der Umgebungsvariablen | Spezifizierter Wert |
---|---|
AWS_ACCESS_KEY_ID | API-Zugriffsschlüssel |
AWS_SECRET_ACCESS_KEY | API geheimer Schlüssel |
AWS_SESSION_TOKEN | (Zum Zeitpunkt der Multi-Faktor-Authentifizierung) Sitzungstoken |
Das folgende Beispiel zeigt die Ausführung der interaktiven Python-Shell, nachdem die oben genannten Umgebungsvariablen in der Bash-Umgebung festgelegt wurden.
$ export AWS_ACCESS_KEY_ID=YOURACCESSKEY
$ export AWS_SECRET_ACCESS_KEY=YOURSECRETKEY
$ python3
Python 3.6.9 (default, Nov 7 2019, 10:44:02)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> client = boto3.client('iam')
>>> client.list_users()
Geben Sie Folgendes mit Umgebungsvariablen an. Wenn im vorherigen Abschnitt keine expliziten Anmeldeinformationen angegeben wurden, wurde dieses [benannte Profil] angegeben (https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-profiles). Die in .html konfigurierten Anmeldeinformationen werden verwendet.
Name der Umgebungsvariablen | Spezifizierter Wert |
---|---|
AWS_PROFILE | Profilname |
Das folgende Beispiel zeigt die Ausführung der interaktiven Python-Shell, nachdem die oben genannten Umgebungsvariablen in der Bash-Umgebung festgelegt wurden.
$ export AWS_PROFILE=YOURPROFILENAME
$ python3
Python 3.6.9 (default, Nov 7 2019, 10:44:02)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> client = boto3.client('iam')
>>> client.list_users()
~ / .aws / credentials
)Wenn keine solchen Anmeldeinformationen vorhanden sind, werden die als "Standard" -Profil in der Anmeldeinformationsdatei ("~ / .aws / credentials") konfigurierten Anmeldeinformationen verwendet. Dies wird normalerweise mit dem Befehl aws configure
festgelegt, wenn Sie die AWS CLI zum ersten Mal verwenden. Weitere Informationen finden Sie unter "AWS CLI Easy Setting". Bitte gib mir.
~ / .aws / config
)Wenn Sie die Anmeldeinformationen noch nicht haben, werden die als "Standard" -Profil in der AWS-Konfigurationsdatei ("~ / .aws / config") konfigurierten Anmeldeinformationen verwendet. Normalerweise sind die in der AWS-Konfigurationsdatei verwalteten Profilinformationen jedoch die Region ("Region") und das Standardausgabeformat ("Ausgabe") und enthalten keine Authentifizierungsinformationen.
/etc/boto.cfg und ~ / .boto
)Wenn bisher keine Authentifizierungsinformationen vorhanden sind, werden die in der Boto2-Konfigurationsdatei gespeicherten Authentifizierungsinformationen überprüft, falls vorhanden. Die Boto2-Konfigurationsdatei befindet sich standardmäßig in / etc / boto.cfg
oder ~ / .boto
. Das Folgende ist ein Beispiel für den Inhalt.
Example ~/.boto file
[Credentials]
aws_access_key_id = foo
aws_secret_access_key = bar
Dies dient der Abwärtskompatibilität und die Boto2-Konfigurationsdatei wird außer im Abschnitt Anmeldeinformationen ignoriert.
Zu den in Boto3 verfügbaren Anmeldeinformationen gehören (1) API-Zugriffsschlüssel und API-Geheimschlüssel, (2) Standardprofil, (3) benanntes Profil und (4) Rolle (Details hier nicht erwähnt). Es sind vier Typen möglich. Wenn man dies mit der bisherigen Spezifikationsmethode korrespondiert, wird es wie folgt.
Authentifizierungsmethode | Wie zu spezifizieren |
---|---|
API-Zugriffsschlüssel und geheimer API-Schlüssel | 1、2、3、4、5、7 |
Standard Profil | 4 |
Benanntes Profil | 2、3 |
rollen | 6、8 |
Wenn Sie der Meinung sind, dass die erwartete Authentifizierungsmethode nicht verwendet wird, müssen Sie überprüfen, ob eine andere Spezifikation mit einer Spezifikationsmethode mit höherer Priorität erstellt wurde.
Selbst wenn Sie beispielsweise in der Umgebungsvariablen "AWS_PROFILE" ein benanntes Profil angeben, hat dies Vorrang, wenn in "boto3.session.Session ()" ein anderer Profilname angegeben wird. Wenn Sie es absichtlich tun, werden Sie es bemerken, aber es kann verwirrend sein, wenn die Standardwerte irgendwo eingehen.
Informationen zur Boto3-Authentifizierung.
Informationen zu AWS-Anmeldeinformationen und Konfigurationsdateien.
Über jede Methode von boto3.
Informationen zur Boto2-Konfigurationsdatei.
Recommended Posts