次の方法で共有


Azure Key Vaultの信頼性

Azure Key Vault は、キー、パスワード、証明書、その他の機密情報などのシークレットのセキュリティで保護されたストアを提供するクラウド サービスです。 Key Vaultには、シークレットが常に利用可能であることを保証するためのさまざまな組み込みの信頼性機能が用意されています。

Azureを使用する場合、信頼性は共有責任です。 Microsoft では、回復性と回復性をサポートするさまざまな機能を提供しています。 使用するすべてのサービスでこれらの機能がどのように機能するかを理解し、ビジネス目標とアップタイムの目標を達成するために必要な機能を選択する必要があります。

この記事では、Key Vaultが一時的な故障、可用性ゾーンの障害、リージョンの障害など、さまざまな潜在的な障害や問題に対して耐障害性を持っていることについて説明します。 また、バックアップを使用して他の種類の問題から復旧する方法、誤って削除されないようにする回復機能、Key Vault サービス レベル アグリーメント (SLA) に関するいくつかの重要な情報を強調表示する方法についても説明します。

信頼性のための運用環境のデプロイに関する推奨事項

本番環境のワークロードに対しては、次のことをお勧めします。

  • Standard または Premium レベルのキーボールトを使用します。
  • 論理的な削除と消去保護を有効にして、誤削除や意図的な消去を防止します。
  • 重要なワークロードの場合は、このガイドで説明されている複数リージョン戦略の実装を検討してください。

信頼性アーキテクチャの概要

ハードウェア障害やネットワーク障害が発生した場合にキー、シークレット、証明書の高い持続性と可用性を確保するために、Key Vaultでは、次のイベント中に可用性を維持するための複数の冗長性が提供されます。

  • ハードウェア障害
  • ネットワークの停止
  • ローカライズされた災害
  • メンテナンス アクティビティ

既定では、Key Vaultがリージョン内でKey Vaultとその内容をレプリケートすることで冗長性を実現します。

リージョンに ペアになっているリージョン があり、そのペアになっているリージョンがプライマリ リージョンと同じ地域にある場合、コンテンツもペアになっているリージョンにレプリケートされます。 この方法により、キーとシークレットの高い持続性が確保され、ハードウェア障害、ネットワーク障害、またはローカライズされた災害から保護されます。

一時的な障害に対する回復性

一時的な障害は、コンポーネントにおける短い断続的な障害です。 これらはクラウドのような分散環境で頻繁に発生し、運用の通常の範囲であり、 一時的な障害は、短時間の経過後に自分自身を修正します。 アプリケーションで一時的な障害を処理できることは重要です。通常は、影響を受ける要求を再試行します。

クラウドでホストされているすべてのアプリケーションは、クラウドでホストされている API、データベース、およびその他のコンポーネントと通信する際に、Azure一時的な障害処理ガイダンスに従う必要があります。 詳細については、「一時的な障害を処理するための推奨事項」を参照してください。

発生する可能性のある一時的なエラーを処理するには、クライアント アプリケーションがKey Vaultと対話するときに再試行ロジックを実装する必要があります。 次のベスト プラクティスを検討してください。

  • Azure SDKを使用します。これには、通常、組み込みの再試行メカニズムが含まれます。

  • クライアントがKey Vaultに直接接続する場合は、指数バックオフ再試行ポリシーを実装します。

  • 可能な限りメモリにシークレットをキャッシュして、Key Vaultへの直接要求を減らします。

  • Key Vault サービスの制限を超えるとスロットリングが発生するため、スロットリングエラーを監視します。

高スループットのシナリオでKey Vaultを使用する場合は、スロットリングの制限を回避するために、操作を複数のKey Vaultに分散することを検討してください。 次のシナリオのKey Vault固有のガイダンスを検討してください。

  • 高スループットのシナリオは、ソフトウェアで保護されたキーに対して 1 秒あたり 200 操作など、Key Vault操作のサービス制限に近づくか超えるシナリオです。

  • 高スループットのワークロードの場合は、複数のコンテナーと異なるリージョン間でKey Vaultトラフィックを分割します。

  • すべてのトランザクションの種類に対するサブスクリプション全体の制限は、個々のキー コンテナーの制限の 5 倍です。

  • セキュリティドメインまたは可用性ドメインごとに個別のコンテナーを使用します。 たとえば、2 つのリージョンに 5 つのアプリがある場合は、10 個のコンテナーを使用することを検討してください。

  • 暗号化、ラップ、検証などの公開キー操作の場合は、公開キーマテリアルをキャッシュしてローカルでこれらの操作を実行します。

