Azure Key Vault とはWhat is Azure Key Vault?

Azure Key Vault は、次の問題の解決に役立ちます。Azure Key Vault helps solve the following problems:

  • シークレットの管理 - Azure Key Vault を使用すると、トークン、パスワード、証明書、API キー、その他のシークレットを安全に格納し、それらへのアクセスを厳密に制御できます。Secrets Management - Azure Key Vault can be used to Securely store and tightly control access to tokens, passwords, certificates, API keys, and other secrets.
  • キー管理 - Azure Key Vault は、キー管理ソリューションとしても使用できます。Key Management - Azure Key Vault can also be used as a Key Management solution. Azure Key Vault により、データの暗号化に使用される暗号化キーの作成と制御が簡単になります。Azure Key Vault makes it easy to create and control the encryption keys used to encrypt your data.
  • 証明書の管理 - Azure Key Vault は、Azure および内部の接続されているリソースで使用するためのパブリックおよびプライベートの Secure Sockets Layer/Transport Layer Security (SSL/TLS) 証明書を簡単にプロビジョニング、管理、デプロイすることができるサービスでもあります。Certificate Management - Azure Key Vault is also a service that lets you easily provision, manage, and deploy public and private Secure Sockets Layer/Transport Layer Security (SSL/TLS) certificates for use with Azure and your internal connected resources.
  • ハードウェア セキュリティ モジュールに基づくシークレットの格納 - シークレットとキーは、ソフトウェアまたは FIPS 140-2 レベル 2 検証済み HSM で保護できます。Store secrets backed by Hardware Security Modules - The secrets and keys can be protected either by software or FIPS 140-2 Level 2 validates HSMs.

基本的な概念Basic concepts

Azure Key Vault は、シークレットを安全に保管し、それにアクセスするためのツールです。Azure Key Vault is a tool for securely storing and accessing secrets. シークレットは、API キー、パスワード、証明書など、アクセスを厳密に制御する必要がある任意のものです。A secret is anything that you want to tightly control access to, such as API keys, passwords, or certificates. Vault はシークレットの論理グループです。A Vault is logical group of secrets. Key Vault で操作を行うには、まず、それに対して認証する必要があります。Now to do any operations with Key Vault you first need to authenticate to it.

基本的には、次の 3 つの方法で Key Vault に対する認証ができます。Fundamentally there are three ways to authenticate to Key Vault:

  1. Azure リソースのマネージド ID の使用 (推奨でありベスト プラクティス):Azure の仮想マシンにアプリをデプロイするとき、Key Vault にアクセスできる仮想マシンに ID を割り当てることができます。Using managed identities for Azure resources (Recommended and Best Practice): When you deploy an App on a Virtual Machine in Azure, you can assign an identity to your Virtual Machine that has access to Key Vault. こちらに記載されている他の Azure リソースにも ID を割り当てることができます。You can also assign identities to other azure resources that are listed here. この手法の利点は、最初のシークレットのローテーションがアプリ/サービスで管理されないことにあります。The benefit with this approach is the app / service is not managing the rotation of the first secret. Azure では、ID が自動的にローテーションされます。Azure automatically rotates the identity.
  2. サービス プリンシパルと証明書の使用: 2 つ目のオプションは、サービス プリンシパルと、Key Vault にアクセスできる関連証明書を使用することです。Using Service Principal and Certificate: The second option is to use a Service Principal and an associated certificate that has access to Key Vault. 証明書ローテーションの責任はアプリケーションの所有者または開発者にあり、そのため、推奨されません。The onus of rotating the certificate is on the application owner or developer and hence this is not recommended.
  3. サービス プリンシパルとシークレットの使用: 3 つ目のオプション (非推奨) は、サービス プリンシパルとシークレットを使用して Key Vault に対する認証を行うことです。Using Service Principal and Secret: The third option (not preferred option) is to use a Service Principal and a secret to authenticate to Key Vault.

注意

