Skip to content

Organizations 中央集中型 root アクセス管理 設計書

1. 概要

1.1 本ドキュメントの位置付け

本ドキュメントは、AWS Organizations の中央集中型 root アクセス管理の導入に伴う設計書である。 方針決定に至る比較検討は 比較検討資料 を参照。 運用手順は 運用手順書 を参照。

1.2 背景

Security Hub CSPM で fd-sys / production の root MFA 未設定が検知された(IAM.6 / IAM.9)。 AWS ベストプラクティスに従い、メンバーアカウントは root 資格情報を削除、マネジメントアカウントは MFA を設定する方針とした。

1.3 参照ドキュメント


2. 構成

2.1 アカウント構成

役割アカウントID
マネジメントアカウントawscloud.jp43703480710002
委任管理者(IAM)fd-security-tooling860801568046
メンバーアカウント全 ACTIVE アカウント(15アカウント)

Note: 中央集中型 root アクセス管理を有効化した後に新規作成されるメンバーアカウントは、デフォルトで root 資格情報が存在しない状態で作成される。追加の対応は不要。

2.2 メンバーアカウントの root アクセス

通常時:
  security-tooling → sts:AssumeRoot → 短期セッション(最大15分)
    → S3/SQS ポリシー修正等の特権タスクを実行

root ログインが必要な場合:
  security-tooling → Allow password recovery
    → root メールアドレス宛にパスワードリセット
    → root ログイン → 作業 → root 資格情報を再削除

2.3 マネジメントアカウントのアクセス

マネジメントアカウントの root ユーザーは Megazone(代理店)が管理しており、自社では直接利用しない。 自社では Megazone が払い出した特権 IAM ユーザー mz-fastdoctor-admin を使用してマネジメントアカウントを操作する。

mz-fastdoctor-admin ログイン時:
  パスワード + MFA(GCP Secret Manager からシード取得 → oathtool で OTP 生成)

3. マネジメントアカウント MFA 設計

3.1 前提

マネジメントアカウントの root ユーザーは Megazone(代理店)が管理している。 自社では Megazone が払い出した特権 IAM ユーザー mz-fastdoctor-admin を使用しており、このユーザーに MFA を設定する。

3.2 方式

GCP Secret Manager に TOTP シードを保管し、oathtool で OTP を生成する方式を採用。

採用理由と代替案の比較は 比較検討資料 を参照。

3.3 AWS ベストプラクティスからの逸脱と緩和策

ベストプラクティス逸脱内容緩和策
ハードウェア MFA仮想 MFA(TOTP)を使用GCP IAM でアクセス制御 + Cloud Audit Logs で監査
複数 MFA デバイス登録1台のみ登録メール+電話による代替認証フローを維持
Two-person rule不採用(単独操作可能)ログイン検知・通知で補完(今後実装検討)

3.4 ログイン検知・通知(今後実装検討)

マネジメントアカウントへのログインが発生した場合に即時通知し、事後監査を行う仕組みを今後実装予定。

検知方法内容状態
GuardDutyPolicy:IAMUser/RootCredentialUsage で root 使用を検知検討中
CloudWatch Eventsroot ログインイベントを検知して SNS / Slack 通知検討中

事後報告フロー(実装後):

  • ログイン発生時、Slack 通知を受けた担当者は 24 時間以内にログイン理由を Slack に報告する
  • 四半期ごとに監査ログをレビューする

3.5 MFA リカバリフロー

状況復旧方法担当
GCP 認証切れgcloud auth login を再実行SRE
GCP Secret Manager にアクセスできない(GCP 障害等)Megazone に連絡し、mz-fastdoctor-admin の MFA リセットを依頼SRE + Megazone

Note: MFA デバイスは 1台のみ 登録する。


4. GCP Secret Manager 設計

4.1 プロジェクト

MFA シード管理専用の GCP プロジェクトを使用する。

項目
プロジェクト IDfd-secrets-management
用途MFA シード管理(将来的に他のシークレットも格納可能)

4.2 アクセス制御

ロール対象用途
roles/ownerfdt-sre@fastdoctor.jpプロジェクト管理
roles/secretmanager.secretAccessorSRE チームの必要メンバーシークレット読み取り

権限管理基準:

  • 付与対象: SRE チームメンバー
  • 付与・削除: fdt-sre@fastdoctor.jp(SRE メーリングリスト)に追加されれば自動的に権限が付与される。退職・異動時はメーリングリストから削除されるため即時権限削除となる

4.3 監査ログ

設定
管理読み取り有効
データ書き込み有効

Cloud Audit Logs でシークレットへのアクセスを記録。デフォルトで有効。

4.4 VPC Service Controls

不採用。理由: SRE メンバーがリモートで緊急時に root ログインする際に IP 制限でアクセスできなくなるリスクがある。GCP IAM + Cloud Audit Logs で十分なセキュリティを確保する。


5. ロールバック計画

5.1 中央集中型 root アクセス管理の無効化

必要に応じて機能を無効化し、メンバーアカウントの root 資格情報を復旧できる。

bash
# 1. メンバーアカウントの root パスワードリカバリを許可
# IAM コンソール → Root access management → 対象アカウント → Allow password recovery

# 2. 中央集中型管理を無効化(必要な場合)
aws iam disable-organizations-root-credentials-management
aws iam disable-organizations-root-sessions

5.2 mz-fastdoctor-admin MFA のリセット

GCP Secret Manager のシードが使用不可になった場合:

  1. Megazone に連絡し、mz-fastdoctor-admin の MFA リセットを依頼
  2. MFA なしでログインし、新しい MFA デバイスを設定
  3. 新しいシードを GCP Secret Manager に保存

6. 関連 SCP

SCP内容変更要否
root アクセスキー作成禁止iam:CreateAccessKey を root に対して Deny変更不要(中央集中型管理と共存可能)

Note: 中央集中型管理の有効化により、メンバーアカウントの root 資格情報は削除済みのため、SCP による root 操作制限は引き続き有効だが、実質的に root ログイン自体が不可。