Azure Key Vault のベスト プラクティスを確認する

完了

Azure Key Vault は、シークレットを安全に保管し、それにアクセスするためのツールです。 シークレットは、API キー、パスワード、証明書など、アクセスを厳密に制御する必要があるあらゆるものです。 コンテナーは、シークレットの論理的なグループです。

認証

Key Vault で操作を行うには、まず、それを認証する必要があります。 Key Vault に対する認証には 3 つの方法があります。

  • Azure リソースのマネージド ID: Azure の仮想マシンにアプリをデプロイするときに、Key Vault にアクセスできる仮想マシンに ID を割り当てることができます。 他の Azure リソースにも ID を割り当てることができます。 この手法の利点は、最初のシークレットのローテーションがアプリやサービスで管理されないことにあります。 Azure は、ID に関連付けられているサービス プリンシパル クライアント シークレットを自動的にローテーションします。 ベスト プラクティスとして、この手法をお勧めします。

  • サービス プリンシパルと証明書: Key Vault にアクセスできるサービス プリンシパルと関連付けられた証明書を使用できます。 アプリケーションの所有者または開発者が証明書をローテーションする必要があるため、この手法はお勧めできません。

  • サービス プリンシパルとシークレット: サービス プリンシパルとシークレットを使用して Key Vault に対する認証を行うことができますが、お勧めしません。 Key Vault に対する認証で使用されるブートストラップ シークレットを自動的にローテーションするのは困難です。

転送中のデータの暗号化

Azure Key Vault では、Azure Key Vault とクライアントの間を移動するときにデータを保護するために、トランスポート層セキュリティ (TLS) プロトコルが適用されます。 クライアントは、Azure Key Vault との TLS 接続をネゴシエートします。 TLS には、強力な認証、メッセージの機密性、整合性 (メッセージの改ざん、傍受、偽造の検出が有効)、相互運用性、アルゴリズムの柔軟性、デプロイと使用のしやすさといったメリットがあります。

Perfect Forward Secrecy (PFS) は、顧客のクライアント システムと Microsoft クラウド サービスとの間の接続を一意のキーで保護します。 接続には RSA ベースの 2,048 ビット長の暗号化キーも使用します。 この組み合わせにより、転送中のデータの傍受やデータへのアクセスを困難にしています。

Azure Key Vault のベスト プラクティス

  • 別のキー コンテナーを使用します。 環境 (開発、運用前、運用) ごとに、アプリケーションごとにコンテナーを使用することをお勧めします。 このパターンは、複数の環境でシークレットを共有しないようにし、侵害が発生した場合の脅威を軽減するのにも役立ちます。

  • コンテナーへのアクセスを制御する: Key Vault データは機密性が高く、ビジネス上重要です。承認されたアプリケーションとユーザーのみを許可することで、キー コンテナーへのアクセスをセキュリティで保護する必要があります。

  • バックアップ: コンテナー内のオブジェクトの更新/削除/作成時に、コンテナーの定期的なバックアップを作成します。

  • ログ: ログ記録とアラートは必ず有効にしてください。

  • 回復オプション: シークレットの強制削除から守るためには、ソフト削除と完全削除保護を有効にしてください。