FOR PROFESSIONALSプロフェッショナル向け

Fアイデンティティと権限段4設計層とは

IAM Access Analyzer とは何か|外部への共有・未使用の権限・ポリシー検証を「信頼ゾーン」で見張る仕組み

IAM Access Analyzer とは何か|外部への共有・未使用の権限・ポリシー検証を「信頼ゾーン」で見張る仕組み

権限設計は一度書いて終わりではありません。リソースポリシーで他アカウントに開けた口、プロジェクトが終わっても残ったロール、いつの間にか広がった権限。設計と実態のずれは、人の目で棚卸しするには数が多すぎます。この記事は、そのずれを継続的に見張る IAM Access Analyzer が「何を見て、何を見ないのか」を、信頼ゾーンという言葉で説明できる状態を目指します。

この記事の結論

  • IAM Access Analyzer は IAM の中の見張り役で、ポリシーを推論して、設計と実態のずれを finding として出します。
  • 外部アクセス分析は、組織またはアカウントを信頼ゾーンとし、その外に開いたリソースポリシーを検出します。
  • 未使用アクセス分析は、使われていないロール・アクセスキー・パスワード・サービス・アクションの権限を出します。内部アクセス分析は、選んだ重要リソースに組織内のどの主体が届くかを見ます。
  • ポリシーの検証・カスタムチェック・生成は、書く前後(CI を含む)で効きます。外部アクセスの analyzer はリージョンごとに作る、といった範囲の癖も知っておく必要があります。
  • 検出するだけで、直すのは人です。直す手段は SCP・境界・ポリシーの設計です。

IAM Access Analyzer とは何か(見張り役という位置づけ)

IAM Access Analyzer は、ポリシーを論理的に推論して「このリソースに、誰がどこから届くか」「この権限は実際に使われているか」を調べ、結果を finding(検出結果)として出すサービスです。IAM の機能群の一部として提供されています。

たとえるなら、ビルの警備室の監視カメラです。鍵を作って配るのは管理側(SCP・許可セット・権限境界)の仕事で、監視カメラは鍵を作りません。合鍵が外の人に渡っていないか、誰も使わない鍵が残っていないかを見て知らせるのが仕事です。正確な言い方に戻すと、Access Analyzer は権限を絞る機能ではなく、絞った結果が設計どおりかを確かめる機能です。

役割は大きく 2 つに分かれます。

  • すでにある権限・共有を分析する: 外部アクセス・内部アクセス・未使用アクセスの 3 種類の分析
  • ポリシーを書く前後を支える: ポリシーの検証、カスタムチェック、ポリシーの生成

次の章からは、まず「外」とは何かを決める信頼ゾーンを押さえ、そのうえで 3 種類の分析、書く側の機能の順に見ていきます。

THREE QUESTIONS3 つの分析

Access Analyzer は外・内・未使用の 3 つの問いに答える

  1. 外部

    信頼ゾーンの外に、リソースが開いていないか

    S3・KMS・ロールの信頼ポリシーなど

  2. 内部

    選んだ重要リソースに、組織内のどの主体が届くか

    守りたいものだけ選んで見る

  3. 未使用

    付けた権限は、実際に使われているか

    ロール・キー・パスワード・サービス・アクション

信頼ゾーンとは何か|組織かアカウントかで「外」の定義が変わる

外部アクセス分析では、analyzer を作るときに信頼ゾーン(zone of trust)を決めます。信頼ゾーンは「ここまでは信頼してよい範囲」で、選べるのは 組織 か アカウント です。分析は、ゾーンの外のプリンシパルがリソースにアクセスできる状態を finding にします。

信頼ゾーンの選び方 「内」とみなす範囲 同じ組織の別アカウントへの共有
組織 組織に属するアカウント全体 内側なので finding にならない
アカウント その 1 アカウントだけ 外側なので finding になる

つまり、同じ共有でも信頼ゾーンの選び方で finding になるかが変わります。複数アカウントを運用していて「組織の外に出ているものだけ知りたい」なら組織を、アカウント単位の境界を厳密に見たいなら、アカウントを信頼ゾーンにします。

ここで間違えやすいのが、「信頼ゾーンの内側=安全」と読んでしまうことです。ゾーンの内側は、この分析が問題にしないだけです。組織内でも広すぎる権限は別の問題で、それは次の章の内部アクセス分析や未使用アクセス分析の守備範囲です。

CHECK 1ここまでの確認

組織を信頼ゾーンにした外部アクセス分析で、同じ組織の別アカウントにバケットを共有した場合はどうなる?

答えと解説

答え: 2. 信頼ゾーンの内側なので、外部アクセスの finding にはならない

外部アクセス分析は「信頼ゾーンの外」に開いた共有を出します。組織が信頼ゾーンなら組織内は信頼された側です。読み直すのは「信頼ゾーンとは何か」の章です。