Key Vault に対する認証に使用するブートストラップ シークレットを自動ローテーションするのは難しいため、上記の 3 番目のオプションは使用すべきではありません。The 3rd option above should not be used as it's hard to auto rotate the bootstrap secret used to authenticate to Key Vault.

以下に重要な用語を示します。Here are some key terms:

  • Tenant: テナントは、Microsoft クラウド サービスの特定のインスタンスを所有および管理する組織です。Tenant: A tenant is the organization that owns and manages a specific instance of Microsoft cloud services. この用語は、組織の Azure と Office 365 のサービスのセットを正確に指すために最も頻繁に使用されます。It’s most often used in an exact manner to refer to the set of Azure and Office 365 services for an organization.
  • コンテナーの所有者:コンテナー所有者は、キー コンテナーを作成し、それにフル アクセスして制御することができます。Vault owner: A vault owner can create a key vault and gain full access and control over it. コンテナー所有者は、だれがシークレットとキーにアクセスしたかをログに記録するように監査を設定することもできます。The vault owner can also set up auditing to log who accesses secrets and keys. 管理者は、キーのライフサイクルを制御できます。Administrators can control the key lifecycle. 新しいバージョンのキーへの切り替え、キーのバックアップ、および関連タスクを行うことができます。They can roll to a new version of the key, back it up, and do related tasks.
  • コンテナー コンシューマー:コンテナー コンシューマーは、コンテナー所有者によってアクセスを許可されると、キー コンテナー内のアセットに対してアクションを実行できます。Vault consumer: A vault consumer can perform actions on the assets inside the key vault when the vault owner grants the consumer access. 使用可能なアクションは、付与されるアクセス許可によって異なります。The available actions depend on the permissions granted.
  • リソース:リソースは、Azure を通じて使用できる、管理可能な要素です。Resource: A resource is a manageable item that's available through Azure. 一般的なリソースとしては、仮想マシン、ストレージ アカウント、Web アプリ、データベース、仮想ネットワークなどがありますが、他にもさまざまなリソースが存在します。Some common resources are a virtual machine, storage account, web app, database, and virtual network, but there are many more.
  • [リソース グループ]:リソース グループは、Azure ソリューションの関連するリソースを保持するコンテナーです。Resource group: A resource group is a container that holds related resources for an Azure solution. リソース グループには、ソリューションのすべてのリソースか、グループとして管理したいリソースのみを含めることができます。The resource group can include all the resources for the solution, or only those resources that you want to manage as a group. 組織にとって最も有用になるように、リソースをリソース グループに割り当てる方法を決定します。You decide how you want to allocate resources to resource groups, based on what makes the most sense for your organization.
  • サービス プリンシパル - Azure サービス プリンシパルは、ユーザーによって作成されたアプリやサービス、オートメーション ツールが特定の Azure リソースにアクセスする際に使うセキュリティ ID です。Service Principal - An Azure service principal is a security identity used by user-created apps, services, and automation tools to access specific Azure resources. アクセス許可が厳しく管理された、特定のロールが与えられた "ユーザー ID" (ユーザー名とパスワードまたは証明書) と考えてください。Think of it as a 'user identity' (username and password or certificate) with a specific role, and tightly controlled permissions. 一般的なユーザー ID とは異なり、サービス プリンシパルで行うタスクは制限する必要があります。A service principal should only need to do specific things, unlike a general user identity. 管理タスクを実行するために必要な最小限のアクセス許可レベルだけを与えるようにすれば、セキュリティは向上します。It improves security if you only grant it the minimum permissions level needed to perform its management tasks.
  • Azure Active Directory (Azure AD):Azure AD は、テナント向けの Active Directory サービスです。Azure Active Directory (Azure AD): Azure AD is the Active Directory service for a tenant. 各ディレクトリには、1 つまたは複数のドメインが存在します。Each directory has one or more domains. ディレクトリには複数のサブスクリプションを関連付けることができますが、テナントは 1 つだけです。A directory can have many subscriptions associated with it, but only one tenant.
  • Azure テナント ID:テナント ID は、Azure サブスクリプション内で Azure AD インスタンスを識別するための独自の方法です。Azure tenant ID: A tenant ID is a unique way to identify an Azure AD instance within an Azure subscription.
  • Azure リソースのマネージド ID:Azure Key Vault は、資格情報およびその他のキーやシークレットを安全に保管する方法を提供しますが、コードは Key Vault に認証してそれらを取得する必要があります。Managed identities for Azure resources: Azure Key Vault provides a way to securely store credentials and other keys and secrets, but your code needs to authenticate to Key Vault to retrieve them. マネージド ID を使用すると、Azure AD で自動的に管理される ID が Azure サービスに提供されるため、この問題の解決が簡単になります。Using a managed identity makes solving this problem simpler by giving Azure services an automatically managed identity in Azure AD. この ID を使用すると、コードに資格情報が含まれていなくても、Key Vault または Azure AD 認証をサポートする任意のサービスの認証を受けることができます。You can use this identity to authenticate to Key Vault or any service that supports Azure AD authentication, without having any credentials in your code. 詳細については、下の画像と Azure リソースのマネージド ID の概要ページを参照してください。For more information, see the image below and the managed identities for Azure resources overview.

    Azure リソースのマネージド ID の動作を表す図

