IAM Access Analyzer
IAM Access Analyzer とは
IAM Access Analyzer は、AWS リソースが組織外やパブリックに公開されていないかを自動的に検出するサービスである。
一般的な構成管理ツール(CSPM)が「パブリックアクセスブロックがオンか」といった設定の有無をチェックするのに対し、IAM Access Analyzer は Zelkova という自動推論エンジンを用いて、バケットポリシー・ACL・IAM ポリシー・VPC エンドポイントポリシー等を組み合わせた到達可能性を数学的に分析する。
つまり、「設定がどうなっているか」ではなく「最終的に誰がアクセスできるか」を判定する。
Analyzer のタイプ
外部アクセスの Analyzer には、信頼ゾーン(zone of trust)の範囲に応じて 2 つのタイプがある。
| タイプ | 信頼ゾーン | 検出対象 | コスト |
|---|---|---|---|
| ACCOUNT | 単一の AWS アカウント | アカウント外からのアクセスを検出 | 無料 |
| ORGANIZATION | AWS Organizations 全体 | 組織外からのアクセスを検出 | 無料 |
ORGANIZATION タイプは組織全体を信頼ゾーンとするため、組織内のクロスアカウントアクセスは検出せず、組織外へのアクセスのみを検出する。Security Hub CSPM や予防コントロール(SCP / RCP)と同様に組織全体を一元的に管理する運用と整合するため、本記事では ORGANIZATION タイプを使用する。
なお、外部アクセスの検出は無料で利用できる。未使用アクセスの分析(別機能)は有料だが、本記事では扱わない。
外部アクセスの検出
IAM Access Analyzer の外部アクセス検出は、以下の 2 種類のアクセスを検出する。
| 検出対象 | 説明 | Security Hub での重要度 |
|---|---|---|
| パブリックアクセス | 全世界に公開されている(認証なしでアクセス可能) | MEDIUM |
| クロスアカウントアクセス | 組織外の特定の AWS アカウントからアクセス可能 | LOW |
パブリックアクセスについては、S3 の Block Public Access や EBS の Block Public Access 等、デフォルトでブロックする仕組みが整備されつつある。一方、クロスアカウントアクセスは意図的に設定するものであり、デフォルトではブロックされない。一時的な共有設定の消し忘れや、退職した委託先アカウントへの共有が残っているケースは実務で頻繁に発生する。
AWS は 2022 年から「データペリメーター」という概念を公式に推進しており、「信頼された ID だけが、信頼されたリソースに、期待されたネットワークからアクセスする」ことを保証する予防的ガードレールの確立を推奨している。2024 年 11 月に RCP(リソースコントロールポリシー)が Control Tower に追加されたのも、この戦略の一環である。
IAM Access Analyzer は、このデータペリメーターが正しく機能しているかを検証するツールとして位置づけられる。
対応リソース
外部アクセス検出に対応するリソースは 15 種類(2026 年 3 月時点)。
| リソースタイプ | パブリックアクセス検出 | クロスアカウントアクセス検出 |
|---|---|---|
| S3 バケット | ✅ | ✅ |
| S3 ディレクトリバケット | ✅ | ✅ |
| IAM ロール | - | ✅ |
| KMS キー | ✅ | ✅ |
| Lambda 関数・レイヤー | ✅ | ✅ |
| SQS キュー | ✅ | ✅ |
| Secrets Manager シークレット | ✅ | ✅ |
| SNS トピック | ✅ | ✅ |
| EBS ボリュームスナップショット | ✅ | ✅ |
| RDS DB スナップショット | ✅ | ✅ |
| RDS DB クラスタースナップショット | ✅ | ✅ |
| ECR リポジトリ | ✅ | ✅ |
| EFS ファイルシステム | ✅ | ✅ |
| DynamoDB ストリーム | - | ✅ |
| DynamoDB テーブル | - | ✅ |
Security Hub CSPM との比較
Security Hub CSPM(FSBP)は AWS のベストプラクティスに準拠するための設定チェックを提供する。外部アクセスに関連するコントロールも含まれるが、IAM Access Analyzer とはカバー範囲が異なる。
主な違いは以下の 2 点。
- Security Hub CSPM は主にパブリックアクセス(
*プリンシパルによるアクセス)の設定をチェックする。特定の外部アカウントへのクロスアカウント共有は検出対象外のものが多い - IAM Access Analyzer はパブリックアクセスとクロスアカウントアクセスの両方を、ポリシーの組み合わせによる到達可能性分析で検出する
| リソースタイプ | Security Hub CSPM(FSBP) | IAM Access Analyzer |
|---|---|---|
| S3 バケット | S3.1, S3.2, S3.3, S3.8(パブリックアクセスの設定チェック) | パブリック + クロスアカウント(ポリシーの組み合わせ分析) |
| IAM ロール | 外部アクセスの直接チェックなし | クロスアカウント(信頼ポリシーの外部プリンシパルを検出) |
| KMS キー | KMS.5(パブリックアクセスのチェック) | パブリック + クロスアカウント(キーポリシー + グラントの組み合わせ分析) |
| Lambda 関数 | Lambda.1(パブリックアクセスのチェック) | パブリック + クロスアカウント |
| SQS キュー | SQS.3(パブリックアクセスのチェック) | パブリック + クロスアカウント |
| SNS トピック | SNS.4(パブリックアクセスのチェック) | パブリック + クロスアカウント |
| Secrets Manager | 外部アクセスチェックなし(暗号化チェックのみ) | パブリック + クロスアカウント |
| EBS スナップショット | EC2.1(パブリック共有のチェック) | パブリック + クロスアカウント(共有先アカウント ID の特定) |
| RDS スナップショット | RDS.1(パブリック共有のチェック) | パブリック + クロスアカウント(共有先アカウント ID の特定) |
| ECR / EFS / DynamoDB | 外部アクセスチェックなし | パブリック + クロスアカウント |
| S3 ディレクトリバケット | 外部アクセスチェックなし | パブリック + クロスアカウント |
予防コントロールとの関係
IAM Access Analyzer で外部アクセスを検出した後、それを予防するには Control Tower の予防コントロールが有効である。
| 対象サービス | IAM Access Analyzer(検出) | 予防コントロール(ブロック) |
|---|---|---|
| S3 | パブリック + クロスアカウント | CT.S3.PV.4(RCP: 組織外アクセスブロック) |
| IAM ロール(STS) | クロスアカウント | CT.STS.PV.1(RCP: 組織外 AssumeRole ブロック) |
| KMS | パブリック + クロスアカウント | CT.KMS.PV.7(RCP: 組織外アクセスブロック) |
| Lambda | パブリック + クロスアカウント | CT.LAMBDA.PV.2(SCP: パブリックアクセスブロック) |
| SQS | パブリック + クロスアカウント | CT.SQS.PV.1(RCP: 組織外アクセスブロック) |
| Secrets Manager | パブリック + クロスアカウント | CT.SECRETSMANAGER.PV.1(RCP: 組織外アクセスブロック) |
| EBS スナップショット | パブリック + クロスアカウント | CT.EC2.PV.3(SCP), CT.EC2.PV.7(Declarative) |
| SNS / RDS / ECR / EFS / DynamoDB | パブリック + クロスアカウント | 予防コントロールなし(カスタム SCP で対応可能) |
IAM Access Analyzer で検出 → 予防コントロールでブロック → IAM Access Analyzer で検証、というサイクルを回すことで、データペリメーターを段階的に確立できる。
構築
委任管理者の設定、Terraform による全リージョン展開、アーカイブルールの設計については以下を参照。
- 委任管理者の設定 — サービスアクセスの有効化、SLR 作成、委任管理者の登録
- Terraform による全リージョン展開 — S3 バックエンド準備、Terraform デプロイ、アーカイブルール設計、デプロイ確認
検証
個別リソースの検証記事を積み上げた後に追記予定。
確認項目
- 組織外アカウントへの共有が検出されるか
- パブリックアクセスが検出されるか
- アーカイブルールにより SSO ロールの検出が抑制されるか
- アーカイブルールにより東京以外の IAM ロール検出が抑制されるか
- Security Hub に検出結果が連携されるか
- アーカイブ後に Security Hub から検出結果が消えるか