外部アクセス・内部アクセス・未使用アクセスは何が違うか

3 種類の分析は、見ている問いが違います。

分析 見ている問い 主な出力
外部アクセス 信頼ゾーンの外に、リソースが開いていないか リソースポリシーなどで外部に共有されたリソース
内部アクセス 選んだ重要リソースに、組織内のどの主体が届くか 組織内の主体からのアクセス経路
未使用アクセス 付けた権限は、実際に使われているか 使われていないロール・アクセスキー・パスワード・サービス・アクションの権限

外部アクセス分析

S3 バケットのポリシー、KMS キーのポリシー、IAM ロールの信頼ポリシーのように、リソース側に書かれたポリシーで他の主体へ開いている状態を調べます。パブリックに開いたものも、他アカウントに開いたものも対象です。「他アカウントへの共有が増えてきたが、意図しない外部共有がないか継続的に見たい」という場面で、最初に思い浮かべる分析です。

内部アクセス分析

外部が「ゾーンの外」を見るのに対し、内部アクセス分析は組織の内側を見ます。すべてのリソースを対象にするのではなく、守りたい重要なリソースを選び、そこに組織内のどの主体が届くかを確かめます。外部アクセス分析では「内側だから問題なし」とされる範囲を、重要なリソースに限って掘り下げる使い方です。

未使用アクセス分析

こちらは共有ではなく、権限の使われ方を見ます。付けたまま使われていないロールやアクセスキー、パスワード、サービスやアクションの権限を出します。最小権限は「最初に絞る」だけでなく「使われなかった分を減らし続ける」ことで保たれるため、この分析が運用の棚卸しを支えます。

CHECK 2ここまでの確認

長く使われていない IAM ロールを棚卸ししたい。使う分析はどれ?

答えと解説

答え: 3. 未使用アクセス分析

使われていないロール・アクセスキー・権限を出すのは未使用アクセス分析です。外部は「外に開いているか」、内部は「組織内のどの主体が届くか」を見ます。

CHECK 3ここまでの確認

S3 バケットのポリシーが、意図しない他アカウントへ開いていないかを継続的に見たい。使う分析はどれ?

答えと解説

答え: 1. 外部アクセス分析

リソースポリシーによる外への共有を見るのが外部アクセス分析です。読み直すのは「3 種類の分析は何が違うか」の章です。

ポリシーの検証・カスタムチェック・生成は何をするか

ここまでは「すでにある権限」を見る機能でした。Access Analyzer にはもう一つ、ポリシーを書く前後で効く機能があります。

機能 何をするか 効くタイミング
ポリシーの検証 文法とベストプラクティスに沿っているかを確認し、警告や提案を返す 書いている最中、レビュー、CI
カスタムチェック 「新しいアクセスを許していないか」「特定のアクセスを許していないか」など、決めた基準に照らして確認する 変更の適用前(CI に組み込む)
ポリシーの生成 実際のアクティビティの記録をもとに、必要な権限だけを含むポリシーのたたき台を作る 広い権限で動かしたあと、絞り込むとき

使い分けの考え方はこうです。ポリシーの検証は「書き方として問題がないか」を見ます。カスタムチェックは「自分たちの基準を満たすか」を見るので、組織のルールを機械的に守らせたいときに向きます。ポリシーの生成は「実際に使った権限」を出発点にするので、最小権限に絞り込む最初の一歩になります。ただし生成されるのはたたき台で、そのまま適用してよいとは限りません。記録された期間に起きなかった操作の権限は含まれないため、人が内容を見て判断します。

評価の順番そのもの(明示的な Deny が優先される、など)は iam-policy-shikumi で扱っています。Access Analyzer の検証は、その評価の仕組みを前提に動いている、と捉えておけば十分です。

WRITE TO FIX書く前後の流れ

検証で止め、finding で気づき、直すのは人

  1. ポリシーを書く

    たたき台は生成も使える

  2. 検証・カスタムチェック

    CI で基準を確かめる

  3. 適用する

    SCP・ポリシー・境界

  4. finding を見る

    外部・未使用

  5. 人が直す

    意図した共有は記録

使うときの癖|リージョンごとの作成、反映の遅れ、料金の単位

仕組みは単純でも、使い始めてから気づく癖がいくつかあります。

リージョンごとに作る。 外部アクセスの analyzer は、見たいリージョンごとに作ります。リージョンをまたいで自動で見てくれるわけではないので、使っているリージョンのどこかが抜けていると、そこは分析の対象外です。「入れたはずなのに、そのリージョンのバケットは検出されない」という事態は、これで起きます。リージョン制限を SCP で掛けている組織は、許可したリージョンに揃えて作る、という考え方ができます。

