135

口座番号を簡単に取得する方法を探していたので、最初は使用することを考えてaws iam get-account-authorization-details --max-items 1いましたが、この方法ではいくつかの問題があります。アカウントのオリジンをクロスしない可能性のあるこれを行う方法はありますか?

4

4 に答える 4

279

以下を使用して、 Secure Token Serviceサブコマンドからアカウント番号を取得できます。get-caller-identity

aws sts get-caller-identity --query Account --output text
于 2016-10-19T02:28:00.417 に答える
35

AWS PowerShell CLI に対する私の関連する回答から、アカウント ID は、作成するリソースの Arn の一部であり、自動的に作成されるものです。一部のリソースでは、OwnerId としてもリストされます。

デフォルト セキュリティ グループは、各リージョンのデフォルト VPC に予約済みセキュリティ グループとして自動的に作成されます。ドキュメントから:

デフォルトのセキュリティ グループは削除できません。EC2-Classic の既定のセキュリティ グループを削除しようとすると、次のエラーが発生します: Client.InvalidGroup.Reserved: The security group 'default' is reserved. VPC デフォルト セキュリティ グループを削除しようとすると、次のエラーが発生します。

これにより、EC2 クラシックを使用しているか、デフォルトの VPC を使用している限り、アカウント ID を取得するための信頼できる候補になります (*そうでない場合は、エッジ ケースを参照してください)。

例:

aws ec2 describe-security-groups \
    --group-names 'Default' \
    --query 'SecurityGroups[0].OwnerId' \
    --output text

これは--query、このリクエストからの最初の結果の「所有者 ID」まで出力をフィルタリングするために使用--outputし、次にアカウント ID をプレーンテキストとして出力するために使用します。

123456781234

エッジケース:

(@kenchew に感謝) 特定のリージョンでデフォルト VPC を削除した場合、このセキュリティ グループは存在しなくなるため、次の代替ソリューションのいずれかを使用する必要があることに注意してください。

参考文献:

于 2015-11-18T22:03:49.410 に答える