Key Vault の役割Key Vault roles

次の表を使用して、Key Vault が開発者やセキュリティ管理者のニーズを満たすのに役立つ方法を十分に理解します。Use the following table to better understand how Key Vault can help to meet the needs of developers and security administrators.

RoleRole 問題の説明Problem statement Azure Key Vault による解決Solved by Azure Key Vault
Azure アプリケーションの開発者Developer for an Azure application "署名と暗号化のキーを使用する Azure のアプリケーションを作成したいが、ソリューションが地理的に分散したアプリケーションに合うように、これらのキーをアプリケーションの外部に設定したい。“I want to write an application for Azure that uses keys for signing and encryption, but I want these keys to be external from my application so that the solution is suitable for an application that is geographically distributed.

これらのキーとシークレットは、自分でコードを記述せずに保護したい。I want these keys and secrets to be protected, without having to write the code myself. さらに、簡単にアプリケーションから最適なパフォーマンスで使用できるようにしたい。"I also want these keys and secrets to be easy for me to use from my applications, with optimal performance.”
√ キーは、資格情報コンテナーに格納され、必要に応じて、URI によって呼び出されます。√ Keys are stored in a vault and invoked by URI when needed.

√ キーは、業界標準のアルゴリズム、キーの長さ、ハードウェア セキュリティ モジュールを使用して、Azure によってセキュリティで保護されています。√ Keys are safeguarded by Azure, using industry-standard algorithms, key lengths, and hardware security modules.

√ キーは、アプリケーションと同じ Azure データセンターに存在する HSM で処理されます。√ Keys are processed in HSMs that reside in the same Azure datacenters as the applications. この方法では、オンプレミスなどの別の場所に存在するキーより、信頼性が向上し、待機時間が削減されます。This method provides better reliability and reduced latency than keys that reside in a separate location, such as on-premises.
サービスとしてのソフトウェア (SaaS) の開発者Developer for software as a service (SaaS) "顧客のテナント キーやシークレットに対して義務や潜在的責任を負いたくない。“I don’t want the responsibility or potential liability for my customers’ tenant keys and secrets.