詳細については、Key Vault調整ガイダンスを参照してください。

可用性ゾーンの障害に対する回復性

Availability zones は、Azure リージョン内のデータセンターの物理的に分離されたグループです。 1 つのゾーンで障害が発生した際には、サービスを残りのゾーンのいずれかにフェールオーバーできます。

Key Vaultは、可用性ゾーンをサポートするリージョンでゾーンの冗長性を自動的に提供します。 この冗長性により、特定の構成を必要とせずに、リージョン内で高可用性を実現できます。

可用性ゾーンが使用できなくなった場合、Key Vaultは、高可用性を確保するために、要求を他の正常な可用性ゾーンに自動的にリダイレクトします。

Requirements

  • Region support: Key Vault では、可用性ゾーンをサポートするすべてのAzureリージョン>で既定でゾーンの冗長性が有効になります。
  • Standard と Premium のすべてのKey Vault SKU は、同じレベルの可用性と回復性をサポートします。 ゾーンの回復性を実現するための階層固有の要件はありません。

費用

Key Vaultのゾーン冗長性に関連する追加コストはありません。 価格は、SKU 、Standard または Premium、および実行された操作の数に基づいています。

すべてのゾーンが正常な場合の動作

このセクションでは、キー コンテナーが存在するリージョンに可用性ゾーンがあり、すべての可用性ゾーンが動作可能な場合に期待されることを説明します。

  • ゾーン間のトラフィック ルーティング: Key Vault は、可用性ゾーン間のトラフィック ルーティングを自動的に管理します。 通常の操作中、要求はゾーン間で透過的に分散されます。

  • ゾーン間のデータ レプリケーション: Key Vault データは、ゾーンをサポートするリージョン内の可用性ゾーン間で同期的にレプリケートされます。 このレプリケーションにより、ゾーンが使用できなくなった場合でも、キー、シークレット、証明書の一貫性と使用が保証されます。

ゾーン障害時の動作

次のセクションでは、キー ボールトが可用性ゾーンがあるが、1 つ以上が使用できないリージョンにある場合に想定される内容について説明します。

  • 検出と応答: Key Vault サービスは、ゾーンの障害を検出し、それらに自動的に応答します。 ゾーン障害時にアクションを実行する必要はありません。
  • 通知: ゾーンがダウンしても、Microsoft から自動的に通知されることはありません。 ただし、Azure Resource Health を使用して個々のリソースの正常性を監視したり、Resource Healthアラートを設定して問題を通知することができます。 また、Azure Service Health を使用して、ゾーンエラーを含むサービスの全体的な正常性を把握し、Service Health アラートを設定して問題を通知することもできます。
  • アクティブな要求: ゾーン障害時に、影響を受けるゾーンが処理中の要求の処理に失敗する可能性があり、クライアント アプリケーションは要求を再試行する必要があります。 クライアント アプリケーションは、ゾーン障害が発生した場合に要求を再試行できるように、 一時的な障害処理プラクティス に従う必要があります。

  • 予想されるデータ損失: ゾーン間の同期レプリケーションにより、ゾーン障害時にデータ損失は発生しません。

  • 予想されるダウンタイム: 読み取り操作では、ゾーン障害時のダウンタイムを最小限に抑える必要があります。 書き込み操作では、サービスがゾーン障害に合わせて調整されている間、一時的に使用できなくなる可能性があります。 読み取り操作は、ゾーン障害時に引き続き使用できる状態が続くと予想されます。

  • Traffic rerouting: Key Vault は、影響を受けるゾーンから正常なゾーンにトラフィックを自動的に再ルーティングします。お客様の介入は必要ありません。

ゾーンの回復

影響を受ける可用性ゾーンが復旧すると、Key Vaultはそのゾーンに操作を自動的に復元します。 Azure プラットフォームは、このプロセスを完全に管理し、顧客の介入を必要としません。

リージョン全体の障害に対する回復性

