Ist es möglich, eine aws-Konto-ID mit nur aws-Zugriffsschlüssel und geheimem Schlüssel in der Befehlszeile (CLI) abzurufen?


7

Ist es möglich, eine aws-Konto-ID mit nur aws-Zugriffsschlüssel und geheimem Schlüssel in der Befehlszeile (CLI) abzurufen?

Ich habe Zugangsschlüssel und geheimen Schlüssel bei mir. Ist es möglich, die Konto-ID über die Befehlszeile abzurufen?

Antworten:


8

Das ist der richtige Weg:

~ $ aws sts get-caller-identity
{
    "Account": "123456789012", 
    "UserId": "AIDABCDEFGHJKL...", 
    "Arn": "arn:aws:iam::123456789012:user/some.user"
}

Es funktioniert für IAM-Benutzer, kontenübergreifende IAM-Rollen, EC2-IAM-Rollen usw.

Verwenden Sie zusammen mit jq, um nur die Konto-ID zu erhalten:

~ $ aws sts get-caller-identity | jq -r .Account
123456789012

Beim Aufrufen der GetCallerIdentity-Operation ist ein Fehler aufgetreten (InvalidClientTokenId): Das in der Anforderung enthaltene Sicherheitstoken ist ungültig. Dieser Fehler wird angezeigt :(
Vandhana

Das liegt daran, dass Sie die $AWS_SECURITY_TOKENUmgebungsvariable aus irgendeinem Grund festgelegt haben. Führen Sie unset AWS_SECURITY_TOKEN AWS_SESSION_TOKENzuerst und dann versuchen Sie es erneut.
MLu

Den gleichen Fehler erhalten: |
Vandhana

Ich habe die Ausgabe erhalten .. aber für den folgenden Befehl AWS_ACCESS_KEY_ID = AXXXXXXGA AWS_SECRET_ACCESS_KEY = NXXXXXXt aws sts get-caller-identity Aber ich sollte die Schlüssel für alle aws-Befehle angeben .. gibt es eine andere Möglichkeit, dies zu tun
Vandhana

@Vandhana Sie können die Anmeldeinformationen in einer Konfigurationsdatei speichern: docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html
MLu

0

Fast jedes AWS-Objekt enthält die Konto-ID. Mein IAM-Benutzer lautet beispielsweise arn: aws: iam :: ACCOUNT_ID: user / Andrew.Lorien, und die ID eines meiner Cloudformation-Stapel lautet arn: aws: cloudformation: us-west-2: ACCOUNT_ID: stack / my- Repository / 12345678-90ab-cdef-1234-567890abcdef. Sie können also alles abfragen, was Sie wissen, und die ID daraus extrahieren. Hier ist ein Bash-Einzeiler, der den ersten IAM-Benutzer (eine Zeichenfolge wie arn: aws: iam :: ACCOUNT_ID: user / USER_NAME) abruft und die Konto-ID extrahiert.

aws iam list-users --query "Users[0].Arn" --output text | cut -d ":" -f 5

Beim Aufrufen der ListUsers-Operation ist ein Fehler aufgetreten (InvalidClientTokenId): Das in der Anforderung enthaltene Sicherheitstoken ist ungültig. Diesen Fehler erhalten
Vandhana

Hmm, Sie müssen keine Erlaubnis haben, IAM zu lesen, auch nicht Ihre eigene. Ich habe eine bessere Antwort, aber es ist eine völlig andere Antwort, also werde ich sie separat veröffentlichen.
Andrew Lorien
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.