Auf der Suche nach einer schnellen Möglichkeit, meine Kontonummer abzurufen, hatte ich ursprünglich überlegt, sie zu verwenden, aws iam get-account-authorization-details --max-items 1
aber es gibt verschiedene Probleme, dies auf diese Weise zu tun. Gibt es eine Möglichkeit, dies zu tun, bei der die Herkunft der Konten möglicherweise nicht überschritten wird?
99
aws sts get-caller-identity|jq -r ".Account"
aws sts get-caller-identity --output json | jq '.Account' | sed 's/\"//g'
--query 'Account'
Teil entferne .jq
, auf einem System beteiligt oder installiert zu sein. Einige Server verbieten aus Sicherheitsgründen die Installation fremder Pakete. Sie könnten so etwas tun,aws sts get-caller-identity --output json |grep Account |awk -F ': "' '{print$2}' |sed 's/\".*//'
aber es ist ein wenig nervig und Sie könnten das genauso gut--query 'Account' --output text
an diesem Punkt tun .Aus meiner entsprechenden Antwort für die AWS PowerShell-CLI geht hervor , dass Ihre Konto-ID Teil des Arn der Ressourcen ist, die Sie erstellen ... und die automatisch für Sie erstellt werden. Einige Ressourcen listen Sie auch als OwnerId auf.
Die Standardsicherheitsgruppe wird automatisch für Sie in der Standard-VPC jeder Region als reservierte Sicherheitsgruppe erstellt. Aus der Dokumentation :
Dies macht es zu einem zuverlässigen Kandidaten für das Abrufen unserer Konto-ID, solange Sie sich in EC2 classic befinden oder über eine Standard-VPC verfügen (* siehe Randfälle, wenn Sie dies nicht tun).
Beispiel:
Hiermit wird
--query
die Ausgabe für das erste Ergebnis dieser Anforderung auf die "Eigentümer-ID" heruntergefiltert und anschließend--output
Ihre Konto-ID als Klartext ausgegeben:Randfälle:
(Danke @kenchew) Beachten Sie, dass diese Sicherheitsgruppe nicht mehr vorhanden ist, wenn Sie Ihre Standard-VPC in einer bestimmten Region gelöscht haben, und Sie sollten eine der alternativen Lösungen verwenden:
Weiterführende Literatur:
quelle
Wenn Sie auf einem Server ausgeführt werden, auf dem eine angenommene Rolle ausgeführt wird, können Sie nicht anrufen
aws sts get-caller-identity
. Außerdem könnendescribe-security-groups
Sie den--group-names
Filter nicht immer verwenden (er funktioniert nicht, wenn Sie keine Standard-VPC haben). Wählen Sie einfach die erste Sicherheitsgruppe aus. Ich habe festgestellt, dass dies am zuverlässigsten ist, unabhängig davon, welche Art von Authentifizierung Sie verwenden oder welche Art von VPC Sie haben.quelle
Meine Lieblingsmethode ist die Verwendung,
aws iam get-user [--profile <profile>]
da Sie nur die IAM-Self-Service-Rolle benötigen, damit dies funktioniert.quelle