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

完了

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

認証

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

  • 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 データは機密性が高く、ビジネス クリティカルであるため、承認されたアプリケーションとユーザーのみを許可することで、ご利用のキー コンテナーへのアクセスをセキュリティで保護する必要があります。

  • バックアップ - Vault 内のオブジェクトの更新、削除、作成の際に、お使いのコンテナーの通常バックアップを作成します。

  • ログ記録 - ログ記録とアラートを必ず有効にします。

  • 回復オプション - シークレットの強制削除を防ぐ場合は、論理的な削除と消去保護の機能をオンにします。