2016-12-21 1 views
3

Wenn ich eine EC2-Instanz mit einer IAM-Rolle starte, kann ich boto3 auf diesem EC2instance verwenden und aws Zugriff und geheime Schlüssel nicht angeben, weil boto3reads them automatically.Gibt es eine Möglichkeit, access_key und secret_key von boto3 zu bekommen?

>>> import boto3 
>>> s3 = boto3.resource("s3") 
>>> list(s3.buckets.all())[0] 
s3.Bucket(name='my-bucket-name') 

Frage

Ich frage mich, ob es eine Möglichkeit ist, den Zugriffsschlüssel und geheimen Schlüssel von boto3 zu bekommen? Zum Beispiel, wie kann ich sie drucke auf die Standard-Konsole print

Antwort

6

Es sicher verwenden ist (docs):

from boto3 import Session 

session = Session() 
credentials = session.get_credentials() 
# Credentials are refreshable, so accessing your access key/secret key 
# separately can lead to a race condition. Use this to get an actual matched 
# set. 
current_credentials = credentials.get_frozen_credentials() 

# I would not recommend actually printing these. Generally unsafe. 
print(current_credentials.access_key) 
print(current_credentials.secret_key) 
print(current_credentials.token) 
+0

Gut Erwähnung von ‚get_frozen_credentials‘, eine Methode, die in der nicht bereits beantwortet erwähnt wird Frage, auf die oben verwiesen wird. – simon

+0

Zweifel: ohne Übergabe der Anmeldeinformationen an "Sitzung" wie weiß "boto3" welche Anmeldeinformationen zurückgegeben werden? oder von welchem ​​Konto die Zugangsdaten zurückgeben? –

Verwandte Themen