はじめに
不要なユーザー/アクセス/権限を削除するにあたり、まずは不要なものを可視化してリスト化し、棚卸をする必要があるかと思います。本書ではAWS上で不要なユーザー/アクセス/権限を洗い出せると思われるサービスや方法について記載します。
本書で紹介するAWSサービスは以下の通りです。
- IAM Access Analyzer - IAM Access Advisor - Config
IAM Access Analyzer
IAM Access Analyzerは、AWS アカウントまたは組織の外部アクセスと未使用のアクセスに関する検出結果を生成します。
開始方法
アナライザー設定から、有効化の設定を行います。
検出対象
1.外部アクセスの場合、信頼ゾーンの外部で共有されているリソースを検出します。
2.未使用のアクセスの検出対象は下記のとおりです。
- 未使用のアクセスキー - 未使用のパスワード - 未使用の権限 - 未使用のロール
→未使用/不必要な権限周りの検出は可能だが、未使用/不必要なユーザー自体の検出はされない
ダッシュボード
外部アクセスと未使用のアクセスの検出結果をダッシュボードで閲覧可能です。
詳細:https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access-analyzer-dashboard.html
IAM Access Analyzer の料金
外部アクセスは追加料金なしで利用できます。
未使用のアクセスは有料の機能です。
1か月あたりに分析された IAM ロールとユーザーの数 - 0.20USD /分析された IAM ロールまたはユーザー/月
詳細:https://aws.amazon.com/jp/iam/access-analyzer/pricing/
IAM Access Advisor
IAM Access Advisorは、IAM コンソールの[アクセスアドバイザー]タブで、IAM の最終アクセス情報を表示できます。
開始方法
特に追加設定は不要で、ユーザー、ユーザーグループ 、ロール 、ポリシーの各タブから情報を確認できます。
最終アクセス情報を表示できる対象
- ユーザー ユーザーが許可された各サービスへのアクセスを最後に試みた時間を表示します。 - ユーザーグループ グループメンバーが許可された各サービスへのアクセスを最後に試みた時間に関する情報を表示します。また、このレポートには、アクセスを試みたメンバーの合計数も表示されます。 - ロール 許可された各サービスへのアクセスにおいて、ユーザーが最後にロールを使用した時間を表示します。 - ポリシー ユーザーまたはロールが許可された各サービスへのアクセスを最後に試みた時間に関する情報を表示します。また、このレポートには、アクセスを試みたエンティティの合計数も表示されます。
→ユーザーや権限周りの最終使用日時が表示が可能
ダッシュボード
ユーザー、ユーザーグループ 、ロール 、ポリシーの各タブから情報を確認ができるが、ダッシュボードのように一覧として見る機能はないようです。
IAM Access Advisor の料金
無料で利用可能です。(デフォルトで付いている機能となります。)
AWS Config
AWS Configは、AWS リソースの設定を評価および監査できます。
開始方法
ワンクリックセットアップか手動セットアップで各種設定をすることで使用ができます。非準拠ルールを設定することでリソースの構成設定を評価することができます。
検出対象
設定次第で様々なルールを設定することができます。
あくまで一例となりますが、アクセス関係のマネージドルールは下記のとおりです。
- access-keys-rotatedaccess-keys-rotated - s3-access-point-in-vpc-only - iam-user-unused-credentials-check
→特定のマネージドルールやカスタムルールを使用すれば、未使用/不必要な権限周りやユーザーの検出可能
ダッシュボード
ダッシュボードから非準拠リソースによるルールを閲覧することができます。
詳細:https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/managed-rules-by-aws-config.html
Configの料金
設定に応じて、費用が発生します。
各AWSリージョンのAWSアカウントごとに配信される設定項目あたりのコスト - 連続的な記録 0.003USD - 定期的な記録 0.012USD
AWS Configルール評価 - 最初の100,000 件のルール評価 リージョンごとのルール評価ごとに0.001USD - 次の400,000 件のルール評価 (100,001~500,000) リージョンごとのルール評価ごとに0.0008USD - 500,001件以上のルール評価 リージョンごとのルール評価ごとに0.0005USD
詳細:https://aws.amazon.com/jp/config/pricing/
紹介したサービスを使わないとどうなるか?
IAM Access Analyzer
IAM Access Analyzerを使わないと、ユーザー、ユーザーグループ 、ロール 、ポリシーの各タブの最後のアクティビティなどから未使用のアクセスを判断する必要があります。また外部のアクセスの検出が困難になります。
IAM Access Advisor
各ユーザー、ユーザーグループ 、ロール 、ポリシーに紐づいたロールやサービスの最終アクセス時間を確認することが困難になります。
Config
ルールによる未使用/不必要な権限周りやユーザーの検出ができないため、手動で確認するなどの必要がでてきます。
まとめ
IAM Access Analyzer、IAM Access Advisor、Configサービスを見ていき、それぞれの特徴を下記の表にまとめました。
表から分かる通り、どのサービスも一長一短で結論として「AWSサービスにおいて自動で不要なユーザー/アクセス/権限をダッシュボード等でまとめられる機能はないため、シチュエーションに応じて使い分ける必要がある。」ということになるかと思います。
IAM Access Analyzer | IAM Access Advisor | Config | |
---|---|---|---|
自動で作成されるか | △ (有効化が必要) |
〇 | × (ルールの設定が必要) |
ユーザーの検出 | × | 〇 | 〇 |
権限の検出 | 〇 | 〇 | 〇 |
ダッシュボード有無 | 〇 | × | 〇 |
利用料有無 | △ (未使用のアクセスは有料) |
× | 〇 (設定内容に応じてコストが発生) |