Ich habe eine AWS_ACCESS_KEY_ID und eine AWS_SECRET_KEY. Dies sind aktive Anmeldeinformationen, die zu einem aktiven Benutzer gehören, der zu einem AWS-Konto gehört. Wie finde ich mithilfe von Boto3 die ID dieses AWS-Kontos?AWS-Konto-ID von Boto abrufen
10
A
Antwort
18
Die AccountID kann aus der Funktion get-caller-identity sts abgerufen werden. Dies gibt ein Feld "Account":
client = boto3.client("sts", aws_access_key_id=access_key, aws_secret_access_key=secret_key)
account_id = client.get_caller_identity()["Account"]
1
Die folgende Funktion erhalten Sie die Konto-ID für Ihr Schlüsselpaar erhalten:
import boto3
def get_aws_account_id(access_key, secret_key):
sts = boto3.client(
"sts", aws_access_key_id=access_key, aws_secret_access_key=secret_key,
)
user_arn = sts.get_caller_identity()["Arn"]
return user_arn.split(":")[4]
Dies funktioniert, weil ARN Benutzer des Formats "arn: aws: iam :: ACCOUNT_ID: Benutzer/Benutzername" ist. Aufteilen nach Doppelpunkten, Konto-ID ist das 4. Element (0-indiziert).
2
So etwas wie dies funktioniert:
import boto3
ACCESS_KEY = 'FOO'
SECRET_KEY = 'BAR'
iam = boto3.resource('iam',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
)
account_id = iam.CurrentUser().arn.split(':')[4]
print account_id
Wenn Sie EC2 IAM Rollen verwenden, können Sie die gesamte Zugriffs/geheimen Schlüssel Sachen weglassen, und der Code wird einfach:
iam = boto3.resource('iam')
account_id = iam.CurrentUser().arn.split(':')[4]
Verwandte Themen
- 1. Boto AWS Glacier - Archiv abrufen
- 2. Boto RequestExpired
- 3. Fehler beim Abrufen von Daten aus S3 mit Boto für Python
- 4. Django Boto S3 Zugriff
- 5. Boto s3 get_metadata
- 6. Wie installiere ich Boto?
- 7. Boto DynamoDB2 konditional put_item
- 8. Give basic boto create_qualification_type Beispiel
- 9. BOTO-Problem mit IAM-Rolle
- 10. Boto S3 wirft gelegentlich httplib.IncompleteRead
- 11. boto get md5 s3 Datei
- 12. Abfrage von Simple DB von Amazon mit Boto
- 13. Hadoop-Parameter mit Boto einstellen?
- 14. Verwenden Boto EC2-Instanz Status
- 15. Boto connect_xxx Methode und Verbindungspools
- 16. Django Storages Boto Bad Digest
- 17. Laden S3-Dateien mit Boto
- 18. Ist die Boto-Bibliothek threadsicher?
- 19. Boto „get-Byte-Bereich“ liefert mehr als
- 20. Wie kann ich mit der Amazon s3 boto-Bibliothek die URL eines gespeicherten Schlüssels abrufen?
- 21. Wie AWS abzufragen, um ELB-Namen und angefügte Instanzen mithilfe von Python-Boto-Modulen zu erhalten?
- 22. Verwenden von Boto für AWS S3-Buckets für Signature V4
- 23. Unterstützt gsutil das Erstellen von Boto-Dateien mit Dienstkontodaten?
- 24. Lesen roher Nachrichten von Amazon SQS mit Boto
- 25. Mit ec2 Python API boto, wie SpotInstance_id von SpotInstanceRequest erhalten?
- 26. Boto-Skript zum Herunterladen der neuesten Datei von s3 Eimer
- 27. Wie bekomme ich die Region des aktuellen Benutzers von Boto?
- 28. Verwenden von Boto zum Verbinden mit S3 mit Python
- 29. Herunterladen der Dateien von s3 rekursiv mit Boto Python.
- 30. Seitenumbruch in Amazon DynamoDB mit Boto
Einige hier genannten Methoden https://gist.github.com/gene1wood/6d4974b7503336d642c9 – Montaro
Mögliches Duplikat [immer die aktuelle Benutzer-Account-ID in boto3] (https://stackoverflow.com/questions/33332050/getting-the-current-user-account-id-in-boto3) –
@MarnixKlooster Diese Frage kommt zuerst bei Google für die Suche nach "Boto Account ID". Vielleicht markieren Sie die andere Frage als Duplikat. – Zags