Azure Key Vault 開発者ガイド

Key Vault を使用すると、アプリケーション内から機密情報に安全にアクセスできるようになります。

  • 自分でコードを記述しなくても、キー、シークレット、証明書が保護され、自分のアプリケーションから簡単に使用できます。
  • 顧客自身にキー、シークレット、証明書を所有して管理してもらうことができるため、主要なソフトウェア機能の提供に集中できます。 このようにすると、アプリケーションが顧客のテナント キー、シークレット、証明書に対して義務や潜在的責任を負うことはありません。
  • アプリケーションで署名と暗号化にキーを使用しながら、キー管理をアプリケーションの外部で行うことができます。 キーの詳細については、「キーについて」を参照してください。
  • パスワード、アクセス キー、SAS トークンなどの資格情報をシークレットとして Key Vault に格納することにより、管理することができます。シークレットについてのページを参照してください。
  • 証明書の管理。 詳細については、証明書についてのページを参照してください。

Azure Key Vault の全般的な情報については、「 Azure Key Vault とは」を参照してください。

パブリック プレビュー

Key Vault の新機能のパブリック プレビューは定期的にリリースされます。 パブリック プレビュー機能をお試しいただき、azurekeyvault@microsoft.com (フィードバック用のメール アドレス) までご意見をお寄せください。

Key Vaults の作成と管理

Key Vault の管理は、他の Azure サービスと同様に、Azure Resource Manager サービスを通じて行います。 Azure Resource Manager は、Azure のデプロイおよび管理サービスです。 お使いの Azure アカウント内のリソースを作成、更新、および削除できる管理レイヤーを提供します。 詳細については、Azure Resource Manager に関するページを参照してください。

管理レイヤーへのアクセスは、Azure ロールベースの制御によって制御されます。 Key Vault においては、管理またはコントロール プレーンとも呼ばれる管理レイヤーを使用して、キー コンテナーとその属性 (アクセス ポリシーを含む) を作成および管理できますが、キー、シークレット、証明書はそれができません (これらはデータ プレーンで管理されます)。 定義済みの Key Vault Contributor ロールを使用して、Key Vault への管理アクセス権を付与できます。

キー コンテナー管理のための API と SDK:

Azure CLI PowerShell REST API リソース マネージャー .NET Python Java JavaScript
参照
クイックスタート
参照
クイックスタート
参照 参照
クイックスタート
参照 参照 参照 リファレンス

インストール パッケージとソース コードについては、クライアント ライブラリに関するページを参照してください。

Key Vault 管理プレーンの詳細については、「Azure Key Vault のセキュリティ機能」ページを参照してください

コードでの Key Vault に対する認証

Key Vault には、アクセスを許可するために Azure AD セキュリティ プリンシパルを必要とする Azure AD 認証が使用されています。 Azure AD セキュリティ プリンシパルは、ユーザー、アプリケーション サービス プリンシパル、Azure リソースのマネージド ID、または任意の種類のセキュリティ プリンシパルのグループである場合があります。

認証のベスト プラクティス

Azure にデプロイされたアプリケーションにはマネージド ID を使用することをお勧めします。 マネージド ID がサポートされていない Azure サービスを使用する場合、またはアプリケーションをオンプレミスに展開している場合は、他の可能な方法として証明書を使用したサービス プリンシパルがあります。 そのシナリオでは、証明書が Key Vault に格納され、頻繁にローテーションされることになります。 シークレットを使用したサービス プリンシパルは、開発およびテスト環境で使用できます。また、ユーザー プリンシパルを使用してローカルまたは Cloud Shell で使用することをお勧めします。

環境ごとに推奨されるセキュリティ プリンシパル:

  • 運用環境:
    • 証明書を使用したマネージド ID またはサービス プリンシパル
  • テストおよび開発環境:
    • マネージド ID、証明書を使用したサービス プリンシパル、またはシークレットを指定したサービス プリンシパル
  • ローカル開発:
    • シークレットを指定したユーザー プリンシパルまたはサービス プリンシパル

