Azure Key Vault を使用するためのベスト プラクティス

Azure Key Vault を使用すると、暗号化キーとシークレット (証明書、接続文字列、パスワードなど) を保護できます。 この記事は、キー コンテナーの使用を最適化するのに役立ちます。

別々のキー コンテナーを使用する

環境 (開発、実稼働前、および実稼働) ごと、リージョンごとに、アプリケーションごとのコンテナーを使用することをお勧めします。 細かい分離によって、アプリケーション、環境、リージョン間でシークレットを共有することがなくなり、侵害が発生した場合の脅威も軽減されます。

別々のキー コンテナーをお勧めする理由

キー コンテナーでは、格納されているシークレットのセキュリティ境界を定義します。 これは、シークレットを同じコンテナーにグループ化すると、攻撃によってさまざまな事項にわたるシークレットにアクセスできるおそれがあるため、セキュリティ イベントの "爆発半径" が大きくなることを意味します。 さまざまな場所にアクセスされてしまう懸念を軽減するには、ある特定のアプリケーションにどのシークレットに対するアクセス権限が "必要である" かを検討し、この線引きに基づいてキー コンテナーを分離します。 アプリケーション別にキー コンテナーを分離するのが最も一般的な境界です。 ただし、大規模なアプリケーションでは、関連するサービスのグループごとになど、セキュリティ境界をより細かく設定できます。

コンテナーへのアクセスの制御

暗号化キーとシークレット (証明書、接続文字列、パスワードなど) は機密性が高く、ビジネスにおいて重要です。 承認されたアプリケーションとユーザーのみを許可することで、キー コンテナーへのアクセスをセキュリティで保護する必要があります。 Azure Key Vault のセキュリティ機能で、Key Vault アクセス モデルの概要を確認できます。 認証と承認について説明します。 また、キー コンテナーへのアクセスをセキュリティで保護する方法についても説明します。

コンテナーへのアクセスの制御に関する推奨事項としては次のようなものがあります。

  • ロールベースのアクセス制御 (RBAC) を使用して、サブスクリプション、リソース グループ、キー コンテナーへのアクセスをロックダウンする。
  • キー コンテナーへの永続的なアクセスを必要とするアプリケーション、サービス、ワークロードに対してキー コンテナー スコープで RBAC ロールを割り当てる
  • Privileged Identity Management (PIM) を使用して、キー コンテナーへの特権アクセスを必要とするオペレーター、管理者、その他のユーザー アカウントに適格な RBAC ロールをジャスト イン タイムで割り当てる
    • 少なくとも 1 人の承認者が必要です
    • 多要素認証を適用する
  • Private Linkファイアウォール、仮想ネットワークを使用してネットワーク アクセスを制限する

コンテナーのデータ保護を有効にする

論理的な削除を有効にした後にもシークレットとキー コンテナーの悪意のあるまたは不注意による削除を防ぐ場合は、消去保護を有効にします。

詳細については、「Azure Key Vault の論理的な削除の概要」を参照してください

ログ記録を有効にする

コンテナーのログ記録を有効にします。 また、アラートを設定します。

Backup

消去保護により、コンテナー オブジェクトの悪意のある削除や不注意による削除を最大 90 日間防ぐことができます。 消去保護が可能なオプションではないシナリオでは、コンテナー内で生成された暗号化キーなど、他のソースから再作成できないコンテナー オブジェクトをバックアップすることをお勧めします。

バックアップの詳細については、Azure Key Vault のバックアップと復元に関する記事を参照してください。

マルチテナント ソリューションと Key Vault

マルチテナント ソリューションは、コンポーネントを使用して複数の顧客またはテナントにサービスを提供するアーキテクチャに基づいて構築されます。 マルチテナント ソリューションは、多くの場合、サービスとしてのソフトウェア (SaaS) ソリューションをサポートするために使用されます。 Key Vault を含むマルチテナント ソリューションを構築する場合は、「マルチテナント機能と Azure Key Vault」を確認してください。

よく寄せられる質問:

Key Vault のロールベースのアクセス制御 (RBAC) アクセス許可モデルのオブジェクト スコープ割り当てを使用して、Key Vault 内のアプリケーション チームに分離性を提供できますか?

いいえ。 RBAC アクセス許可モデルを使用すると、キー コンテナー内の個々のオブジェクトへのアクセス権をユーザーやアプリケーションに割り当てることができますが、その場合のアクセス権は読み取り専用です。 ネットワーク アクセス制御、監視、オブジェクト管理などの管理操作には、コンテナー レベルのアクセス許可が必要です。 アプリケーションごとに 1 つのキー コンテナーを使用すると、アプリケーション チーム間でオペレーターを安全に分離できます。

次のステップ

主な管理のベスト プラクティスについて、さらに学習します。