IAM Access Analyzer で検出する過剰なアクセス権限 - 外部アクセスと未使用権限の分析

IAM ロールの未使用権限を CloudTrail ベースで検出し、最小権限ポリシーを自動生成する。外部アクセスの検出と CI/CD へのカスタムポリシーチェック組み込みまでを解説します。

Access Analyzer の概要

IAM Access Analyzer は 2 種類のアナライザーでアクセス権限の問題を検出するサービスです。外部アクセスアナライザーは、S3 バケットや IAM ロールなどのリソースポリシーを分析し、組織外のアカウントやパブリックからアクセス可能な設定を特定します。未使用アクセスアナライザーは、CloudTrail のアクティビティログと IAM ロールの権限を照合し、実際に使われていない権限を検出します。さらに、CloudTrail の過去のアクティビティに基づいて最小権限の IAM ポリシーを自動生成する機能と、CI/CD パイプラインに組み込むカスタムポリシーチェック機能も提供します。

未使用権限とポリシー生成

未使用アクセスアナライザーは IAM ロールとユーザーの権限を CloudTrail のアクティビティと照合し、90 日以上使用されていないアクション、未使用のアクセスキー、未使用のロールを検出します。90 日という期間はデフォルト値で、四半期に一度しか実行しないバッチ処理などを誤検出しないよう、分析対象期間を考慮した運用が必要です。ポリシー生成は CloudTrail の過去 90 日間のアクティビティに基づいて、実際に使用されたアクションのみを含む最小権限の IAM ポリシーを自動生成します。生成されたポリシーはそのまま適用するのではなく、将来必要になるアクションが含まれているかをレビューしてから適用します。カスタムポリシーチェックは CI/CD パイプラインに組み込み、IAM ポリシーの変更が特定のアクション (s3:* や iam:*) を許可しないことを自動検証します。CodePipeline のステージに Lambda 関数を配置し、CheckNoNewAccess API でポリシー変更の安全性を検証するパターンが一般的です。

外部アクセス検出の活用

外部アクセスアナライザーは S3 バケットポリシー、 IAM ロールの信頼ポリシー、 KMS キーポリシー、 Lambda 関数ポリシー、 SQS キューポリシーを分析し、外部のアカウントやパブリックからアクセス可能なリソースを検出します。検出結果はアーカイブ (意図的な共有) またはアクティブ (要対応) に分類し、意図しない外部公開を優先的に修正します。カスタムポリシーチェックで、ポリシーの変更が新たな外部アクセスを許可しないことを CI/CD パイプラインで自動検証できます。 Organizations との統合で全アカウントの外部アクセスを一元管理し、組織全体のセキュリティ態勢を可視化します。 IAM セキュリティの理解をさらに深めたい場合はAmazon の専門書も活用できます。

Access Analyzer の料金

外部アクセスアナライザーは無料で利用できます。未使用アクセスアナライザーは分析対象の IAM ロールとユーザー数に基づいて課金され、1 ロール/ユーザーあたり月額約 0.20 ドルです。カスタムポリシーチェックは 1 チェックあたり約 0.002 ドルです。未使用アクセスアナライザーは IAM エンティティ数が多い大規模環境ではコストが積み上がるため、重要なアカウントから段階的に有効化することを推奨します。外部アクセスアナライザーは全アカウントで無料で有効化でき、セキュリティのベースラインとして必須です。

最小権限を実現するサイクル

適切な権限設計は、一度きりの作業ではなく、継続的に磨いていくものです。Access Analyzer は、実際のアクセス履歴を分析し、使われていない権限を特定します。これをもとに、付与しすぎている権限を削り、実際に必要なものだけに絞り込めます。さらに、過去のアクティビティに基づいて、必要な権限だけを含むポリシーの案を生成する機能もあります。これを出発点に調整すれば、ゼロから書くより安全に最小権限のポリシーを作れます。付与・分析・削減のサイクルを定期的に回すことで、権限が際限なく広がるのを防ぎ、最小権限の状態を保ち続けられます。

デプロイ前のポリシー検証

権限の問題は、本番に適用される前の段階で防ぐのが理想です。Access Analyzer は、作成したポリシーが意図に反した過剰なアクセスを許していないかを、適用前に検証する機能を提供します。たとえば、外部のアカウントにリソースを公開してしまう設定や、推奨されない書き方を検出し、警告します。これを CI/CD パイプラインに組み込めば、ポリシーの変更がリポジトリにマージされる前に自動でチェックでき、危険な権限設定が本番へ流れるのを防げます。デプロイ前の検証を仕組みとして取り入れることが、継続的に安全な権限管理を維持する鍵になります。

まとめ

Access Analyzer は外部アクセスと未使用権限の検出で最小権限の原則を実現するサービスです。CloudTrail のアクティビティに基づくポリシー自動生成で適切な権限を効率的に設定し、カスタムポリシーチェックで CI/CD パイプラインにセキュリティ検証を組み込むことで、権限管理のライフサイクル全体を自動化します。