Key Vaultリソースは、単一のAzure リージョンにデプロイされます。 リージョンが使用できなくなった場合、キー ボールトも使用できなくなります。 ただし、リージョンの停止に対する回復性を確保するために使用できる方法があります。 これらの方法は、キー コンテナーが存在するリージョンがペアになっているかペアになっていないか、および特定の要件と構成に依存します。

Microsoft が管理するペア リージョンへのフェールオーバー

Key Vaultでは、ほとんどのペアになっているリージョンのキー コンテナーに対して、Microsoft が管理するレプリケーションとフェールオーバーがサポートされます。 キー コンテナーの内容は、リージョン内で、およびペアになっているリージョンに非同期で、自動的にレプリケートされます。 この方法では、キーとシークレットの高い持続性が保証されます。 万一リージョンの障害が長引いた場合、Microsoft はキー コンテナーのリージョン フェールオーバーを開始する可能性があります。

次のリージョンでは、リージョン間での Microsoft マネージド レプリケーションまたはフェールオーバーはサポートされていません。

  • ブラジル南部
  • ブラジル南東部
  • 米国西部 3
  • ペアになったリージョンがないリージョン

Important

Microsoft は、Microsoft が管理するフェールオーバーをトリガーします。 これは、大幅な遅延の後に発生する可能性が高く、ベスト エフォートベースで実行されます。 このプロセスにはいくつかの例外もあります。 キー ボールトのフェールオーバーは、他のAzureサービスのフェールオーバー時間とは異なる時点で発生する可能性があります。

リージョンの停止に対する回復性が必要な場合は、 回復性のためにカスタムのマルチリージョン ソリューションの 1 つを使用することを検討してください。

また、バックアップと復元機能を使って、コンテナーの内容を任意の別のリージョンにレプリケートすることもできます。

考慮事項

  • ダウンタイム: フェールオーバーが実行されている間、キー コンテナーが数分間使用できなくなる可能性があります。

  • フェールオーバー後の読み取り専用: フェールオーバー後、キー コンテナーは読み取り専用になり、限定された操作のみが実行可能です。 セカンダリ リージョンでの操作中にキー コンテナーのプロパティを変更することはできません。また、セカンダリ リージョンでの操作中にアクセス ポリシーとファイアウォールの構成を変更することはできません。

    キー コンテナーが読み取り専用モードの場合、次の操作のみが実行可能です。

    • 証明書の一覧の取得
    • 証明書を取得する
    • シークレットのリスト
    • シークレットの取得
    • キーのリスト
    • キー (のプロパティ) の取得
    • Encrypt
    • 復号化
    • ラップ
    • ラップ解除
    • Verify
    • Sign
    • Backup

費用

Key Vaultの組み込みのマルチリージョン レプリケーション機能に対する追加コストは発生しません。

すべてのリージョンが正常な場合の動作

次のセクションでは、キー ボルトが Microsoft が管理するレプリケーションとフェールオーバーをサポートするリージョンにあり、かつプライマリリージョンが運用中である場合に想定される内容について説明します。

  • リージョン間のトラフィック ルーティング: 通常の運用中、すべての要求は、キー ボールトがデプロイされているプライマリ リージョンにルーティングされます。

  • リージョン間のデータ レプリケーション: Key Vault は、ペアになっているリージョンに非同期的にデータをレプリケートします。 キー コンテナーの内容を変更すると、それらの変更は最初にプライマリ リージョンにコミットされ、次にセカンダリ リージョンにレプリケートされます。

リージョン障害時の動作

