Contents
1. 設計フレームワーク全体像
| 本柱 | 主な AWS サービス | 目的・ポイント |
|---|---|---|
| 境界 | Organizations(OU・SCP) | アカウント間の権限境界を明確化し、最小特権を実現 |
| ID 管理 | IAM Identity Center (旧 SSO) | シングルサインオン+MFA で全ユーザーを統一管理 |
| ガバナンス | Control Tower の Guardrails | ポリシーベースの自動検査と継続的コンプライアンス |
| 監査・可視化 | CloudTrail、Config、GuardDuty、Security Hub | すべての操作・構成変更を記録し、脅威検知と統合レポートを提供 |
ポイント
- 本柱は相互に排他的ではなく、横断的に適用することで一貫したセキュリティ基盤 が構築できます。
- 各サービスの公式ガイドラインは以下のリンクから参照してください。
| 参考ドキュメント |
|---|
| AWS Organizations のベストプラクティス |
| IAM Identity Center (SSO) の設定ガイド |
| Control Tower Guardrails とは |
| CloudTrail マルチリージョンの有効化 |
2. OU と SCP の設計指針
2‑1. 階層構造のベストプラクティス
| 階層 | 推奨用途 |
|---|---|
| Root | すべてのアカウントに共通する必須ポリシー(例:ルート MFA)を配置 |
| Production / Staging / Development | 環境ごとの分離で誤操作リスクを低減 |
| Security・Networking・Workloads (各環境下) | 機能別に細分化し、ポリシーの粒度と可視性を確保 |
実装例(テキストツリー)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Root ├─ Production │ ├─ Security │ ├─ Networking │ └─ Workloads ├─ Staging │ ├─ Security │ ├─ Networking │ └─ Workloads └─ Development ├─ Security ├─ Networking └─ Workloads |
2‑2. SCP(Service Control Policy)の運用モデル
| カテゴリ | 適用範囲 | 主なポリシー例 |
|---|---|---|
| 必須 (Mandatory) | 全 OU(Root にアタッチ) | DenyRootAccountDeletion、EnforceMFAForRoot、RestrictRegionAccess |
| 推奨 (Recommended) | 環境別 OU(Production など) | DenyUnencryptedS3Buckets、RequireGuardDutyEnabled |
ポリシー作成手順(概要)
- JSON 定義を作成 – AWS Organizations コンソールの「ポリシー」→「Create policy」。
- タグ付与でカテゴリ分け –
Purpose=Mandatory/Purpose=Recommended。 - OU へアタッチ – 必須は Root、推奨は対象 OU に段階的に適用。
- 例外管理 – 特定アカウントが例外を必要とする場合は SCP の例外(Allow) を別途作成し、最小限のリストで許可。
公式ドキュメント: SCP の概要とベストプラクティス
3. Control Tower と Guardrails(ガードレール)
3‑1. Landing Zone の構築フロー
| ステップ | 内容 |
|---|---|
| ① Enable | Control Tower コンソールで「Landing Zone を有効化」し、デフォルトのログアーカイブ S3 バケットと Config ルールを自動作成。 |
| ② Account Factory 設定 | テンプレート(VPC、IAM ロール等)に基づき新規 AWS アカウントを自動プロビジョニング。 |
| ③ Guardrails 選択 | 必須 Guardrail は自動適用、推奨 Guardrail はチェックリストから選択し OU にアタッチ。 |
| ④ デプロイ確認 | CloudFormation スタックのステータスと S3 バケット作成をコンソールで検証。 |
3‑2. 必須 Guardrails(2024 年版)
| Guardrail 名 (日本語) | 内容 | 自動適用 |
|---|---|---|
| S3EncryptionEnabled | 新規 S3 バケットにサーバー側暗号化を必須化 | ✓ |
| RootAccountMFAEnabled | ルートアカウントに MFA が未設定の場合は操作をブロック | ✓ |
| IAMPasswordPolicy | パスワード長 ≥ 14、特殊文字必須などのポリシーを強制 | ✓ |
| EC2InstanceNoPublicIP | パブリック IP を持つ EC2 起動を禁止 | ✓ |
Guardrails の詳細は公式ページで随時更新されるため、最新情報は Control Tower Guardrails リファレンス を参照してください。
3‑3. 推奨 Guardrails とカスタム Guardrail の作り方
| 推奨 Guardrail | 内容 |
|---|---|
| EBSEncryptionEnabled | EBS ボリュームの暗号化を推奨(例外はタグ ebs:allow-unencrypted=true) |
| VPCFlowLogsEnabled | VPC フローログの有効化。カスタム Guardrail として AWS Config ルール (vpc-flow-logs-enabled) を登録可能 |
カスタム Guardrail の実装手順(概要)
- AWS Config ルール作成 –
aws configservice put-config-ruleコマンドで評価ロジックを定義。 - Control Tower に登録 – コンソールの「Guardrails」→「Custom Guardrails」で ARN を入力し、対象 OU にアタッチ。
- 違反時の通知設定 – SNS トピックと Lambda 関数で自動リマインダーを実装。
4. IAM Identity Center と MFA の統合
4‑1. SCIM による自動プロビジョニング(2024 年リリース)
| 項目 | 内容 |
|---|---|
| 対応 IdP | Azure AD、Okta、OneLogin など SAML + SCIM が利用可能。 |
| 手順 | 1) IAM Identity Center コンソールで「外部 IdP の接続」→ SAML メタデータを登録 2) 「SCIM 設定」からエンドポイント URL とトークンを取得 3) IdP 側に SCIM 接続情報を入力し、属性マッピング(例: userName → email)を設定 |
| メリット | ユーザー追加・削除が即時に反映され、手作業による権限ミスが大幅に削減。 |
4‑2. MFA を全ユーザーに必須化する条件付きアクセスポリシー
- ポリシー作成 – IAM Identity Center → 「アクセス権限」→「新規ポリシー」
json
{
"Version": "2023-10-01",
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {"BoolIfExists": {"aws:MultiFactorAuthPresent": "false"}}
}
]
} - 全アプリケーションに適用 – 作成したポリシーを「デフォルトアクセス権限」に割り当て。
- 未設定ユーザーへの自動通知 – CloudWatch Events で
MFAEnabled = falseを検知し、SNS + Lambda(リマインダー)へ転送。
詳細は IAM Identity Center の MFA 設定 を参照してください。
5. ログ・監視・コスト管理
5‑1. 必須有効化サービス一覧
| サービス | 有効化対象 | 主な設定ポイント |
|---|---|---|
| AWS CloudTrail(マルチリージョン) | 全アカウント | S3 バケットは暗号化、バージョニング、有効期限ポリシーを付与 |
| AWS Config | 全アカウント | すべてのリージョンで有効化し、s3-bucket-public-read-prohibited など標準ルールを追加 |
| Amazon GuardDuty | 全アカウント | マネージドマルチアカウント統合(管理者アカウントで集約) |
| AWS Security Hub | 全アカウント | CIS AWS Foundations Benchmark、PCI DSS の標準チェックを有効化 |
| IAM Access Analyzer | 全アカウント | クロスアカウントアクセス分析結果を自動的に Security Hub に送信 |
各サービスのセットアップ手順は公式ドキュメントを参照。
- CloudTrail: https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html
- Config: https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/how-do-i-set-up-config.html
- GuardDuty: https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_enable.html
5‑2. ログ集約パイプライン(S3 → CloudWatch Logs Insights → OpenSearch)
- S3 バケット
aws-security-logs-<account-id>に CloudTrail と Config のログを保存。 - Lambda (Python 3.11) が S3 イベントでトリガーされ、JSON を整形して CloudWatch Logs へ送信。
- OpenSearch Service(t3.medium.search)にデータストリームを作成し、Kibana ダッシュボードで可視化。
- 自動レポート – CloudWatch Logs Insights のクエリ結果を週次で PDF 化し、SNS 経由でステークホルダーへ配信。
詳細は Amazon OpenSearch Service のログ分析ガイド を参照してください。
5‑3. タグ付けと Budgets によるコスト監視
| タグキー | 推奨値例 | 用途 |
|---|---|---|
Environment |
Production / Staging / Development | コスト集計・ポリシー適用範囲の区分 |
Owner |
team@example.com | 責任者通知先 |
CostCenter |
12345 | 財務部門への請求割り当て |
SecurityLevel |
High / Medium / Low | Guardrails の自動適用判定 |
Budgets 設定手順(概要)
- AWS Budgets コンソールで「コスト予算」作成。
- 「フィルタ」に上記タグを組み合わせ、閾値(例: Production 10 % 超過)を設定。
- SNS 通知と Lambda を紐付け、超過時に未承認リソースの自動停止またはタグ修正を実行。
公式ガイド: https://docs.aws.amazon.com/ja_jp/cost-management/latest/userguide/budgets-create.html
6. 実装ロードマップと最終チェックリスト
6‑1. ロードマップ(5 フェーズ)
| フェーズ | 主な作業 | 推定期間 |
|---|---|---|
| ① 設計 | OU 階層・SCP テンプレート策定、Guardrails 要件洗い出し | 1 週間 |
| ② 初期構築 | Control Tower 有効化 → Landing Zone デプロイ | 2 日 |
| ③ ID 管理 | IAM Identity Center と外部 IdP の SCIM 連携、MFA 強制設定 | 3 日 |
| ④ サービス統合 | CloudTrail・Config・GuardDuty・Security Hub 有効化、ログパイプライン構築 | 1 週間 |
| ⑤ 運用開始 | タグ付け、Budgets アラート設定、ガードレールの定期レビュー | 継続的 |
6‑2. 完了チェックリスト(簡易版)
- [ ] OU と SCP:全 OU に必須 SCP がアタッチ済みか
- [ ] Control Tower Guardrails:必須 Guardrail が 100 % 有効化されているか
- [ ] IAM Identity Center:SCIM 自動プロビジョニングが稼働し、外部 IdP と同期できているか
- [ ] MFA:全ユーザーに対して MFA が必須化され、条件付きポリシーでブロックが機能しているか
- [ ] CloudTrail:マルチリージョン設定・暗号化・S3 アーカイブが完了しているか
- [ ] ログ集約:CloudWatch Logs Insights → OpenSearch のパイプラインが正常にデータを受信し、ダッシュボードが作成済みか
- [ ] Budgets & タグ:タグ付けポリシーと予算アラートが設定され、テスト通知が届くことを確認したか
7. まとめ
本稿で提示した 4 本柱モデル+具体的な実装手順 は、AWS が公式に推奨するベストプラクティスに基づいています。
各サービスの公式ドキュメントへのリンクを添付しているため、導入時に「設定が正しいか?」と疑問になった場合は必ず参照してください。
次のアクション
1. 本ロードマップをプロジェクト計画書に落とし込み、ステークホルダーへ共有。
2. Pilot アカウントで OU・SCP・Guardrails の最小構成を検証し、問題点を洗い出す。
3. 本番環境への段階的ロールアウトを開始し、定期的に ガードレールレビュー と コスト監視 を実施。
これらのプロセスを踏むことで、「セキュアかつガバナンスが効いた」マルチアカウント環境 が安定して運用できるようになります。ぜひ実務に活用してください。