Что такое хранилище ключей Azure?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 можно зашифровать ключи проверки подлинности, ключи учетной записи хранения, ключи шифрования данных, PFX-файлы и пароли с помощью ключей, защищенных аппаратными модулями безопасности (HSM).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.
  • Управление сертификатами: Подготавливайте и развертывайте общедоступные и частные SSL/TLS-сертификаты для использования с Azure и внутренними подключенными ресурсами.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: Это организация, которая владеет и управляет определенным экземпляром облачных служб Майкрософт.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. Распространенными примерами являются виртуальная машина, учетная запись хранения, веб-приложение, база данных и виртуальная сеть.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.Service principal: An Azure service principal is a security identity that user-created apps, services, and automation tools use to access specific Azure resources. Его следует рассматривать как "удостоверение пользователя" (имя пользователя и пароль или сертификат) с определенной ролью и жестко управляемыми разрешениями.Think of it as a "user identity" (username and password or certificate) with a specific role, and tightly controlled permissions. В отличие от удостоверений пользователей субъект-служба должен выполнять только определенные задачи.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). Это служба Active Directory для клиента.Azure Active Directory (Azure AD): Azure AD is the Active Directory service for a tenant. Каждый каталог содержит один или несколько доменов.Each directory has one or more domains. Каталог может иметь много подписок, связанных с ним, но только один клиент.A directory can have many subscriptions associated with it, but only one tenant.

  • Идентификатор клиента Azure. Это уникальный способ идентификации экземпляра Azure AD в пределах подписки Azure.Azure tenant ID: A tenant ID is a unique way to identify an Azure AD instance within an Azure subscription.

  • Управляемые удостоверения: 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. Управляемое удостоверение упрощает решение этой задачи, предоставляя службам Azure автоматически управляемое удостоверение в Azure AD.Using a managed identity makes solving this problem simpler by giving Azure services an automatically managed identity in Azure AD. Это удостоверение можно использовать для аутентификации хранилища ключей или любой службы, которая поддерживает аутентификацию 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.For more information, see the following image and the overview of managed identities for Azure resources.

    Схема работы управляемых удостоверений для ресурсов Azure

Проверка подлинностиAuthentication

Для выполнения любых операций с Key Vault необходимо сначала пройти проверку подлинности.To do any operations with Key Vault, you first need to authenticate to it. Существует три способа проверки подлинности в Key Vault.There are three ways to authenticate to Key Vault:

  • Управляемые удостоверения для ресурсов Azure. При развертывании приложения на виртуальной машине в Azure можно назначить удостоверение виртуальной машине, имеющей доступ к Key Vault.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.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 автоматически меняет удостоверение.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 VaultKey Vault roles

Используйте таблицу ниже, чтобы лучше понять, как хранилище ключей может помочь в удовлетворении требований разработчиков и администраторов безопасности.Use the following table to better understand how Key Vault can help to meet the needs of developers and security administrators.

RoleRole ПроблемаProblem statement Решение с помощью хранилища ключей AzureSolved by Azure Key Vault
Разработчик приложения AzureDeveloper 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, что и приложения.√ 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.
Руководитель службы безопасностиChief security officer (CSO) «Мне необходимо знать, что аппаратные модули безопасности, используемые в наших приложениях, соответствуют стандарту FIPS 140-2 уровня 2, обеспечивающему безопасное управление ключами.“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».And although we use multiple Azure services and resources, I want to manage the keys from a single location in Azure.”
√ Аппаратные модули безопасности прошли проверку по стандарту FIPS 140-2 уровня 2.√ HSMs are FIPS 140-2 Level 2 validated.

√ Хранилище ключей разработано таким образом, чтобы сотрудники Майкрософт не могли видеть или извлекать ваши ключи.√ Key Vault is designed so that Microsoft does not see or extract your keys.

√ Использование ключа протоколируется почти в реальном времени.√ Key usage is logged in near real time.

√ Хранилище предоставляет единый интерфейс, независимо от количества хранилищ в Azure, поддерживаемых регионов и использующих их приложений.√ 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.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
  • авторизация пользователей или приложений для доступа к хранилищу ключей с целью управления ключами и секретами или их использования;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.For more information, see the Key Vault developer's guide.

Следующие шагиNext steps

Узнайте, как защитить хранилище.Learn how to secure your vault.

Хранилище ключей Azure доступно в большинстве регионов.Azure Key Vault is available in most regions. Дополнительные сведения см. на странице цен на хранилище ключей.For more information, see the Key Vault pricing page.