次のセクションでは、Microsoft が管理するレプリケーションとフェールオーバーをサポートするリージョンにキー コンテナーがあり、プライマリ リージョンで障害が発生した場合に想定される内容について説明します。

  • 検出と応答: Microsoft は、プライマリ リージョンが失われた場合にフェールオーバーを実行することを決定できます。 このプロセスは、プライマリ リージョンが失われた後に数時間かかる場合もあれば、一部のシナリオでは長くなる場合があります。 キー コンテナーのフェールオーバーは、他のAzure サービスと同時に発生しない可能性があります。
  • 通知: ゾーンがダウンしても、Microsoft から自動的に通知されることはありません。 ただし、Azure Resource Health を使用して個々のリソースの正常性を監視したり、Resource Healthアラートを設定して問題を通知することができます。 また、Azure Service Health を使用して、ゾーンエラーを含むサービスの全体的な正常性を把握し、Service Health アラートを設定して問題を通知することもできます。
  • アクティブな要求: リージョンのフェールオーバー中にアクティブな要求が失敗する可能性があり、クライアント アプリケーションはフェールオーバーの完了後に再試行する必要があります。

  • 予想されるデータ損失: プライマリ リージョンが失敗する前に変更がセカンダリ リージョンにレプリケートされない場合、データ損失が発生する可能性があります。

  • 予想されるダウンタイム: プライマリ リージョンの大規模な停止中には、キー ボールトが数時間、または Microsoft がセカンダリ リージョンへのフェールオーバーを開始するまで使用できない可能性があります。

    Private Linkを使用してキー コンテナーに接続する場合、リージョンのフェールオーバー後に接続が再確立されるまでに最大 20 分かかる場合があります。

  • トラフィックの再ルーティング: リージョンのフェールオーバーが完了すると、顧客の介入を必要とせずに、ペアになっているリージョンに要求が自動的にルーティングされます。

回復性のためのカスタム マルチリージョン ソリューション

Key Vaultの Microsoft が管理するリージョン間フェールオーバー機能が適していないシナリオがあります。

  • キー コンテナーがペアになっていないリージョン内にあります。

  • キー コンテナーが存在するペアになったリージョンが、ブラジル南部、ブラジル南東部、米国西部 3 での Microsoft が管理するリージョン間レプリケーションとフェールオーバーをサポートしていません。

  • ビジネスアップタイムの目標は、Microsoft が管理するリージョン間フェールオーバーによって提供される復旧時間やデータ損失によって満たされません。

  • プライマリ リージョンのペアではないリージョンにフェールオーバーする必要があります。

次の手順を実行して、カスタムのリージョン間フェールオーバー ソリューションを設計できます。

  1. 異なるリージョンに個別のキーボールトを作成します。

  2. バックアップと復元の機能を使用して、リージョン間で一貫したシークレットを維持します。

  3. キー ボールト間でフェールオーバーするためのアプリケーション レベルのロジックを実装します。

バックアップと復元

Key Vaultは、個々のシークレット、キー、証明書をバックアップおよび復元できます。 バックアップは、キー コンテナーへのアクセスが失われる可能性が低い場合に、シークレットのオフライン コピーを提供することを目的としています。

バックアップ機能に関する次の重要な要因を考慮してください。

  • バックアップでは、Azureの外部では暗号化を解除できない暗号化された BLOB が作成されます。

  • バックアップを復元できるのは、同じAzure サブスクリプション内のキー コンテナーとAzure地域内のみです。

  • キー、シークレット、または証明書オブジェクトの過去 500 バージョン以下のバックアップには制限があります。

  • バックアップは特定の時点のスナップショットであり、シークレットが変更されたときに自動的に更新されることはありません。

ほとんどのソリューションでは、バックアップのみに依存しないでください。 代わりに、このガイドで説明されている他の機能を使用して、回復性の要件をサポートします。 ただし、バックアップでは、特定のシークレットの誤削除など、他の方法では行わないリスクから保護されます。 詳細については、「Key Vault backup」を参照してください。

回復機能

Key Vaultには、偶発的または悪意のある削除を防ぐための 2 つの主要な回復機能が用意されています。

  • ソフト削除: ソフト削除を有効にすると、構成可能な保持期間中に削除されたボールトおよびオブジェクトを回復できます。 この期間の既定値は 90 日です。 論理的な削除は、キー コンテナー リソース用のごみ箱のようなものと考えてください。

  • 消去保護: 消去保護を有効にすると、保持期間が経過するまで、キー コンテナーとそのオブジェクトが完全に削除されるのを防ぐことができます。 このセーフガードは、悪意のあるアクターがあなたの秘密を永久に破壊するのを防ぎます。

運用環境では、両方の機能を強くお勧めします。 詳細については、Key Vault回復管理ドキュメントの「Soft-delete and purge protection を参照してください。

サービス水準合意書

Azure サービスのサービス レベル アグリーメント (SLA) では、各サービスの予想される可用性と、その可用性の期待を達成するためにソリューションが満たす必要がある条件について説明します。 詳細については、オンラインサービスのSLAを参照してください。