Azure Key Vault とはWhat is Azure Key Vault?

クラウドのアプリケーションやサービスでは暗号化キーとシークレットを使用します。これは、情報を安全な状態に保つのに役立ちます。Cloud applications and services use cryptographic keys and secrets to help keep information secure. Azure Key Vault でこれらのキーとシークレットが保護されます。Azure Key Vault safeguards these keys and secrets. ユーザーは、Key Vault を使用するときに、ハードウェア セキュリティ モジュール (HSM) で保護されたキーを使用して、認証キー、ストレージ アカウント キー、データ暗号化キー、.pfx ファイル、およびパスワードを暗号化することができます。When you use Key Vault, you can encrypt authentication keys, storage account keys, data encryption keys, .pfx files, and passwords by using keys that are protected by hardware security modules (HSMs).

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

  • シークレットの管理:トークン、パスワード、証明書、API キー、その他のシークレットを安全に格納し、それらへのアクセスを厳密に制御します。Secret management: Securely store and tightly control access to tokens, passwords, certificates, API keys, and other secrets.
  • キーの管理:データを暗号化する暗号化キーを作成して制御します。Key management: Create and control encryption keys that encrypt your data.
  • 証明書の管理:Azure および内部の接続されているリソースで使用するためのパブリックおよびプライベートの Secure Sockets Layer/Transport Layer Security (SSL/TLS) 証明書をプロビジョニング、管理、デプロイします。Certificate management: 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.
  • HSM によってバックアップされたシークレットを格納する:ソフトウェアまたは FIPS 140-2 レベル 2 で検証済みの HSM を使用します。これは、シークレットやキーを保護するのに役立ちます。Store secrets backed by HSMs: Use either software or FIPS 140-2 Level 2 validated HSMs to help protect secrets and keys.

基本的な概念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. コンテナーはシークレットの論理グループです。A vault is logical group of secrets.

その他の重要な用語を次に示します。Here are other important 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 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 アプリ、データベース、仮想ネットワークなどがあります。Common examples are virtual machine, storage account, web app, database, and virtual network. 他にもさまざまなリソースが存在します。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 that user-created apps, services, and automation tools use 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 grant it only the minimum permission level that it needs 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.

  • マネージド ID:Azure Key Vault は、資格情報およびその他のキーやシークレットを安全に保管する方法を提供しますが、コードは Key Vault に認証してそれらを取得する必要があります。Managed identities: 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 following image and the overview of managed identities for Azure resources.

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

AuthenticationAuthentication

Key Vault で操作を行うには、まず、それを認証する必要があります。To do any operations with Key Vault, you first need to authenticate to it. 次の 3 つの方法で Key Vault を認証します。There are three ways to authenticate to Key Vault:

  • Azure リソースのマネージド ID:Azure の仮想マシンにアプリをデプロイするときに、Key Vault にアクセスできる仮想マシンに ID を割り当てることができます。Managed identities for Azure resources: 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. この手法の利点は、最初のシークレットのローテーションがアプリやサービスで管理されないことにあります。The benefit of this approach is that the app or service isn't managing the rotation of the first secret. Azure では、ID が自動的にローテーションされます。Azure automatically rotates the identity. ベスト プラクティスとして、この手法をお勧めします。We recommend this approach as a best practice.
  • サービス プリンシパルと証明書:サービス プリンシパルと、Key Vault にアクセスできる関連証明書を使用することができます。Service principal and certificate: You can use a service principal and an associated certificate that has access to Key Vault. アプリケーションの所有者または開発者が証明書をローテーションする必要があるため、この手法はお勧めできません。We don't recommend this approach because the application owner or developer must rotate the certificate.
  • サービス プリンシパルとシークレット: サービス プリンシパルとシークレットを使用して Key Vault に対する認証を行うことはできますが、これはお勧めできません。Service principal and secret: Although you can use a service principal and a secret to authenticate to Key Vault, we don't recommend it. Key Vault に対する認証で使用されるブートストラップ シークレットを自動的にローテーションするのは困難です。It's hard to automatically rotate the bootstrap secret that's used to authenticate to Key Vault.

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's 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 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. たとえば、この管理者は 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 like these:

  • キーやシークレットの作成やインポート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 then gives developers URIs to call from their applications. また、この管理者は、セキュリティ管理者にキーの使用状況のログ情報を提供します。This administrator also gives key usage logging information to the security administrator.

Azure Key Vault の動作の概要

開発者は、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

コンテナーをセキュリティで保護する方法を学習する。Learn how to secure your vault.

Azure Key Vault は、ほとんどのリージョンで使用できます。Azure Key Vault is available in most regions. 詳細については、 Key Vault の価格のページを参照してください。For more information, see the Key Vault pricing page.