この記事はBeeX Advent Calendar 2022の22日目の記事です。
今年は遅刻投稿しかしていない気がします(投稿日12/24)
はじめに
最近AWS Resource Explorerなるサービスがあることを知って実際に触ってみたのですが、対応していないAWSリソースはあるものの構築しているけど自分が認識していないリソースがいくつも見つかって、リソースの把握という観点では非常に使いやすいサービスだと思いました。
ただ、同じようにリソースを把握できるResource Groups & Tag EditorサービスではCSV出力できるところが、AWS Resource ExplorerはCSV出力を行う機能がサポートされていないため、コンソール上で確認しても手元に落として要不要を判断する、といったことがしにくいものとなっていました。
そこで今回はCloudShellを使ってAWS Resource Explorerで取得したリソース一覧をCSV出力する方法を試してみましたので、その方法を書こうと思います。
作業内容
手順
以下4つの手順でCSV出力を行います。
1.コンソールからCloudShellに接続する
2.以下コマンドを実行する
$ aws resource-explorer-2 search --query-string "service:iam" | jq -r '.Resources|map([.Arn, .LastReportedAt, .OwningAccountId, .Region, .ResourceType, .Service])' | jq -r '(map([.[]])[])|@csv' > iam.csv
$ sed -i '1s/^/\"Arn\",\"LastReportedAt\",\"OwningAccountId\",\"Region\",\"ResourceType\",\"Service\"\n/' iam.csv
3.CloudShellのActionsからDownload fileを押下して、出力したCSVファイルをダウンロードする
4.手元でCSVを確認する
作業
1.コンソールからCloudShellに接続する
AWSコンソールにログインし、CloudShellのアイコンからターミナルに接続します。
2.以下コマンドを実行する
ターミナルから以下のコマンドを実行します。
本当はワンライナーにしたかったのですが、中々うまくいかず、コマンドが2つになりました。
今回は--query-stringの条件でIAMを設定していますが、こちらのドキュメントに記載しているフィルターであれば指定可能です。
$ aws resource-explorer-2 search --query-string "service:iam" | jq -r '.Resources|map([.Arn, .LastReportedAt, .OwningAccountId, .Region, .ResourceType, .Service])' | jq -r '(map([.[]])[])|@csv' > iam.csv
$ sed -i '1s/^/\"Arn\",\"LastReportedAt\",\"OwningAccountId\",\"Region\",\"ResourceType\",\"Service\"\n/' iam.csv
3.CloudShellのActionsからDownload fileを押下して、出力したCSVファイルをダウンロードする
CloudShell上に出力したファイルは、Actionsの機能からダウンロードができます。
出力したファイルのフルパスを指定してローカルPC内にCSVファイルをダウンロードします。
4.手元でCSVを確認する
ダウンロードしたCSVファイルを開いてみると作成済みのリソースを確認することができました。
改善点
- 作業の方にも書きましたが、コマンドが2つになってしまったので、できればワンライナーでできると良かったなと思いました。これは単純に自分のスキル不足です。
- このコマンドでは別のリソースを検索する時に毎回一部を書き換えないといけないようになっているので、使いやすさを考えるとその辺りは変更したほうが良さそうでした。
おわりに
AWS Resource Explorerは使いやすそうなサービスではありましたが、 最初の1,000 件の結果しか取ってこなかったり、対応していないAWSリソースもあったりするので、ユースケースは絞られるかなと思いました。
ただ、IAM周りとかは裏側で把握していないリソースが作られてたりして、気づいたら大量のロールやポリシーができている、ということもあったりするので、このサービスで定期的に確認できると良いと思いました。