「IAMポリシーで s3:* を許可しているのに、削除だけ拒否される」。原因を探していくと、SCP やアクセス許可の境界(Permission Boundary)に行き当たることがあります。どちらも「権限の上限を決める」仕組みなので、AWS SAA の学習でも取り違えやすい論点です。

結論:SCP はアカウント単位、アクセス許可の境界は IAM ユーザー・ロール単位で権限の上限を決めます。どちらも権限を付与せず、どこか1つにでも明示的な Deny があれば拒否されます。

筆者は AWS SAA を取得し、その後は更新せず失効させた経験があります。この記事では、AWS 公式のユーザーガイドを根拠に、2つの違いと実効権限の決まり方を整理します。

この記事で分かること:

  • SCP とアクセス許可の境界の違い(早見表)
  • 「許可しているのに拒否される」が起きる理由(明示的 Deny と共通部分)
  • AWS SAA(SAA-C03)での問われ方と、取り違えやすい点

※記事の内容は、2026年10月13日に AWS 公式ドキュメント(日本語版・英語版)と AWS 認定の公式ページで確かめたものです。AWS のドキュメントは更新されることがあるため、最新の内容は公式サイトで確認してください。日本語版のドキュメントは機械翻訳で、英語版と食い違う場合は英語版が優先すると明記されています。



結論:SCPとアクセス許可の境界の早見表

2つの違いは「どの機能か」と「何にかけるか」です。権限を付与しない点、明示的な Deny が勝つ点は共通です。

項目 SCP(サービスコントロールポリシー) アクセス許可の境界(Permission Boundary)
どの機能か AWS Organizations IAM
かける相手 組織のルート・OU・アカウント IAM ユーザーまたは IAM ロール
効く範囲 メンバーアカウント内の IAM ユーザーとロール(ルートユーザーを含む) 境界をつけたエンティティだけ
権限を付与するか しない(上限を決めるだけ) しない(上限を決めるだけ)
効かないもの 管理アカウント、サービスにリンクされたロール 境界をつけていないエンティティ
主な使い道 組織全体のガードレール 権限管理の委任(作れるユーザーの上限)

横にスクロールできます

覚え方は「SCP は会社の規則、境界は個人の契約書」です。会社の規則(SCP)はそのアカウントの全員にかかり、個人の契約書(境界)はつけた人にだけかかります。どちらも「この範囲までしかやってはいけない」と決めるだけで、仕事(権限)そのものは別に渡す必要があります。

後輩
上限を決めるだけなら、SCP で全部許可しておけば何でもできますか?
先輩
できないよ。SCP も境界も「渡す」仕組みではないからね。実際の許可は IAM ポリシーなどで別に付ける必要がある。上限と許可の両方を通ったものだけが使えるんだ。

SCPとは:組織のアカウントにかける上限

SCP は、組織内の IAM ユーザーと IAM ロールが使える最大のアクセス許可を一元的に決める、AWS Organizations のポリシーです。AWS Organizations のユーザーガイドは、SCP によってアクセス許可を付与することはできないと明記しています。

押さえておきたい性質は次の5つです。

  • すべての機能が有効な組織でのみ使える:一括請求機能だけを有効にした組織では SCP は使えません。
  • メンバーアカウントにだけ効く:管理アカウントのユーザーやロールには影響しません。委任管理者に指定したメンバーアカウントには適用されます。
  • ルートユーザーにも効く:メンバーアカウントのルートユーザーを含む、IAM ユーザーとロールのアクセス許可を制限します。
  • サービスにリンクされたロールには効かない:AWS のサービスが使うサービスにリンクされたロールは、SCP で制限できません。
  • 組織外のユーザーには効かない:SCP はリソースベースのポリシーに直接は影響せず、組織外のアカウントに属するユーザーやロールにも影響しません。

