はじめに
AWSを利用していると、「気づいたらリソースが増えていた」「どこに何があるか分からない」 という状態になりがちです。特に複数人で運用している場合、構成ドキュメントがないと以下のような問題が生じます。
- 監査・セキュリティの弱点を見落とす
- コストの無駄遣いが発生する
- 障害発生時に復旧が遅れる
- 人の入れ替わりで運用ナレッジが断絶する
そこで必要になるのが 「構成管理(棚卸し)」 です。この記事では、AWSアカウントの棚卸し方法を私なりにまとめました。棚卸しを実施される方の参考になれば幸いです。
✅ 1. なぜ AWS の棚卸しが必要なのか?
AWSは便利な反面、
気づいたら誰かがリソースを作成できてしまう
という特徴があります。
その結果
- 使っていないEC2が放置され課金され続ける
- EBSがインスタンスから外れたまま課金される
- IAM の権限が広すぎて監査NGになる
- CloudTrail が無効で証跡が残っていない
- S3バケットが公開状態
- NAT Gatewayの使いすぎで高額請求
といった問題が発生しやすくなります。
棚卸しを行うことで、
- コスト削減
- 監査対応のスピード向上
- 障害調査の迅速化
- セキュリティ向上
- 人的ミスの防止
など多くのメリットがあります。
特に 監査・セキュリティ対応・コスト削減 の3つは、棚卸しだけで劇的に変わることがあります。
✅ 2. 棚卸しで確認した「7つのカテゴリ」
AWSの棚卸ですが、私はこの7カテゴリをまず確認しました。
【1】IAM(ユーザー/ロール/権限)
チェックポイント:
- 使われていないIAMユーザーの有無
- ロールの最小権限化
- MFA が有効か
- キーが放置されていないか
- 管理者権限(AdministratorAccess)の棚卸し
IAM棚卸しは 監査で最も重視される領域 です。
【2】EC2(スペック/台数/役割)
チェックポイント:
- インスタンスタイプの適正化
- 停止中のリソースの棚卸し
- メトリクスからスペックダウン可能か
- AMI の上限チェック
- Auto Recovery の設定
EC2 はコスト影響も大きいため 棚卸し対象 としました。
【3】EBS(アタッチ状況/スナップショット)
チェックポイント:
- 未アタッチの EBS が課金され続けていないか
- gp2 → gp3 でコスト削減できるか
- スナップショットの世代管理
特に 未アタッチEBSは無駄な課金になりやすい です。
【4】RDS(バージョン/バックアップ)
チェックポイント:
- バージョンがサポート期限切れになってないか
- 自動バックアップが有効か
- マルチAZ構成か
- ストレージ上限の逼迫
RDSも監査で見られることが多いサービスと思われます。
【5】S3(アクセス権/データ保持)
チェックポイント:
- バケットの公開設定
- ライフサイクルルール
- バージョニングの有無
- 不完全なマルチパートアップロードの放置
S3の誤設定は漏洩事故に直結するため要注意の箇所となります。
【6】VPC(ネットワーク構成)
チェックポイント:
- NAT Gateway の使いすぎチェック
- Public/Private サブネットの役割
- セキュリティグループの広すぎる allow がないか
- インターネットGW / ルートテーブルの管理
【7】ログ・監査(CloudTrail / Config / GuardDuty)
チェックポイント:
- CloudTrail が全リージョンで有効か
- S3ログの保管場所が保護されているか
- Config Recorder が動いているか
- GuardDuty 有効化
- Security Hub の利用有無
CloudTrail無効は監査での対応でも指摘される箇所になります。
✅ 3. 最初にやるべき「重要チェック項目」
上記のうち、まずこの5項目を見ておきましょう。
- ✔ CloudTrail が有効になっている
- ✔ Config Recorder がオン
- ✔ IAMユーザーのMFA強制
- ✔ S3バケットの公開チェック
- ✔ NAT Gateway が複数存在していないか確認
これらは 監査 + コスト の両方で必須となる項目です。
✅4. AWS棚卸しの手順
以下にサンプルとして
ステップ1:IAMの棚卸し
aws iam list-users
aws iam list-roles
aws iam list-access-keys --user-name <USER>
ステップ2:EC2の棚卸し
aws ec2 describe-instances
aws ec2 describe-volumes
ステップ3:S3の棚卸し
aws s3 ls
aws s3api get-bucket-policy-status --bucket <bucket>
aws s3api get-bucket-encryption --bucket <bucket>
ステップ4:CloudTrail / Config
aws cloudtrail describe-trails
aws configservice describe-configuration-recorders
✅まとめ
今回の記事で紹介した項目を整理することで、
- コスト削減
- セキュリティ強化
- 監査対応
- 運用の属人化防止
といったいずれかで効果が得られると幸いです。
AWSを安全かつ効率よく運用するためにも、まずは「棚卸し」 から始めてみてください。
追記事項や誤りがありましたら適宜修正いたします。