Stellar Engine は、依存関係の分離、セキュリティ コンテインメント、再現可能なデプロイメントを実装するために、レイヤード ステージで設計されています。リポジトリは 4 つの連続したステージに分割され、各ステージはランディング ゾーンの特定のドメインを担当します。
ステージ 0: ブートストラップ
ブートストラップ ステージでは、IaC パイプラインのルート オブ トラストとして機能し、デプロイ プロセス自体を管理するために必要な最小限のインフラストラクチャを初期化します。
このステージでは、初期デプロイ担当者のサービス アカウントに最小権限の原則を使用し、管理階層を厳密に分離します。
このステージの目的は、次のものを作成することです。
- 管理基盤
- リモート状態管理
- 初期セキュリティ境界
次のリソースが作成されます。
- コア請求先アカウントの接続と予算アラート
- デプロイ サービス アカウントをホストする専用の管理 IaC プロジェクト
- オブジェクト バージョニングが有効になっている Terraform リモート状態用のロックダウンされた Cloud Storage バケット
- 中央の Cloud Logging バケットと統合されたグローバル監査ログシンク
- セキュリティ、技術、請求に関する通知が承認済みの機関ドメインにのみ転送されるようにするための重要な連絡先の構成
ステージ 1: リソース管理
リソース管理ステージでは、組織階層、アクセス境界、テナント分離が作成されます。
このステージの目的は、特定の規制フレームワークに必要なフォルダ、プロジェクト、カスタム Identity and Access Management ロールを定義することです。
このステージでは、異なる管理ドメイン間での職務分離の原則と厳格なリソース分離が使用されます。
次のリソースが作成されます。
- コンプライアンスに沿ったフォルダ階層(
Prod、Non-Prod、Security、Sharedなど) - 環境と機能で分離された専用テナント プロジェクト
- 最小権限を適用するためのきめ細かい IAM ロール バインディングとカスタムロール
ステージ 2: ネットワーキング
ネットワーキング ステージでは、通信経路、境界セキュリティ制御、ハイブリッド接続がプロビジョニングされます。Stellar Engine は、FedRAMP High や IL5 NGFW など、複数のネットワーキング モジュールをサポートしています。
このステージの目的は、安全な接続パターン、パケット フィルタリング、上り(内向き)または下り(外向き)の制御を確立することです。
このステージでは、厳格な境界保護、一元化されたトラフィック検査、ディープ パケット フィルタリングに重点を置きます。このステージを実行したら、SIEM ソリューションを統合してリソースをモニタリングします。SIEM を個別のGoogle Cloud プロジェクトと、データ収集元とは別の VPC にセグメント化します。
次のリソースが作成されます。
- 公開を最小限に抑えるハブアンドスポークの 共有 VPC トポロジまたは Network Connectivity Center アーキテクチャ
- ハイブリッド ワークロード用の VPC ピアリング、Cloud VPN、または Dedicated Interconnect 接続
- 専用の検査 VPC で Palo Alto VM-Series 次世代ファイアウォール(NGFW)を使用した標準の VPC ルーティングまたは高度なサービス チェーン(DoD IL5 エンクレーブに必要)
ステージ 3: セキュリティと監査
セキュリティと監査のステージでは、暗号化の適用、最終的なロックダウン、サービスの責任が適用されます。
このステージの目的は、データ保護、監査のトレーサビリティ、暗号の主権を強化することです。
このステージでは、保存データの主権、使用中のデータの主権、データの厳格な暗号化分離に重点を置きます。
次のリソースが作成されます。
- すべてのストレージ サービスの顧客管理の暗号鍵(CMEK)の要件を満たす Cloud Key Management Service(Cloud KMS)のキーリングと鍵
- デプロイ時に使用されるサービス アカウントに適用されるセキュリティ ロックダウン スクリプトと組織ポリシー サービスの制約
- 監査ログの取り込みに失敗した場合のデッドレター トピックとアラート
デプロイの原則
次の表に、Stellar Engine がデプロイ プロセスで使用する原則を示します。
| 原則 | 説明 |
|---|---|
| 状態の分離 |
Terraform 状態ファイルはステージごとに厳密に分離されます。たとえば、ステージ 2 のバグや状態の破損は、ステージ 0 またはステージ 1 のコア状態や認証情報にアクセスしたり、破損させたりすることはできません。 |
| モジュールのバージョン固定 |
ブループリントは、固定された Git タグまたは commit ハッシュを使用して、モジュラー依存関係を参照します。固定すると、モジュール レジストリの上流の変更が、明示的なレビューなしにターゲット環境に自動的に導入されるのを防ぐことができます。 |
| 影響の封じ込め |
更新はステージ ディレクトリ内でローカルに実行されます。影響の封じ込めにより、ステージ 2 のファイアウォール ルールのコード変更がステージ 3 の Cloud KMS 鍵に影響しないようにします。 |
| 障害の封じ込め |
Cloud Storage 状態バケットは、オブジェクト バージョニングが有効になるように構成されています。コードの変更や手動による状態の編集が原因で状態ファイルが破損した場合、ファイルはすぐに以前のバージョンに復元できます。 |