Azure Key Vault について
Azure Key Vault は、Azure の主要な管理ソリューションの 1 つであり、次の問題の解決に役立ちます。
- シークレットの管理 - Azure Key Vault を使用すると、トークン、パスワード、証明書、API キー、その他のシークレットを安全に格納し、それらへのアクセスを厳密に制御できます。
- キー管理 - Azure Key Vault は、キー管理ソリューションとして使用できます。 Azure Key Vault により、データの暗号化に使用される暗号化キーの作成と制御が簡単になります。
- 証明書の管理 - Azure Key Vault では、Azure および内部の接続されているリソースで使用するためのパブリックおよびプライベートの Transport Layer Security/Secure Sockets Layer (TLS/SSL) 証明書を簡単にプロビジョニング、管理、デプロイできます。
Azure Key Vault には 2 つのサービス レベルがあります。ソフトウェア キーを使用して暗号化する Standard レベルと、ハードウェア セキュリティ モジュール (HSM) で保護されたキーを含む Premium レベルです。 Standard レベルと Premium レベルの比較については、Azure Key Vault の価格のページを参照してください。
Note
ゼロ トラストは、"明示的に検証する"、"最小限の特権アクセスを使用する"、"侵害を想定する" の 3 つの原則で構成されるセキュリティ戦略です。 キー管理を含むデータ保護では、"最小限の特権アクセスを使用する" 原則がサポートされています。 詳細については、「ゼロ トラストとは」を参照してください
Azure Key Vault を使用する理由
アプリケーション シークレットの一元化
アプリケーション シークレットのストレージを Azure Key Vault に一元化することで、その配布を制御できます。 Key Vault によって、シークレットが誤って漏洩する可能性が大幅に小さくなります。 アプリケーション開発者は、Key Vault を使用すると、アプリケーションにセキュリティ情報を格納する必要がなくなります。 アプリケーションにセキュリティ情報を格納する必要がなくなると、コードのこの情報部分を作成する必要がなくなります。 たとえば、必要に応じてデータベースに接続するアプリケーションがあるとします。 この場合、接続文字列をアプリのコードに格納する代わりに、Key Vault に安全に格納できます。
アプリケーションでは、URI を使用して、必要な情報に安全にアクセスできます。 アプリケーションでは、これらの URI を使用して特定のバージョンのシークレットを取得できます。 Key Vault に格納されているシークレット情報のいずれかを保護するためにカスタム コードを記述する必要はありません。
シークレットとキーを安全に保存
キー コンテナーにアクセスする場合、呼び出し元 (ユーザーまたはアプリケーション) がアクセスする前に適切な認証と認可が必要になります。 認証では呼び出し元の ID を確立し、認可では呼び出し元が実行できる操作を決定します。
認証は Microsoft Entra ID によって行われます。 認可は、Azure ロールベースのアクセス制御 (Azure RBAC) または Key Vault のアクセス ポリシーを使用して行うことができます。 Azure RBAC は、コンテナーの管理と、コンテナーに格納されているデータへのアクセスの両方に使用できます。一方、キー コンテナーのアクセス ポリシーは、コンテナーに格納されているデータにアクセスしようとするときにのみ使用できます。
Azure Key Vault は、ハードウェア セキュリティ モジュール (HSM) に格納されたキーを使用して安全に暗号化されます。 Azure は、キー、シークレット および 証明書を、業界標準のアルゴリズム、キー長そしてソフトウェア暗号化モジュールを使用して保護します。 さらに保証を強化する場合、HSM 境界を離れない HSM (タイプ RSA-HSM、EC-HSM、または OCT-HSM) で、キーを生成またはインポートできます。 Azure Key Vault は、Federal Information Processing Standard 140 検証済みソフトウェア暗号化モジュールと HSM を使用します。
最後に、Azure Key Vault は、Microsoft によってお客様のデータが表示または抽出されないように設計されています。
アクセスおよび利用状況の監視
いくつかの Key Vault を作成したら、キーとシークレットがアクセスされる方法とタイミングを監視する必要があります。 アクティビティを監視するには、コンテナーのログ記録を有効にします。 Azure Key Vault を構成して、次の操作を行うことができます。
- ストレージ アカウントへのアーカイブ。
- イベント ハブへのストリーム配信。
- Azure Monitor ログにログを送信します。
ユーザーは、ログを管理できます。ユーザーは、アクセスを制限することによってログを保護することができ、不要になったログを削除することもできます。
簡単なアプリケーション シークレットの管理
重要なデータを格納する場合は、いくつかの手順を実行する必要があります。 セキュリティ情報は、保護されていなければならず、ライフサイクルに従わなければならず、高可用性を備えていなければなりません。 Azure Key Vault では、これらの要件を満たすプロセスが次の方法で簡略化されます。
- ハードウェア セキュリティ モジュールに関するインハウスの知識の必要性を排除する。
- 組織の使用量の急増に対応するために急なスケールアップを可能にする。
- リージョン内およびセカンダリ リージョンに Key Vault の内容をレプリケートする。 データ レプリケーションによって高可用性が確保され、フェールオーバーをトリガーするための管理者の操作が不要になります。
- ポータル、Azure CLI、および PowerShell を使用した標準 Azure 管理オプションを提供する。
- パブリック CA から購入した証明書に関する特定のタスク (登録や更新など) を自動化する。
さらに、Azure Key Vault では、アプリケーション シークレットを分離することができます。 アプリケーションは、アクセスが許可されたコンテナーにのみアクセスし、特定の操作のみを実行するように制限されることがあります。 アプリケーションごとに Azure Key Vault を作成し、Key Vault に格納されているシークレットを特定のアプリケーションと開発者チームに制限することができます。
他の Azure サービスとの統合
Azure 内の安全なストアとして、Key Vault は次のようなシナリオの簡略化に使用されてきました。
- Azure Disk Encryption
- SQL サーバーと Azure SQL Database 内の Always Encrypted と Transparent Data Encryption 機能
- Azure App Service。
Key Vault 自体は、ストレージ アカウント、イベント ハブ、ログ分析と統合できます。