コンテンツにスキップ

メンテナンスモード

仕組みの概要

is_maintenance_mode = true にすると以下の流れでメンテナンスページが表示されます。

  1. Cloud Armor がすべてのリクエストを deny(403) で拒否
  2. URL Map の default_custom_error_response_policy が 403 を受け取り、GCS 上の maintenance.html を返却(ステータスは 503 に変換)
  3. developer_ip_ranges に登録したIPはCloud Armorで優先的に許可され、メンテナンス中もアクセス可能

有効化・無効化の手順

terraform.tfvars を編集して terraform apply を実行します。

有効化

is_maintenance_mode       = true
maintenance_scheduled_end = "2026年04月24日10時00分"  # 空文字の場合は完了予定日時を非表示

無効化

is_maintenance_mode = false

組織ポリシーの上書き

メンテナンスバケットへの allUsers 公開読み取り権限を付与するために、以下の組織ポリシーをプロジェクトレベルで上書きする必要があります。

ポリシー 理由
storage.publicAccessPrevention GCSバケットへのパブリックアクセスを組織全体で禁止しているため
iam.allowedPolicyMemberDomains allUsers への権限付与を組織全体で禁止しているため

GCPコンソール → IAMと管理 → 組織のポリシー から、対象プロジェクトに対して上書き設定を行ってください。


変数一覧

変数名 デフォルト 説明
is_maintenance_mode bool false メンテナンスモードのON/OFF
maintenance_scheduled_end string "" 完了予定日時。空文字の場合はページに表示しない
maintenance_html string デフォルトHTML メンテナンスページのHTMLコンテンツ
developer_ip_ranges list(string) [] 開発・運用者のIPアドレス(CIDR表記)。メンテナンス中のバイパスと通常時の許可に使用