顧客がキーを自分で所有して管理すれば、オペレーターは自分の専門分野である、中心的なソフトウェア機能を提供することに集中できます。I want customers to own and manage their keys so that I can concentrate on doing what I do best, which is providing the core software features.”
√ 顧客は Azure に自分のキーをインポートして管理できます。√ Customers can import their own keys into Azure, and manage them. SaaS アプリケーションが顧客のキーを使用して暗号化操作を実行する必要がある場合は、Key Vault がアプリケーションに代わって、これらの操作を行います。When a SaaS application needs to perform cryptographic operations by using their customers’ keys, Key Vault does these operations on behalf of the application. アプリケーションには、顧客のキーは表示されません。The application does not see the customers’ keys.
最高セキュリティ責任者 (CSO)Chief security officer (CSO) "アプリケーションが、セキュリティで保護されたキー管理のために FIPS 140-2 レベル 2 HSM に準拠していることを確認したい。“I want to know that our applications comply with FIPS 140-2 Level 2 HSMs for secure key management.

組織が、キーのライフサイクルを管理し、キーの使用状況を確実に監視できるようにしたい。I want to make sure that my organization is in control of the key lifecycle and can monitor key usage.

複数の Azure サービスとリソースを使用しているが、Azure の 1 つの場所からキーを管理したい。"And although we use multiple Azure services and resources, I want to manage the keys from a single location in Azure.”
√ HSM は、FIPS 140-2 レベル 2 で検証済みです。√ HSMs are FIPS 140-2 Level 2 validated.

√ Key Vault は、マイクロソフトがキーを確認または抽出しないように作られています。√ Key Vault is designed so that Microsoft does not see or extract your keys.

√ キーの使用状況は、ほぼリアルタイムで記録されます。√ Key usage is logged in near real time.

√ コンテナーは、Azure にあるコンテナーの数、サポートするリージョン、使用するアプリケーションに関係なく、1 つのインターフェイスを提供します。√ The vault provides a single interface, regardless of how many vaults you have in Azure, which regions they support, and which applications use them.

Azure サブスクリプションを持つユーザーはだれでも、Key Vault を作成して使用できます。Anybody with an Azure subscription can create and use key vaults. Key Vault は開発者とセキュリティ管理者にとってメリットがありますが、組織の他の Azure サービスを管理する組織の管理者がこれを実装し、管理できます。Although Key Vault benefits developers and security administrators, it can be implemented and managed by an organization’s administrator who manages other Azure services for an organization. たとえば、この管理者は Azure のサブスクリプションを使用してサインインし、キーの保存先に組織の資格情報コンテナーを作成し、次のような運用タスクを担当できます。For example, this administrator can sign in with an Azure subscription, create a vault for the organization in which to store keys, and then be responsible for operational tasks, such as:

  • キーやシークレットの作成やインポートCreate or import a key or secret
  • キーやシークレットの取り消しや削除Revoke or delete a key or secret
  • ユーザーまたはアプリケーションに Key Vault へのアクセスを許可します。結果、ユーザーまたはアプリケーションはそのキーおよびシークレットを管理または使用できるようになります。Authorize users or applications to access the key vault, so they can then manage or use its keys and secrets
  • キーの使用状況の構成 (署名や暗号化など)Configure key usage (for example, sign or encrypt)
  • キーの使用状況の監視Monitor key usage

この管理者は、開発者にアプリケーションから呼び出す URI を提供し、セキュリティ管理者にキーの使用状況のログ情報を提供します。This administrator would then provide developers with URIs to call from their applications, and provide their security administrator with key usage logging information.

![Azure Key Vault の概要][1]![Overview of Azure Key Vault][1]

開発者は、API を使用してキーを直接管理することもできます。Developers can also manage the keys directly, by using APIs. 詳細については、「 Azure Key Vault 開発者ガイド」を参照してください。For more information, see the Key Vault developer's guide.

次の手順Next steps

コンテナーをセキュリティで保護する方法について学ぶ [1]: ./media/key-vault-whatis/AzureKeyVault_overview.png Azure Key Vault はほとんどのリージョンで利用できます。Learn how to secure your vault [1]: ./media/key-vault-whatis/AzureKeyVault_overview.png Azure Key Vault is available in most regions. 詳細については、 Key Vault の価格のページを参照してください。For more information, see the Key Vault pricing page.