メンテナンスモード¶
仕組みの概要¶
is_maintenance_mode = true にすると以下の流れでメンテナンスページが表示されます。
- Cloud Armor がすべてのリクエストを
deny(403)で拒否 - URL Map の
default_custom_error_response_policyが 403 を受け取り、GCS 上のmaintenance.htmlを返却(ステータスは 503 に変換) developer_ip_rangesに登録したIPはCloud Armorで優先的に許可され、メンテナンス中もアクセス可能
有効化・無効化の手順¶
terraform.tfvars を編集して terraform apply を実行します。
有効化¶
無効化¶
組織ポリシーの上書き¶
メンテナンスバケットへの 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表記)。メンテナンス中のバイパスと通常時の許可に使用 |