この記事の概要 - サービスの大枠の理解
アカウント制御サービスの構造、内包するものを大枠で捉えるこのようになる。
[Control Tower] > [Organizations(scpを内包)] > [IAM]
✅ AWS 権限・ガバナンス構造:階層・内包関係の表
| レベル | サービス/要素名 | 内包関係 | 主な役割・説明 |
|---|---|---|---|
| ① | AWS Control Tower | 最上位 | 複数アカウントにおける初期設定、監査、SCP適用などを自動化。ベストプラクティスに基づく統合ガバナンスレイヤー。 |
| ├─ AWS Organizations | Control Tower に内包 | 複数アカウントを統合管理。OU(組織単位)構成とSCPの適用が可能。 | |
| │ └─ SCP(Service Control Policy) | Organizations に内包 | OUやアカウント単位で「最大の許可範囲(上限)」を定義。IAMよりも上位レベルで制限をかける。 | |
| └─ AWS Config / CloudTrail / Log Archive | Control Tower に内包 | 証跡記録や監査、ログ管理の自動化設定。セキュリティとコンプライアンス確保に必須。 | |
| ② | IAM(Identity and Access Management) | Organizationsとは別枠(アカウント内) | 各アカウント内での細かなアクセス制御(ユーザー、ロールなど)を担当。 |
| ├─ IAMユーザー | IAM に内包 | 実際の人間の操作ユーザー。個別にアクセス権限を割り当て可能。 | |
| ├─ IAMグループ | IAM に内包 | ユーザーをグループ化し、まとめてポリシーを適用できる。 | |
| ├─ IAMロール | IAM に内包 | 一時的または部分的に他のエンティティに権限を付与(例:Lambda, 外部委任など) | |
| └─ IAMポリシー | IAM に内包 | 「誰が」「何を」「どう操作できるか」をJSONで定義し、ユーザー・ロール・グループに付与。 |
📌 ポイント補足
- IAMは「各アカウント内部」でのアクセス制御を担い、**SCPは「IAMの許可範囲の最大上限を決める外部のフィルタ」**という関係。
- SCPだけではアクセスは許可されず、IAMと組み合わせて初めてアクセスが成立します。
- Control TowerはOrganizations+SCP+監査設定(Configなど)を一括で導入・統制できるフレームワークです。
🗂 対応関係まとめ
| レイヤー | 役割・管理範囲 | 制御対象の単位 | 主な構成要素 |
|---|---|---|---|
| Control Tower | AWS組織全体の構築・統制の自動化 | 複数OU、アカウント | Organizations, SCP, Config等 |
| Organizations + SCP | アカウント間のガバナンス設定(制限) | アカウント or OU | SCP(操作の上限制御) |
| IAM(ローカル) | 各アカウント内のユーザー/サービス権限制御 | IAMユーザー、IAMロール | ポリシー、ユーザー、グループ |
🎯 ユースケース別 利用判断
| 利用場面・目的 | 使うべきサービス | 理由 |
|---|---|---|
| 全社で統一的なAWS環境を構築したい | Control Tower | ベストプラクティス構成を自動化できるため |
| 子会社や部署ごとにAWSアカウントを分けて管理したい | Organizations | アカウント統合・請求まとめなどが可能 |
| 特定サービスを一切使わせたくない(例:EC2禁止) | SCP | IAMよりも上位で制御できる |
| Lambda関数にS3への書き込み権限を与えたい | IAMロール + ポリシー | サービス単位の細かな制御が可能 |
| 開発者ごとに異なる権限を与えたい | IAMユーザー + グループ + ポリシー | 個別管理・グルーピング可能 |
🧠 注意ポイント
- SCPはあくまで「上限の制御」 → IAMで許可されていても、SCPで拒否されていれば実行不可。
- Control Towerは、SCPを自動適用する構成テンプレート付きOrganizations管理ツール。
- IAMロールは一時的にも、長期固定的にも使われる(例:Lambdaに恒久的なS3書き込み権限など)。
IAMの主要構成要素
誰が何をする制御するのかをまとめる
| 種類 | 主な用途・説明 | 制御対象(誰が) | 制御対象(何を) | 備考 |
|---|---|---|---|---|
| IAMユーザー | 個人やアプリケーションなど、長期的な認証情報(アクセスキーなど)を必要とするエンティティ。 | IAMユーザー自身 | 各種AWSリソースへのアクセス | 明示的にアクセスキーを発行できる |
| IAMグループ | IAMユーザーをまとめて管理するための単位。グループにポリシーを付与することで一括管理可能。 | 所属するIAMユーザー | グループに紐付けた操作権限 | グループに直接アクセス権はない(ユーザーに伝播) |
| IAMロール | 一時的に権限を委任したいときに利用する仕組み。ユーザーやサービスが「一時的に引き受ける」役割。 | 引き受けたIAMユーザー / AWSサービス(例:Lambda) | ポリシーで定義されたリソース操作 | 信頼ポリシーで「誰がこのロールを引き受けられるか」を制御 |
| IAMポリシー | JSON形式の定義で、どのアクションをどのリソースに対して許可/拒否するかを定義。 | IAMユーザー、グループ、ロール | 操作対象のリソース(S3, EC2など) | 明示的にDenyすればたとえAllowがあっても拒否される |