上記の認証シナリオは、Azure ID クライアント ライブラリ でサポートされており、Key Vault SDK と統合されています。 Azure ID ライブラリは、コードを変更することなく、異なる複数の環境やプラットフォームで使用できます。 Azure ID を使用すると、Azure CLI、Visual Studio、Visual Studio Code などによって Azure にログインしたユーザーから、認証トークンを自動的に取得することもできます。

Azure ID クライアント ライブラリの詳細については、以下を参照してください。

Azure ID クライアント ライブラリ

.NET Python Java JavaScript
Azure Identity SDK .NET Azure Identity SDK Python Azure Identity SDK Java Azure Identity SDK JavaScript

注意

Key Vault .NET SDK バージョン 3 で推奨されていたアプリ認証ライブラリは、現在非推奨になりました。 Key Vault .NET SDK バージョン 4 に移行するには、AppAuthentication から Azure.Identity への移行ガイダンスに関する記事を参照してください。

アプリケーションで Key Vault に対して認証する方法に関するチュートリアルについては、以下を参照してください。

キー、証明書、シークレットの管理

キー、シークレット、および証明書へのアクセスは、データ プレーンによって制御されます。 データ プレーンのアクセス制御は、ローカルのコンテナー アクセス ポリシーまたは Azure RBAC を使用して行うことができます。

キーの API と SDK

Azure CLI PowerShell REST API リソース マネージャー .NET Python Java JavaScript
参照
クイックスタート
参照
クイックスタート
参照 参照
クイックスタート
参照
クイックスタート
参照
クイックスタート
参照
クイックスタート
参照
クイックスタート

証明書の API と SDK

Azure CLI PowerShell REST API リソース マネージャー .NET Python Java JavaScript
参照
クイックスタート
参照
クイックスタート
参照 該当なし 参照
クイックスタート
参照
クイックスタート
参照
クイックスタート
参照
クイックスタート

シークレットの API と SDK

Azure CLI PowerShell REST API リソース マネージャー .NET Python Java JavaScript
参照
クイックスタート
参照
クイックスタート
参照 参照
クイックスタート
参照
クイックスタート
参照
クイックスタート
参照
クイックスタート
参照
クイックスタート

インストール パッケージとソース コードについては、クライアント ライブラリに関するページを参照してください。

Key Vault データ プレーンのセキュリティの詳細については、「Azure Key Vault のセキュリティ機能」を参照してください。

コード例

アプリケーションで Key Vault を使用する詳細な例については、以下をご覧ください。

方法

次の記事とシナリオは、Azure Key Vault を操作するためのタスク固有のガイダンスを提供します。

Key Vault との統合

Key Vault を使用したり、Key Vault と統合したりする他のシナリオとサービスについては、以下の記事で取り上げています。

  • 保存データの暗号化によって、データが永続化されるときにエンコード (暗号化) することができます。 データ暗号化キーは多くの場合、さらにアクセスを制限するため、Azure Key Vault のキーの暗号化キーで暗号化されます。
  • Azure Information Protection では、独自のテナント キーを管理できます。 たとえば、テナント キーの管理をマイクロソフトに任せる (既定値) 代わりに、組織に適用される特定の規則を遵守する独自のテナント キーを管理できます。 独自のテナント キーの管理は、BYOK (Bring Your Own Key: 独自のキーを持ち込むの意) とも呼ばれます。
  • Azure Private Link サービスを使用すると、自分の仮想ネットワーク内のプライベート エンドポイント経由で、Azure サービス (Azure Key Vault、Azure Storage、Azure Cosmos DB など) と、Azure でホストされている顧客またはパートナー サービスにアクセスできます。
  • Key Vault と Event Grid の統合により、キー コンテナーに格納されているシークレットの状態が変更されたときにユーザーに通知できます。 アプリケーションに新しいバージョンのシークレットを配布したり、期限切れが近いシークレットをローテーションしたりして、停止を防ぐことができます。
  • Azure Devops シークレットを Key Vault で不要なアクセスから保護することができます。
  • DataBricks の Key Vault に格納されているシークレットを使用して Azure Storage に接続する
  • Kubernetes 上のシークレット ストア CSI ドライバー向けに Azure Key Vault プロバイダーを構成して実行する

Key Vault の概要と概念

ソーシャル