反映には時間がかかる。 ポリシーを変えた直後に finding が更新されるとは限りません。変更を検出してから反映されるまでの目安は公式ドキュメントに書かれているので、「直したのに finding が残っている」と慌てる前に、公式の記述を確認します。

料金は分析の種類ごとに課金の単位が違う。 外部アクセス、未使用アクセスなど、種類によって何に対して課金されるかが異なります。数値は改定されうるので、この記事には書きません。使う分析を決めたら、公式の料金ページで確認してください。

finding は「問題」ではなく「確認が必要なもの」。 意図して外に共有しているものも finding になります。意図した共有は理由を記録したうえで、アーカイブなどで扱いを分ける運用にします。全部を消そうとするのではなく、「意図しないものだけが残る」状態を作るのが目的です。

CHECK 4ここまでの確認

外部アクセス分析を、使っている複数のリージョンのリソースに効かせるには?

答えと解説

答え: 2. 見たいリージョンごとに analyzer を作る

外部アクセスの analyzer はリージョンごとに作る前提です。見ていないリージョンは分析の対象外になります。読み直すのは「使うときの癖」の章です。

権限設計のどこに置くか(絞る側と確かめる側)

権限設計の道具は、役割で 2 つに分けると整理できます。

  • 絞る側: SCP、IAM Identity Center の許可セット、権限境界、ポリシー。「何を許すか・許さないか」を決める
  • 確かめる側: Access Analyzer。決めた結果が実態として設計どおりかを確かめる

RESTRICT AND VERIFY絞る側と確かめる側

権限は絞る道具と確かめる道具で役割が違う

絞る側

何を許すかを決める

  • SCP
  • 許可セット
  • 権限境界
  • ポリシー

確かめる側

結果が設計どおりかを見る

  • Access Analyzer
  • 外部・内部・未使用の finding
  • 検証・カスタムチェック

Access Analyzer は finding を出すだけで、権限を変えません。見つけたあとに「SCP で防ぐか」「ポリシーを直すか」「そもそも設計を見直すか」を決めるのは人です。絞る側の設計は kengen-sekkei-pro で扱っているので、この記事の内容はその「減らし続ける」工程を支える部品として読むとつながります。

まとめると、Access Analyzer は外部(信頼ゾーンの外への共有)・内部(組織内で重要リソースに届く主体)・未使用(使われていない権限)の 3 つの問いに答え、書く前後にはポリシーの検証・カスタムチェック・生成が効きます。リージョンごとに作る癖と、finding を人が判断する運用を押さえておけば、同僚や顧客にも一言で説明できます。

参照ソース

SCOREこの記事の確認テスト

0/4問 正解

各章の「ここまでの確認」に答えると、ここに集まります。結果はこの端末のブラウザにだけ残り、サーバには送りません。

PRACTICEこの記事の論点を練習問題で確かめる

この記事が扱うサービスの問題だけを続けて解けます。練習問題は Google でログインした人が使えます(練習問題の一覧)。

HAND IT OVER人に渡すなら

一言で説明するなら

ビルの警備室の監視カメラです。鍵は管理側が決めますが、合鍵が外の人に渡っていないか、誰も使わない鍵が残っていないかを見張って知らせます。

FAQよくある質問

Access Analyzer を入れれば権限は自動で直るのか?

直りません。Access Analyzer は設計と実態のずれを finding として出すところまでです。内容を見て、意図した共有なら残し、意図しないなら SCP・ポリシー・境界の設計を人が直します。

SCP や権限境界と何が違うのか?

SCP や権限境界は「権限を絞る」仕組みで、Access Analyzer は「絞った結果が設計どおりかを確かめる」仕組みです。絞る側と確かめる側は役割が別で、両方そろって回ります。

料金はいくらか?

分析の種類によって課金の単位が異なります。数値は改定されるため、この記事には書きません。公式の料金ページで確認してください。

次に何を読めばよいか?

絞る側の設計を確認するなら、マルチアカウントの権限設計の記事(kengen-sekkei-pro)に戻るのが近道です。ポリシーの評価の順番は iam-policy-shikumi にあります。

SAME TRACK同じ領域の記事

IAM ポリシーの評価の仕組み|許可と拒否はどの順で決まるか
IAM ポリシーの評価の仕組み|許可と拒否はどの順で決まるか 段1 入口仕組み
IAM とは何か|ユーザー・ロール・ポリシーを「誰が・何に・何をしてよいか」で読み解く
IAM とは何か|ユーザー・ロール・ポリシーを「誰が・何に・何をしてよいか」で読み解く 段1 入口とは
AccessDenied が出たときの調べ方|エラーメッセージの「because」から止めたポリシーの種類を絞る運用
AccessDenied が出たときの調べ方|エラーメッセージの「because」から止めたポリシーの種類を絞る運用 段2 構成運用