The goal of this document is to recommend HashiCorp Vault deploymentpractices.Vault リファレンス・アーキテクチャの目的は、HashiCorp Vaultの展開方法を推奨することです。 このリファレンス・アーキテクチャは、一般的なアーキテクチャを伝えるものであり、各実装の特定のニーズに対応するために適応させる必要があります。
このガイドでは、次のトピックを扱います。
- 設計概要
- ネットワーク接続性
- 障害許容度
- 推奨アーキテクチャ
- 単一地域展開(エンタープライズ)
- 複数地域対応(マルチスレッド)
推奨アーキテクチャ1188 展開(エンタープライズ)
- 一つの可用性ゾーンにVaultを展開(すべて)
- 二つの可用性ゾーンにVaultを展開(OSS)
- Vaultを展開する(エンタープライズ)
- Vaultを配置する(すべての可用性ゾーンの)
- Vaultの配置(可用性ゾーンの)
- Vault を 3 つの可用性ゾーンに展開(OSS)
Vaultの配置を配置する(すべての可用性ゾーンの)
- Vault レプリケーション(エンタープライズのみ)
- 展開のシステム要件
- ハードウエア 考慮事項
- 負荷分散
- その他の参考資料
- “用語集
- “Vault Cluster
- “Consul storage backend cluster
- “可用性ゾーン
- “Region
- “設計概要
- 「ネットワーク接続の詳細
- 「代替ネットワーク構成」
- 「Failure Tolerance
- “Availability Zone
- “リージョン
- 「推奨アーキテクチャ」
- “Single Region Deployment (Enterprise)
- 「複数リージョン展開(エンタープライズ)」
- 「参考図 リージョン障害に対する回復力」
- “参照図 クラスタ障害に対する耐障害性
- “ベストケースアーキテクチャ
- “Vault in one Availability Zone (all)
- 「2つの可用性ゾーンでの Vault 展開(エンタープライズ)
- “Deployment of Vault in three Availability Zones (OSS)
- “Vault Replication (Enterprise Only)
- “災害復旧レプリケーション
- 「破損または妨害によるディザスタ リカバリ」
- “Replication Notes
- 「HSM 統合に関する考慮事項
- 「デプロイメントシステム要件
- “Sizing for Vault Servers
- “コンシュルサーバのサイジング
- “Hardware Considerations
- 「その他の考慮事項
- “負荷分散
- “Consul インターフェイスを使用した負荷分散
- “外部ロードバランサーを使用した負荷分散
- “クライアント IP アドレス処理
- “その他の参考資料
- “次のステップ
“用語集
“Vault Cluster
A Vault cluster is set of Vault processes that together run a Vault service.” (訳注: Vaultのクラスタは、Vaultサービスを実行するVaultプロセスのセット)。これらのVaultプロセスは、物理サーバー、仮想サーバー、またはコンテナーで実行できます。
“Consul storage backend cluster
HashiCorp は、Vault のストレージバックエンドとして Consul を推奨およびサポートします。 Consulクラスタは、Consulサービスを実行するConsulサーバープロセスの集合体です。 これらのConsulプロセスは、物理サーバー、仮想サーバー、またはコンテナーで実行できます。
“可用性ゾーン
Vaultクラスターの一部またはすべてをホストするロケーションレベルの単一障害ドメイン。 アベイラビリティ・ゾーン間のレイテンシは、< 8ms である必要があります。 1つのVaultクラスタは、複数のアベイラビリティゾーンにまたがることができます。
この文脈でのアベイラビリティ・ゾーンの例は次のとおりです。
- 分離されたデータセンター
- 他のすべての手段(電力、ネットワークなど)で他のケージから分離されているデータセンター内の分離ケージ
- AWS, Azure または GCP におけるアベイラビリティゾーン
“Region
1 つまたは複数のアベイラビリティゾーンを地理的に分離して集めたものです。 リージョンは、1つまたは複数のVaultクラスタをホストすることになります。 Vaultアーキテクチャでは、リージョン間の最大レイテンシー要件は定義されていません。
“設計概要
この設計は、柔軟性と弾力性を提供するため、本番環境に推奨されるアーキテクチャである。
Consul サーバーが Vault サーバーから分離されていること、および Consul クラスターが Vault のストレージバックエンドとしてのみ使用され、予測できないリソース使用をもたらす可能性のある他の Consul に焦点を当てた機能 (サービスのセグメント化やサービス検出など) には使用されないことは、主要アーキテクチャーの推奨事項となっています。 VaultとConsulを分離することで、CPU、メモリ、ディスクの面で適切なサイズのシステムをそれぞれ持つことができます。 Consulはメモリを大量に消費するアプリケーションであるため、独自のリソースに分離することで、リソースの競合や枯渇を防ぐことができます。 また、VaultストレージバックエンドとしてConsulクラスタを使用することは、Vaultストレージバックエンドの機能を向上させるために必要な場合にのみConsulクラスタをアップグレードすることができるため、有利です。 詳細については、VaultDeployment Guide を参照してください。 Vaultストレージ用のConsulクラスタは、サービス検出用のConsulクラスタとは別に使用することができるため、他のConsul機能と競合しないように、ストレージConsulプロセスをデフォルト以外のポートで実行することが推奨されます。 Consulストレージクラスタを7xxx
ポートで実行するように設定し、Vault構成でこれをストレージポートとして使用すると、これを達成することができます。 また、ConsulはTLSを使用して実行することをお勧めします。
暗号化モードでConsulを実行する詳細については、オンラインドキュメントを参照してください。
「ネットワーク接続の詳細
以下の表は、Vaultクラスタノードのネットワークトラフィック要件の概要です。
ソース | デスティネーション | ポート | プロトコル | 方向 | 目的 |
---|---|---|---|---|---|
Consul クライアントとサーバー | Consul Server | 7300 | TCP | incoming | Server RPC |
Consul clients | Consul クライアント7301 | TCP および UDP | bidirectional | Lan ゴシップ通信 | |
Vault クライアント | Vault サーバ | 8200 | TCP | incoming | Vault API |
Vault servers | 8201 | TCP | bidirectional | Vault レプリケーション・トラフィックです。 リクエスト転送 |
Consul プロセスは、設計概要で説明したようにデフォルト以外のポート (7xxx
) で実行されていることに注意してください。
「代替ネットワーク構成」
Vault と Consul Cluster 間の通信は、いくつかの異なる方法で構成することができます。
- 標準の名前付きサブシステムで解決可能なホスト IP アドレスまたはホスト名を使用する方法
- ロードバランサの IP アドレスまたはホスト名を使用する方法
- 付属の Consul クラスターを使用する方法
- 標準の名前付きサブシステムで解決可能なホスト名でホスト名を使用する方法
- 付属の Consul クラスターを使用する方法 IP を使用する方法 IP を使用する方法 IP を使用する方法
- 別の Consul サービス検出クラスタの使用 Vault エンドポイントを解決するためのサービス検出としての DNS
これらのオプションはすべて、Vault 導入ガイドで詳しく説明されています。
「Failure Tolerance
Vault は、さまざまな確率の障害シナリオを処理するように設計されています。 Vaultクラスタを展開する場合、必要とする障害許容度を考慮し、設計する必要があります。 OSS Vaultでは、推奨されるインスタンスの数は、それ以上では価値が限定されるため、クラスタ内の3台です。 Vault Enterpriseでも、推奨されるクラスタ数は3台ですが、読み取り専用のワークロードを支援するパフォーマンススタンドバイであれば、それ以上を使用することができます。 Consulクラスタは、1~7インスタンスです。リーダーシップの選挙が常に解決されるように、これは奇数であるべきです。 Consulクラスタは、Vaultクラスタ専用のバックエンドストレージ機能を実行するために、少なくとも5つのインスタンスにすることをお勧めします。
Consulリーダ選挙プロセスの詳細については、オンラインドキュメントを参照してください。 単一のHA Vaultクラスタでは、すべてのノードが同じストレージバックエンドを共有しているため、データを共有することができます。 Vaultは、Vaultサーバーの1つがデータストア内のロックを取得し、アクティブなVaultノードとなり、書き込み権限を持つことでこれを実現します。 リーダーを失った場合は、別のVaultノードがシームレスにリーダーとしてその地位を引き継ぎます。 n-2の冗長性(障害領域内の2つのオブジェクトの損失が許容される)を達成するために、Vaultクラスタの理想的なサイズは3です。Consulはコンセンサスとgossipプロトコルによりレプリケーションとリーダーシップを実現します。 これらのプロトコルでは、リーダーはコンセンサスによって選出されるため、アクティブなサーバーのアクオラムは常に存在しなければなりません。 詳細はConsulInternalsを参照してください。
“Availability Zone
クラウド環境における典型的な分散方法は、AWSリージョンなどの広帯域、低遅延ネットワーク内の別々のAZにConsul/Vaultノードを分散することですが、これはデータセンターのインストールで、必要な遅延レベル内で1つのDCしかない場合には不可能かもしれません。
Consulのような高度に分散したシステムをより多く利用するようになった結果、要件やベストプラクティスが変化したことを理解することが重要です。 分散システムで構成される環境を運用する場合、基盤となるコンポーネントの冗長性係数に変化が生じることが求められています。 Consulはコンセンサスネゴシエーションによって情報の整理と複製を行っているため、意味のある信頼性を提供するためには、3つの独自のレジリエントパスを提供する必要があります。 基本的に、コンセンサスシステムは、いつでも利用可能なノードの単純多数決を必要とします。 3つのノードの例では、2つのノードが利用可能である必要があります。 この3つのノードが2つの障害ドメインに配置されている場合、1つの障害ドメインを失うと50%の確率で完全な停止が発生します。
“リージョン
リージョンレベルでの障害から保護し、さらに地理的なスケーリング機能を提供するために、Vault Enterpriseは以下を提供します:
- 災害復旧レプリケーション
- パフォーマンス・レプリケーション
これらのオプションに関する詳細については、Vault Replicationの推奨パターンをご覧ください。
上記のような制約があるため、推奨するアーキテクチャは、VaultとConsul Enterpriseをアクラスター内の3つのアベイラビリティゾーンに分散し、DRとパフォーマンスレプリケーションを使って地域間でクラスターをレプリケートするものです。 また、1つまたは2つのアベイラビリティゾーンとConsul OSSのためのいくつかの「ベストケース」アーキテクチャのソリューションがあります。
「推奨アーキテクチャ」
以下のアーキテクチャは、Vault導入の推奨ベストアプローチであり、あらゆるインストールのターゲットアーキテクチャとなるべきものです。 これは 2 つの部分に分かれています。
- Vault クラスタ – これは 1 つのエンティティとしての Vault クラスタの推奨アーキテクチャですが、2 番目の図に従ってレプリケーションも使用する必要があります
- Vault レプリケーション – これは、地域、パフォーマンス、障害復旧を可能にする複数の vault クラスタに対する推奨アーキテクチャです。
“Single Region Deployment (Enterprise)
このシナリオでは、Vault ノードとそれに関連する Consul クラスターは、3 つの利用可能ゾーン間にホストされています。 このソリューションでは、Vault のノード レベルに n-2 があり、Consul のノード レベルに n-3 があります。 AvailabilityZone レベルでは、Vault は n-2 であり、Consul は n-1 です。 これはOSSの設計と異なり、Consulクラスタには6つのノードがあり、そのうち3つは投票権を持たないメンバとなっています。 Consulクラスタは冗長ゾーンを使用して設定されており、いずれかのノードに障害が発生した場合、非投票メンバーがAutopilotによって昇格してフルメンバーになり、クォーラムを維持します。
「複数リージョン展開(エンタープライズ)」
「参考図 リージョン障害に対する回復力」
このシナリオでは、クラスタは全リークジョン障害に備えるためにレプリケーションされています。 3つのパフォーマンス・レプリカVaultクラスタ(クラスタA、B、C)があり、それぞれ別のリージョンに独自のDRクラスタ(クラスタD、E、F)を持っています。 このアーキテクチャでは、すべてのシークレットとシークレットエンジンがすべてのクラスタにレプリケートされている場合、リージョンレベルでn-2が可能です。 完全なRegion1が故障した場合、DRクラスタFを昇格させる必要があります。 これが行われると、VaultsolutionはRegion1が回復するまで冗長性を失いつつも完全に機能します。
“参照図 クラスタ障害に対する耐障害性
このソリューションはクラスタレベルで完全な耐障害性を備えていますが、パフォーマンス レプリカのDRクラスタが同じ地域にあるため、地域の障害に対しては保護されません。 GDPRなどのガバナンスの制約により、データを他の地域にレプリケートできない場合、この方法が望ましいユースケースもあります。 また、インフラストラクチャのフレームワークによっては、アプリケーションのトラフィックを異なるリージョンにルーティングする機能がない場合もあります。
“ベストケースアーキテクチャ
一部の展開では、乗り越えられない制約があるため、推奨アーキテクチャが実現しない場合があります。 これは、利用可能なゾーンがないことや、Vault OSS を使用していることが原因である可能性があります。 このような場合、以下のアーキテクチャは、利用可能な最良のケースのオプションの詳細です。
これらのアーキテクチャでは、Consul リーダーは 5 つの Consul サーバー ノードのいずれかになり、Vault アクティブ ノードは 3 つの Vault ノードのいずれかになることに注意してください
“Vault in one Availability Zone (all)
このシナリオでは、すべての Vault ノードとその関連 Consul クラスタは 1 つの Availability Zone 内にホストされます。 このソリューションでは、アベイラビリティ ゾーン レベルで単一障害点がありますが、Consul と Vault の両方のノード レベルで n-2 が発生します。 これは、可用性ゾーン・レベルでの冗長性がないため、Hashicorp が本番システムに推奨するアーキテクチャではありません。 このシナリオでは、Vault ノードとそれに関連する Consul クラスターは、2 つの可用性ゾーンの間でホストされます。 このソリューションでは、Vault と Consul のノード レベルで n-2、利用可能ゾーン レベルで Vault の n-1 がありますが、利用可能ゾーンの追加によって Consul クラスターの利用可能性が大幅に向上することはありません。 これは、Raftプロトコルが(n/2)+1のアクオラムを必要とし、上の図でゾーンBが失敗した場合、クラスタがクォーレートされないため、失敗することになるからです。 これは、可用性ゾーンレベルでは部分的な冗長性しかなく、可用性ゾーンの障害が停止に至らない可能性があるため、Hashicorp が本番システムに推奨するアーキテクチャではありません。
「2つの可用性ゾーンでの Vault 展開(エンタープライズ)
Consul クラスタで定足数を保つ必要があるため、可用性ゾーンを 2つだけ設けることは理想的ではありません。 Consul クラスターを 2 つの AZ に分散して、回復力を追加する保証はありません。 Vault Enterpriseの最良のケースは、2つのAZをリージョンとして扱い、それぞれに別のVaultクラスタを設置することです。
セカンダリ Vault クラスターは、パフォーマンス レプリカまたは DR レプリカのいずれかになり、それぞれに利点があります。
- PR セカンダリ: Vault アドレスが Consul またはロード バランサーによって管理されている場合、アプリケーションまたは Vault エージェントに、クラスター間で複製されないトークンを再度要求して管理するロジックがある場合、いずれかのクラスターの障害によって、障害なしでトラフィックはもう一方のクラスターに転送されます。
- DR セカンダリ: この場合、プライマリ クラスターで障害が発生すると、DR をプライマリに昇格させるためにオペレーターの介入が必要になりますが、すべてのリリースとトークンがレプリケートされるため、アプリケーションでこれを処理するための追加のロジックは必要ありません。
“Deployment of Vault in three Availability Zones (OSS)
このシナリオでは、Vault のノードと関連する Consul クラスタは 3 つの Availability Zone の間でホスティングされます。 このソリューションは、VaultとConsulのノードレベルでn-2、Vaultの可用性ゾーンレベルでn-2を持ちます。また、Consulの可用性ゾーンレベルでn-1を持ち、そのため、単一のVaultクラスタとOSS製品のConsulストレージバックエンドに対するすべてのアーキテクチャの中で最も弾力性があると見なされています。
“Vault Replication (Enterprise Only)
これらのアーキテクチャでは、Vaultクラスタは単一のエンティティとして図示され、利用可能ゾーンの数に基づいて、上記の単一のクラスタの1つになります。 複数のVaultクラスタが1つのVaultsolutionとして動作し、それらの間でレプリケーションを行うことは、Enterprise Vaultでのみ可能です。 OSSVaultは、複数のクラスタでセットアップすることができますが、それらはそれぞれ個別のVaultソリューションとなり、クラスタ間のレプリケーションをサポートしません。
Vaultドキュメントでは、VaultEnterprise内のレプリケーション機能に関するより詳細な情報を提供しています。静的シークレット、認証方法、および承認ポリシーは、複数の場所で有効かつ利用できるようにレプリケートされますが、リーズストークンおよび動的シークレットはそうではありません。
NOTE: 地域間で複製されないシークレットエンジンについては、Vault Mount Filter チュートリアルを参照してください。
“災害復旧レプリケーション
Vault 災害復旧レプリケーションは、スタンバイ Vault クラスターがアクティブ Vault クラスターとキーピング同期されることを保証します。 このモードのレプリケーションには、エフェメラル認証トークン、タイムベーストークン情報、およびトークン使用状況データなどのデータが含まれます。 これにより、一時的な運用データの損失を防ぐことが最も重要である環境において、積極的なリカバリーポイントの目標を設定することができます。
NOTE: 詳細については、Vault Disaster Recovery Setuptutorialを参照してください。
「破損または妨害によるディザスタ リカバリ」
保護すべきもう1つの一般的なシナリオは、非常に高いレベルの内在的回復力を提供するクラウド環境において、データと構成の故意または偶発的な破損、およびクラウドアカウントの制御損失が発生する可能性があることです。 VaultのDRレプリケーションは、ライブデータを複製するように設計されており、意図的または偶発的なデータの破損や削除が伝搬される可能性があります。 これは、定期的なアーカイブバックアップを自動化できるConsulSnapshot機能によってサポートされています。 冷えたサイトや新しいインフラストラクチャは、Consul スナップショットから再水和されます。
NOTE: Consulsnapshot の詳細については、オンラインドキュメントを参照してください
“Replication Notes
1 レプリケーションセット内のクラスタ数には、制限は設けられていません。 今日の最大規模のデプロイメントでは、30クラスタ以上の範囲になります。 パフォーマンス・レプリカ・クラスターは、それに関連するディザスター・リカバリー・クラスターを持つことができ、また、複数のディザスター・リカバリー・クラスターにレプリケーションできます。
Vaultクラスターは、レプリケーション・ロール(またはロール)を所有できますが、インフラの点で特別な配慮は不要で、クラスターは別のロールへの就任(または昇進または降格)することが可能です。 マウント フィルターとハードウェア セキュリティ モジュール (HSM) の使用に関連する特別な状況では、役割の割り当てが制限される場合がありますが、これらは特定の組織の構成に基づいています。
「HSM 統合に関する考慮事項
自動開封処理のためにハードウェア セキュリティ モジュール (HSM) または雲の自動開封デバイスと統合した Vault クラスタでレプリケーションを使用するには、計画段階で理解しておくべきいくつかの詳細事項があります。
- パフォーマンス プライマリ クラスターが HSM を使用する場合、そのレプリケーション セット内の他のすべてのクラスターも同様に HSM を使用する必要があります。
- パフォーマンス プライマリ クラスタが HSM を使用しない場合 (Shamir 秘密分散方式を使用)、そのレプリケーション セット内のクラスタは混合することができ、一部は HSM を使用し、その他は Shamir を使用することが可能です。 下流の Shamir クラスターは、鍵所有者の閾値がマスター鍵を作成することができるため、レプリケーション グループに潜在的な攻撃ベクトルを提示し、したがって、上流の HSM 鍵保護をバイパスします。 Vault 1.3 では、マスター・キーは、マスター・キーがオート・アンシール・キーによって暗号化され、ディスクに保存されるのと同様に、共有キーで暗号化され、ディスクに保存されます。 これにより、Shamirの秘密分散アルゴリズムまたは自動解除のいずれを使用しているかにかかわらず、一貫した動作が提供され、上記の3つのシナリオをすべて有効にすることができるようになります。 しかし、Vaultがガバナンスや規制コンプライアンス要件の対象となるデータを保護している場合、自動開封のためにダウンストリームHSMを実装することをお勧めします。
「デプロイメントシステム要件
次の表は、サーバーサイズのガイドラインです。 特に、Tシリーズインスタンスのような非固定性能CPU、またはAWS用語でBurstableCPUを避けることを強く推奨していることに注意してください。
“Sizing for Vault Servers
Size | CPU | Memory | ディスク | Typical Cloud Instance Types | |||||
---|---|---|---|---|---|---|---|---|---|
Small | 2 core | 4- の場合8GB RAM | 25GB | aws: m5.large | |||||
Large | 4-8 core | 16-32 GB RAM | 50 GB | AWS: m5.xlarge, m5.2xlarge | |||||
GCE.JP | GCE.JP N1-Standard-8。 n1-標準16 |
“コンシュルサーバのサイジング
サイズ | CPU | Memory | ディスク | 代表的なクラウドインスタンスの種類 | ||||
---|---|---|---|---|---|---|---|---|
スモール | 2コア | 8-…16GB RAM | 50GB | aws: m5.large, m5.xlarge | ||||
GCE.JP | ||||||||
Large | 4-8 core | 32-64+GB RAM | 100 GB | AWS: m5.S. | Large | M5.2xlarge, m5.4xlarge | ||
GCE.JP | GCE.JP N1-standard-16, N1-standard-32 |
“Hardware Considerations
Small size categoryは、ほとんどの初期生産展開または開発/テスト環境に適しています。
ラージ サイズは、一貫して高いワークロードが存在する本番環境に適しています。
一般に、処理要件は、暗号化作業負荷およびメッセージング作業負荷(1秒あたりの処理量、および処理タイプ)に依存します。 メモリ要件は、メモリに保存される秘密鍵の合計サイズに依存し、そのデータに応じてサイズを設定する必要があります(ハードディスク・ストレージも同様)。 多くの秘密が頻繁に生成/回転される場合、この情報は頻繁にディスクにフラッシュする必要があり、低速のハードディスクが使用されるとパフォーマンスに影響を与える可能性があります。 これは、Vaultの永続化のために保存されたすべてのコンテンツが、Vaultによって暗号化され、静止時にストレージバックエンドに書き込まれることを意味します。 このデータは、Consulのサービスカタログのキーバリューストアのセクションに書き込まれますが、このセクションは、各Consulサーバー上のメモリに全体が格納されることが要求されます。 このため、Vaultに認証するクライアントが増え、Vaultに永続的に保存される秘密が増え、Vaultからリースされる一時的な秘密が増えると、メモリがスケーリングの制約になる可能性があるということです。 また、サービスカタログ全体が各 Consul サーバー上のメモリに保存されるため、追加のスペースが必要な場合、Consul サーバーのメモリに垂直方向のスケーリングが必要になるという効果もあります。
Consulクラスタ運用におけるネットワークパフォーマンスの考慮により、ネットワーク境界を越えたVaultデータセットのレプリケーションは、ネットワークと物理境界を越えてConsulクラスタを拡散するのではなく、パフォーマンスまたはDRレプリケーションによって達成される必要があります。 1つのConsulクラスターを離れたネットワークセグメントや地域間に分散させると、クラスター内で同期の問題が発生したり、一部のクラウド プロバイダーで追加のデータ転送料金が発生したりすることがあります。
「その他の考慮事項
Vault Production Hardening Recommendations」では、Vaultのプロダクション ハード化の展開に関するベスト プラクティスに関する指針を提供しています。
“負荷分散
“Consul インターフェイスを使用した負荷分散
Consul は、サービス検出を通じて負荷分散機能を提供できますが、Vault クライアントが Consul を認識していることが必要です。 これは、クライアントがアクティブなVaultノードを解決するために、Consul DNSまたはAPIインターフェースを使用することができることを意味します。 http://active.vault.service.consul:8200
これは、オペレーティングシステムのDNS解決システムに依存し、リクエストは実際のIPアドレスの応答のためにConsulに転送される可能性があるようなURLを介してVaultにアクセスすることがあります。 この操作は、レガシーアプリケーションに対して完全に透過的であり、通常の DNS 解決操作と同様に動作することができます。 詳細については、Consul DNS転送を参照してください
“外部ロードバランサーを使用した負荷分散
Vaultクラスタへのエントリポイントとして、外部ロードバランサーがサポートされています。 外部ロードバランサーは、sys/healthエンドポイントをポーリングして、アクティブなノードを検出し、それに応じてトラフィックをルーティングする必要があります。 ロードバランサーは、クラスタ内の各ノードに対して次のURLのHTTPリクエストを行うように構成する必要があります。 http://<Vault Node URL>:8200/v1/sys/health
アクティブな Vault ノードは 200 で応答し、スタンバイ ノードは 4xx 応答を返します。
listen vault bind 0.0.0.0:80 balance roundrobin option httpchk GET /v1/sys/health server vault1 192.168.33.10:8200 check server vault2 192.168.33.11:8200 check server vault3 192.168.33.12:8200 check
Copy
ソフトウェア ロード バランサーが使用されると、上記のブロックは Consul (with consul-template) によって生成できることを注意してください。 これは、ロードバランサーが Nginx、HAProxy、または Apache のようなソフトウェアである場合に起こりえます。
上記の HAProxy ブロックの Consul テンプレート例:
listen vault bind 0.0.0.0:8200 balance roundrobin option httpchk GET /v1/sys/health{{range service "vault"}} server {{.Node}} {{.Address}}:{{.Port}} check{{end}}
コピー
“クライアント IP アドレス処理
プロキシロードバランサの後ろでクライアント IP アドレス処理を行うには 2 つのサポートされた方法があります: X-Forwarded-ForHeaders と PROXYv1です。どちらも、信頼できるロードバランサーとIPアドレスが、セキュリティのベストプラクティスに準拠するために許可されたアドレスとしてリストされることが必要です。
“その他の参考資料
- Vault architecture documentationでは、Vaultの各コンポーネントを説明しています
- Vault を既存のLDAPサーバーと統合するには、LDAP Auth Method documentation
- AppRole PullAuthentication tutorialで、マシンまたはアプリ用のトークンをプログラムにより生成しています
- Consulは場所を問わず回復力の高い Vaultクラスタを実行するのに不可欠なパーツです。 詳細は、オンラインの Consul ドキュメントを参照してください。
“次のステップ
- 本番環境での Vault のハードニング展開のベストプラクティスについては、本番環境でのハードニングを参照してください。
- 単一の HashiCorp Vault クラスターのインストールと構成に必要なステップについては、デプロイメント ガイドを参照してください。