IAM Access Analyzerとは
IAMのおさらい
IAMとはAWSの認証認可を司るサービスです。
ログイン可能なエンティティを定義したり、エンティティがアクセスできる範囲を定義します。
AWS リソースへのアクセスを安全に管理するためのウェブサービスです。
IAM を使用すると、ユーザーがアクセスできる AWS のリソースを制御するアクセス許可を管理できます。
IAM を使用して、誰を認証 (サインイン) し、誰にリソースの使用を認可する (アクセス許可を付与する) かを制御します
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html
AWSを利用するうえで誰しもが使用するサービスかつ最重要サービスであるIAMですが、多数の機能が提供されています。
代表的な機能でいうと、、、
・IAMユーザー
・IAMロール
・IAMポリシー
などがあります。
AWSにログインする際やEC2でS3バケットにデータを格納する際など、AWS上でアクションを起こすときにはIAMを利用しています。
詳細については、弊社でIAMに関する記事がありますのでご確認ください
IAM Access Analyzerとは
IAM Access Analyzer(以下、Access Analyzer)とは、アクセス権限管理・運⽤を効率化するのに役⽴つ機能を提供します。
IAMロールやS3バケットなどで意図しない外部アクセスを許可していないかを確認出来たり、余剰に付与している権限を特定することが可能です。
利用することで以下のようなメリットを享受できます。
①セキュリティ強化
• 不適切なアクセス権限を特定
• 最⼩権限の実現を効率化
• IAM ポリシーチェックでポリシーを検証
• 外部アクセスが許可されたリソースを検出
②可視化
• 使われていない認証情報やアクセス権限を特定して表⽰
③オートメーション
• IAM リソースや S3 バケットなどのリソースを⾃動的に分析
• Amazon EventBridge と連携することで、意図しないアクセス権限の修正を⾃動化し、運⽤を効率化
④管理容易性
• AWS Security Hub と統合し、検出結果を⼀元管理
• 使われてない認証情報やアクセス権限に対して、レコメンデーションを提⽰
基本的には無料で利用できるので、セキュリティ向上を図るためにはおすすめの機能です。
次項で主な機能について紹介します。
Access Analyzerの機能
外部アクセス検出
1つめが「外部アクセス検出」です。
IAMロールやS3バケット、AWS Key Management Service (AWS KMS)などで、外部エンティティからアクセス可能となっているかを⾃動的に分析して特定する機能です。
この機能により、意図しない外部アクセスを許可していないかを監査することが可能です。
本機能は無料で利用可能です。
サポートしているAWSサービスの一覧は以下の公式ドキュメントをご確認ください。
外部アクセスの IAM Access Analyzer リソースタイプ
外部エンティティからアクセス可能である場合には、検出結果を⽣成します。
利用者は検出結果を確認し、意図された設定ではない場合には対象リソースの⾒直しを実施する必要があります。
注意して欲しいのが、機能はチェックするまで(検出結果を生成するまで)なので、その後の対応は利用者で行う必要があります。
※弊社検証環境のため一部マスクをしております
検出結果が意図された設定である場合には⼿動でアーカイブすることが可能です、
またアーカイブルールを作成することで、類似した検出結果を⾃動的にアーカイブできます。
上記のアーカイブルールは、検出結果で特定の文字列が含まれる場合にアーカイブするルールです。
アーカイブルールの指定可能な条件については以下の公式ドキュメントをご確認ください。
IAM Access Analyzer フィルターキーにアクセスする
未使⽤アクセス検出
2つめが、「未使⽤アクセス検出」です。
IAM ロールと IAM ユーザーを継続的にモニタリングし、追跡期間中に使⽤されていないアクセス許可・認証情報を特定する機能です。
この機能により、使用されていない認証情報を可視化することが可能です。
本機能は、チェックするIAMロールとIAMユーザーの数に応じて料金が発生します。
料金表 | 料金 |
1 か月あたりに分析された IAM ロールとユーザーの数 | USD 0.20 /分析された IAM ロールまたはユーザー/月 |
詳細は以下の公式ドキュメントをご確認ください。
AWS IAM Access Analyzer の料金
デフォルトの追跡期間は 90 ⽇間で、1〜180 ⽇間で設定可能です。
⽣成される検出結果タイプとしては以下の4タイプがあります。
①未使⽤の IAM ロール
使用されていないIAMロール
②未使⽤の IAM ユーザーのコンソールパスワード
ログインがないIAMユーザー
③未使⽤の IAM ユーザーのアクセスキー
アクセスキーでのログインがないIAMユーザー
④未使⽤のアクセス許可
IAMユーザーやIAMロールにアタッチされているポリシーで使用されていない権限
未使用のアクセスに対する検出結果では、AWSから修復手順として推奨ポリシーを生成してくれます。
利用者は生成されたポリシーをコピーしてポリシーを変更するだけでOKです。
アーカイブおよびアーカイブルールの作成は外部アクセス機能同様に可能です。
ポリシー⽣成
3つめが「ポリシー生成」です。
CloudTrailのログを分析して、IAMユーザーまたはロールのアクティビティに基づく IAM ポリシーを⾃動的に⽣成する機能です。
この機能により、操作対象に余剰な権限を与えることなく運用することが可能です。
ただし、必ずしも完全な最⼩権限のポリシーを⽣成するわけではないので参考値として利用することが良いかと思います。
本機能は無料で利用可能です。
未使用アクセス検出の修復手順としても本機能は利用されております。
本機能には使用前に知っておくべき重要事項があり、ここでは代表的なものをご紹介します。
・CloudTrail 証跡を有効にする
ポリシーを生成するには、自分のアカウントで CloudTrail 証跡を有効にする必要がある
・データイベントは分析対象外
Amazon S3 データイベントなどのデータイベントのアクションレベルのアクティビティを識別しない
・IAM コンソールに生成されたポリシーの可用性
生成されたポリシーは、生成後最大 7 日間 IAM コンソールで確認可能
その他の注意事項詳細については公式ドキュメントをご確認ください。
ポリシーの生成について知っておくべきこと
ポリシーチェック
4つめは「ポリシーチェック」です。
ポリシーを作成または変更する際に、⽂法や AWS のベストプラクティスに準拠しているかをチェックする機能です。
この機能により、設定ミスによる過度なアクセス許可を未然に防ぐことが可能です。
本機能は無料で利用可能です。
4つの観点から100 以上のチェック項⽬が定義されております。
・セキュリティ警告
・⽂法エラー
・⼀般的な警告
・提案
以下のポリシーは、あるIAMユーザーに特定のS3バケットのオブジェクト参照権限のみを付与するポリシーを記述した場合の例です。
文法エラーとして「Missing ARN Field」と記載があり、ARNの形式が間違っていることが指摘されています。
その他のエラーについての詳細は以下の公式ドキュメントをご確認ください。
IAM ポリシー検証チェックリファレンス
カスタムポリシーチェック
5つめが「カスタムポリシーチェック」です。
ポリシー変更に対して、意図しない権限が付与されていないか、パブリックアクセスを許可するポリシーかどうかを検証する機能です。
この機能により、意図しないポリシー変更を回避することが可能です。
本機能はチェック数に応じて費用が発生します。
料金表 | 料金 |
1 か月あたりの API 呼び出しの数 | API 呼び出しあたりの USD 0.0020 |
詳細は以下の公式ドキュメントをご確認ください。
AWS IAM Access Analyzer の料金
3つの種類があります。
・CheckNoNewAccess
ポリシーの変更によって、新しく権限が付与されないかをチェック
・CheckAccessNotGranted
ポリシーが、リソースへの意図しないアクセスを許可していないかをチェック
・CheckNoPublicAccess
リソースベースポリシーが、パブリックアクセスを許可していないかをチェック
以下のポリシーは、あるIAMユーザーに特定のS3バケットのオブジェクト参照権限のみを付与するポリシーに変更を加えた例です。
「新しいアクセス」として追加されたステートメントの値が表示されました。
ポリシー単位ではなく、ステートメント単位で追加された内容を教えてくれる機能のようです。
どんなAPIアクションが追加されるかは利用者側でしっかりと確認するようにしましょう。
まとめ
以上、IAM Access Analyzerをご紹介しました。
IAMを管理するうえで有用であることを理解してもらえたら嬉しいです。
IAMはAWSでも重要な位置付けになっているサービスなので、しっかりと管理する必要があります。
運用担当者の負荷を軽減し、面倒なタスクをAWSに任せることができるので、ぜひ活用いただけたらと思います。
多くの機能を無料で利⽤可能なのでまだ触ったことのない方、興味のある方はぜひ使ってみてください。