ユーザーガイドによると、アカウントのレベルで SCP にブロックされている権限は使えません。アカウント管理者が */* を許可する AdministratorAccess ポリシーを付けても同じです。SCP は、アカウント内のどんな強い許可よりも外側にある枠です。

なお、AWS Organizations には SCP のほかに、リソースにかける上限であるリソースコントロールポリシー(RCP)もあります。IAM の評価論理では、組織のメンバーのアカウントでは、ユーザーのポリシー・SCP・RCP の3つすべてで許可される必要があると説明されています。

※この章の内容は AWS Organizations ユーザーガイド「サービスコントロールポリシー (SCP)」と IAM ユーザーガイド「ポリシーの評価論理」より


アクセス許可の境界とは:ユーザー・ロールにかける上限

アクセス許可の境界は、アイデンティティベースのポリシーで付与できる権限の上限を、IAM ユーザー・ロールごとに管理ポリシーで決める IAM の機能です。エンティティは、アイデンティティベースのポリシーと境界の両方で許可された操作だけを実行できます。

IAM ユーザーガイドには、次のような例が載っています。

  1. Shirley というユーザーに、s3:*・cloudwatch:*・ec2:* だけを許可するポリシーを境界として設定する
  2. そのうえで Shirley に iam:CreateUser を許可するポリシーを付ける
  3. Shirley がユーザーを作ろうとすると、失敗する(境界が iam:CreateUser を許可していないため)

このとき Shirley は、境界の範囲内の S3 などの操作もできません。境界は上限を決めるだけで、S3 の許可は付与していないからです。境界と許可の両方を満たして初めて使えることが、この例からよく分かります。

いちばんの使い道は「権限管理の委任」

境界の代表的な使い道は、IAM ユーザーやロールを作る作業をほかの人に任せることです。IAM ユーザーガイドの例では、管理者の María が、ユーザー作成の作業を Zhang に任せます。

  • 新しく作るユーザーには、決められた境界ポリシーを必ずつけることを条件にする
  • Zhang 自身にも境界をつけ、任された範囲を超える操作をさせない
  • 作られたユーザーが、自分の境界ポリシーを削除できないようにする

こうしておくと、任された人が自分より広い権限を持つユーザーを作ってしまう事故を防げます。SCP がアカウント全体の枠なら、境界は1人1人に配る枠です。

後輩
境界を設定すると、IAM ポリシーより広い権限を持たせられたりしませんか?
先輩
それは逆だよ。境界は上限だから、つけると使える範囲は同じか狭くなるだけ。IAM ユーザーガイドにも、境界を追加すると実行できるアクションが制限される場合があり、逆に削除すると増える場合がある、と書かれているよ。

※この章の内容は IAM ユーザーガイド「IAM エンティティのアクセス許可境界」「ポリシーの評価論理」より


実効権限の決まり方:共通部分と明示的Deny

SCP・境界・アイデンティティベースのポリシーがすべてかかるとき、操作できるのは3つすべてが許可した範囲(共通部分)だけです。どれか1つにでも明示的な Deny があれば、その操作は拒否されます。

IAM ユーザーガイドは、SCP・アクセス許可の境界・アイデンティティベースのポリシーの影響を受けるリクエストについて、3つすべてのポリシータイプで許可されている場合にのみ許可されると説明しています。どれかで明示的に拒否すると、その許可は無効になります。

IAM ポリシー 境界 SCP 結果
許可 許可 許可 許可
許可 許可 記載なし(暗黙の拒否) 拒否
許可 記載なし(暗黙の拒否) 許可 拒否
記載なし 許可 許可 拒否(誰も許可を付与していない)
許可 許可 明示的に Deny 拒否

横にスクロールできます

問題で確かめる

この評価の順番は、AWS SAA の問題でもそのまま問われます。次の画像は、筆者が運営するエンジニア資格合格ラボ(SAA-C03 対応)の無料問題です。

エンジニア資格合格ラボの AWS SAA の問題画面。IAM ユーザー alice に s3:* を許可する IAM ポリシーが付いている一方、所属アカウントの OU に s3:DeleteObject を Deny する SCP が適用されているとき、DeleteObject の結果を4択で問う
エンジニア資格合格ラボの AWS SAA の無料問題(2026年10月13日時点の実画面)。IAM ポリシーで s3:* を許可していても、OU にかかる SCP の明示的な Deny があれば DeleteObject は拒否される、という評価の順番を問う1問。問題と解説は AI で作成しています。

正解は B(SCP の明示的な Deny により拒否される)です。ほかの選択肢は、この記事で見た性質の取り違えになっています。

  • A:「SCP は IAM ユーザー個人には影響しない」は誤り。SCP はメンバーアカウントのユーザーとロールに効きます。
  • C:「SCP は管理アカウントにのみ適用される」は逆。管理アカウントには効かず、メンバーアカウントに効きます。
  • D:「SCP は境界を設定したエンティティにだけ効く」は誤り。SCP と境界は別の仕組みで、SCP は境界の有無に関係なく効きます。

同じ問題は エンジニア資格合格ラボの SCP の明示的 Deny を問う演習問題 で、解説と誤答の理由まで読めます。ラボの問題は AI で作成し、検証したもので、有資格者の監修は入っていません。この1問を解けば合格できる、というものではありません。

例外:リソースベースのポリシーが絡むとき

同じアカウント内でリソースベースのポリシー(S3 のバケットポリシーなど)が許可を出している場合は、少し話が変わります。IAM ユーザーガイドによると、同じアカウント内で IAM ユーザーの ARN に許可を与えているリソースベースのポリシーは、アイデンティティベースのポリシーや境界の暗黙的な拒否では制限されません。一方、IAM ロールの ARN に許可を与えている場合は、境界やセッションポリシーの暗黙的な拒否で制限されます。

ここで制限されないのは、アイデンティティベースのポリシーと境界の暗黙の拒否だけです。SCP は、リソースベースのポリシーより先に評価されるため、メンバーアカウントのユーザー・ロールなら SCP で許可されていない操作はバケットポリシーがあっても拒否されます。どこかに明示的な Denyがあれば、やはり拒否されます。SAA の問題で「バケットポリシーで許可している」と書かれていたら、主体がユーザーかロールか、Deny がどこかにないかを確かめてください。

後輩
結局、どう判断すればいいんですか?
先輩
まず「どこかに明示的な Deny がないか」を探す。なければ「関係するすべての上限(SCP・境界)が許可しているか」と「誰かが許可を付与しているか」を見る。この順番で追えば、ほとんどの問題は解けるよ。

※この章の内容は IAM ユーザーガイド「IAM エンティティのアクセス許可境界」「ポリシーの評価論理」「AWS エンフォースメントコードロジックがリクエストを評価してアクセスを許可または拒否する方法」と AWS Organizations ユーザーガイド「サービスコントロールポリシー (SCP)」より


AWS SAAでの問われ方

SCP は、AWS SAA(SAA-C03)の試験ガイドに名指しで出てくる論点です。SAA-C03 の試験ガイドでは、コンテンツ分野1「セキュアなアーキテクチャの設計」(採点対象コンテンツの30%)のタスク1.1に、「複数の AWS アカウント [AWS Control Tower、サービスコントロールポリシー (SCP) など] のセキュリティ戦略を設計する」というスキルが載っています。

項目 AWS SAA(SAA-C03)
試験時間 130分
問題数 65問(うち採点対象外が15問)
合格スコア 720(100〜1,000の換算スコア)
受験料 150 USD

横にスクロールできます

問題の形としては、次のようなものが考えられます。

  • IAM ポリシーと SCP が食い違うとき、操作が許可されるか拒否されるか
  • 組織のすべてのアカウントで、特定のリージョンやサービスを使わせない方法
  • 委任した管理者が、広すぎる権限のロールを作れないようにする方法(境界の出番)

選択肢に「SCP で許可を付与する」「境界で権限を広げる」と書かれていたら、どちらも誤りです。上限を決める仕組みは、権限を渡さないと覚えておくと、ひっかけを見抜きやすくなります。

SAA の学習全体の進め方は AWS SAA の勉強法、受験料の詳細は AWS SAA の受験料 にまとめています。AWS 資格をどの順番で取るかは AWS 認定資格のロードマップ を参考にしてください。

※この章の試験情報は AWS 認定の公式ページ「AWS Certified Solutions Architect - Associate」と「試験ガイド (SAA-C03)」より


よくある質問(FAQ)

SCPとアクセス許可の境界(Permission Boundary)の違いを一言で言うと何ですか?

A. かける相手の単位が違います。SCPは AWS Organizations の機能で、組織のメンバーアカウント(やOU)にアタッチし、その中のIAMユーザーとロールが使える権限の上限を決めます。アクセス許可の境界は IAM の機能で、特定のIAMユーザーまたはロール1つにアタッチし、そのエンティティの権限の上限を決めます。どちらも権限を付与せず、上限を決めるだけという点は共通です。

SCPで許可していれば、IAMポリシーが無くても操作できますか?

A. できません。SCPは権限を付与しないからです。AWS Organizations のユーザーガイドは、IAMのアクセス許可ポリシーがアタッチされていないユーザーは、適用されるSCPですべてのサービスとアクションが許可されていても、どのサービスにもアクセスできないとしています。実際に操作するには、アイデンティティベースのポリシーなどで許可を付与する必要があります。

IAMポリシーで許可していても、SCPで拒否されていたらどうなりますか?

A. 拒否されます。IAMのポリシー評価論理では、アイデンティティベースのポリシー、SCP、RCPのどれかに明示的な拒否(Deny)があれば、許可を上書きします。たとえIAMポリシーで s3:* を許可していても、SCPで s3:DeleteObject を拒否していれば、その削除は実行できません。

SCPは管理アカウントにも効きますか?

A. 効きません。AWS Organizations のユーザーガイドは、SCPは管理アカウントのユーザーやロールには影響せず、組織内のメンバーアカウントにのみ影響するとしています。一方で、メンバーアカウントのルートユーザーには影響します。また、サービスにリンクされたロールはSCPで制限できません。

アクセス許可の境界はどんな場面で使いますか?

A. 代表的なのは、IAMユーザーやロールを作る作業をほかの人に任せるときです。作られるユーザーに境界をつけることを条件にしておくと、任された人が自分より広い権限を持つユーザーを作れなくなります。IAMユーザーガイドにも、境界を使ってアクセス許可の管理タスクを委任する例が載っています。

まとめ:SCPとアクセス許可の境界の違い

  • SCP は AWS Organizations の機能。 メンバーアカウントのユーザーとロール(ルートユーザーを含む)に上限をかける。管理アカウントとサービスにリンクされたロールには効かない。
  • アクセス許可の境界は IAM の機能。 つけたユーザー・ロールにだけ上限をかける。権限管理の委任でよく使う。
  • どちらも権限を付与しない。 実際の許可は IAM ポリシーなどで別に付ける。
  • 実効権限は共通部分。 すべての上限と許可を通った操作だけが使え、どこか1つの明示的な Deny で拒否される。
  • SAA-C03 では分野1のタスク1.1に SCP が名指しで載っている。 「SCP で許可を付与する」「境界で広げる」は誤りの選択肢と覚える。

出典

(いずれも2026年10月13日に確認)


免責:本記事は、2026年10月13日時点で AWS が公開しているドキュメントと試験情報にもとづく情報提供です。AWS のサービス仕様・試験内容・受験料は改定されることがあります。設計や受験の前に、必ず AWS の公式サイトで最新の情報を確認してください。本記事は合格や特定の成果を保証するものではありません。「AWS」および関連する名称は Amazon Web Services, Inc. またはその関連会社の商標です。