🕌

AWSアカウント内でリソースを検索する方法4選

に公開

こんにちは、CSC の平木です!

AWS 環境が複雑化し、管理するリソースが増えるにつれて、「あのリソースはどこにあったっけ?」「この設定はどのアカウントに適用されているんだ?」といった疑問を抱くことはありませんか?
特にマルチアカウント環境では、目的のリソースを見つけ出すだけでも一苦労です。

このブログでは、AWS 環境におけるリソース検索を行うにあたり、4 つのサービス

  • Tag Editor
  • AWS Resource Explorer
  • AWS Config 高度なクエリ
  • Amazon Q Developer

をピックアップし、それぞれの特徴やマルチアカウントでの利用可否、検索対象となるリソースの種類について詳しく解説します。

早速結論

サービス名 特徴 マルチアカウント横断検索 検索対象 主な用途
Tag Editor タグベースでリソースを一括管理・編集でき、タグ付け戦略の徹底に有効だが、タグがないリソースの検索には不向き × AWS Resource Groups およびタグエディタで使用できるリソースタイプ - AWS Resource Groups タグに基づいたリソースの検索・管理、一括タグ編集
AWS Resource Explorer 複数アカウント横断でリソースを素早く発見・可視化できるが、詳細な設定情報は別途確認が必要 Resource Explorer で検索できるリソースタイプ - AWS Resource Explorer 広範囲なリソースの発見、インベントリ管理、可視化
AWS Config 高度なクエリ SQL ライクな構文でリソースの詳細な設定履歴を分析でき、コンプライアンス監査に強力だが、クエリの記述には専門知識が必要 AWS Config でサポートされているリソースタイプ - AWS Config 詳細な設定情報の検索、コンプライアンス監査、セキュリティ分析
Amazon Q Developer 自然言語で直感的にリソースを検索・開発支援を行う AI アシスタントだが、検索精度は基盤サービスに依存し、複雑な条件指定には限界がある △ (CLI では認証情報の設定次第ではもしかしたら可能) Cloud Control API をサポートするリソースタイプ - Cloud Control API 自然言語でのリソース検索、開発支援、トラブルシューティング

1. Tag Editor

Tag Editor は、AWS リソースに付与されたタグを効率的に管理・検索するためのツールです。
タグはリソースの分類や管理に非常に役立ちますが、Tag Editor を使うことで、タグに基づいたリソースの発見が容易になります。

しかしタグを使用することが前提のため、タグをサポートしていないまたはタグを付与していないリソースは調べられません。

マルチアカウント横断検索

Tag Editor 単体ではマルチアカウントでの検索は不可です。

現在はタグ管理を AWS Resource Explorer に移行している最中であり、AWS Resource Explorer から複数の AWS アカウントおよびリージョンを横断してリソースを検索し、タグを確認することができます。

タグの編集はそのアカウント自身のリソースである必要があります。

検索対象

EC2、S3、RDS、Lambda、IAM など、タグ付けが可能な幅広い AWS リソースタイプを検索対象とします。
個別のリソースタイプを選択して検索することも、「すべてのリソースタイプ」を対象にすることも可能です。

最新かつ完全なリストは以下の公式ドキュメントで確認できます。

https://docs.aws.amazon.com/ARG/latest/userguide/supported-resources.html

2. AWS Resource Explorer

AWS Resource Explorer は、AWS アカウント内のリソースを素早く検索・発見できるサービスです。
単一の検索バーから、リソースタイプ、タグ、キーワードなどを用いて、必要なリソースを簡単に見つけることができます。

マルチアカウント横断検索

AWS Organizations と連携することで、組織内の複数の AWS アカウントを横断してリソースを検索することが可能です。
これにより、一元的なリソース管理と可視化を実現します。

検索対象

EC2 インスタンス、S3 バケット、DynamoDB テーブル、Lambda 関数など、多岐にわたる AWS リソースタイプをサポートしています。
サポートされるサービスは継続的にアップデートされており、最新かつ完全なリストは以下の公式ドキュメントで確認できます。

https://docs.aws.amazon.com/resource-explorer/latest/userguide/supported-resource-types.html

検索機能もアップデートがあり、先日複数検索をしやすくなりました。

https://zenn.dev/khirasan/articles/c9f63e5eb781f0

3. AWS Config 高度なクエリ

AWS Config は、AWS リソースの設定変更履歴を記録し、設定のコンプライアンスを評価するサービスです。
高度なクエリ機能を使用すると、SQL のような構文でリソースの設定情報を詳細に検索・分析できます。

例えばスクリーンショットのように AdministratorAccess を持つ IAM ロールを調べたい場合下記のようなクエリ文を実行することで調査できます。

SELECT
  accountId,
  configuration.roleName,
  configuration.attachedManagedPolicies.policyName
WHERE
  resourceType = 'AWS::IAM::Role'
  AND configuration.attachedManagedPolicies.policyName = 'AdministratorAccess'

マルチアカウント横断検索

Config アグリゲーターを使用することで、複数の AWS アカウント、リージョン、さらには AWS Organizations 内の組織全体のリソース設定情報を集約し、中央アカウントから横断的にクエリを実行できます。

下記ブログが大変分かりやすいです。

https://dev.classmethod.jp/articles/advanced-queries-in-aws-config-to-find-resources-in-organizations/

検索対象

AWS Config がサポートする様々な AWS リソースの設定情報が検索対象となります。
例えば、EC2 インスタンスのセキュリティグループ設定、S3 バケットのパブリックアクセス設定、IAM ロールの信頼ポリシーなど、リソースの構成に関する詳細な情報を取得できます。
最新かつ完全なリストは以下の公式ドキュメントで確認できます。

https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/resource-config-reference.html#supported-resource-types-advanced-queries

4. Amazon Q Developer

Amazon Q Developer は、開発者が AWS に関する質問をしたり、コードを生成したり、トラブルシューティングを行ったりするための AI アシスタントです。
その機能の一部として、AWS リソースの検索も実施できます。

マルチアカウント横断検索

マネコン搭載の Amazon Q Developer は各アカウントに閉じているため不可です。
Amazon Q Developer CLI であれば、認証情報の設定次第ではもしかしたら可能かもしれません。

もしこういう方法で出来るよ!ということがあればぜひ教えていただきたいです!

検索対象

Amazon Q Developer のリソース検索機能は正確なドキュメントはなかったですが、おそらく Cloud Control API(有効化されている場合は AWS Resource Explorer も) に依存するため、Cloud Control API で参照できるリソースであればおそらく検索可能です。

https://docs.aws.amazon.com/ja_jp/cloudcontrolapi/latest/userguide/supported-resources.html

まとめ

AWS 環境でリソースを検索する方法は多岐にわたりますが、それぞれのサービスには得意な領域があります。

これらのツールを適切に使い分けることで、AWS 環境におけるリソース管理の効率を大幅に向上させることができます。
ぜひ、ご自身のユースケースに合わせて最適なツールを選択し、活用してみてください。

この記事がどなたかの役に立つと嬉しいです。

Discussion