Skip to content

小ネタ:AWS アカウントの作成日付を知りたい

普段あまりないですが、AWS アカウントを作成した日付を知りたい場面が出てきました。1
その方法の検討と、AWS CLI で取得する方法を記した小ネタです。

そもそも AWS アカウント作成日を知るには?

現時点の AWS マネジメントコンソールではアカウント作成日、として明記されている箇所などはなく、おそらく過去の UI でもなかったのではないかな?と推察しています。

AWS アカウントを作成後 AWSから配信されるメールの日付を見る。などの方法も考えられますが、すでにメールを削除済みだった場合にはその方法も取れないことになります。

よくよく考えると AWS アカウントを開設したタイミングで root アカウントの作成が行われているはずで、root アカウントが作成された日 ≒ AWS アカウントを作成した日、とみなすことができるかな、と考えました。

検討した方法

おおまかには、以下のような流れでの確認方法を検討しました。

  1. iam:GenerateCredentialReport でクレデンシャルレポートを作成してから
  2. iam:GetCredentialReport でクレデンシャルレポートの取得と情報の抽出

また、この手法では root アカウントで実行する必要はなく、上記の AWS API の実行を許可されている IAM エンティティであれば実行できることになります。

できたコマンド

iam:GenerateCredentialReport の実施

1
aws iam generate-credential-report
出力例

上記コマンドを実行すると以下のように返却されクレデンシャルレポートの作成が開始されます

1
2
3
4
{
    "State": "STARTED",
    "Description": "No report exists. Starting a new report generation task"
}

iam:GetCredentialReport での情報の抽出

1
2
3
4
5
aws iam get-credential-report \
  --query 'Content' \
  --output text \
  | base64 -D \
  | grep root
出力例

上記を実行すると以下のように出力されます

1
<root_account>,arn:aws:iam::xxxxxxxxxxxx:root,20yy-mm-ddT06:15:15+00:00,not_supported,20yy-mm-ddT06:20:40+00:00,not_supported,not_supported,true,false,N/A,N/A,N/A,N/A,false,N/A,N/A,N/A,N/A,false,N/A,false,N/A

クレデンシャルレポートでは <root_account> と記載される行が root アカウントに相当します。

また、レポートのフォーマットについては、公式ドキュメントに記載がありました。

AWS アカウント の認証情報レポートの取得 - AWS Identity and Access Management

まとめ

AWS アカウントを作成した日付を知りたくなったので、その方法の検討と AWS CLI を利用した取得方法です。

あまり利用シーンはなさそうですが小ネタとして。


  1. 調べたくなった経緯は俗に言う ap-northeast-1b が使えるアカウント(=すなわち 2013 年1月1日より前に発行された AWS アカウントの存在を調べたくなったため。 

Comments