Поделиться через


Шифрование данных с помощью ключей, управляемых клиентом

Это важно

Azure Cosmos DB для PostgreSQL больше не поддерживается для новых проектов. Не используйте эту службу для новых проектов. Вместо этого используйте одну из этих двух служб:

Данные, хранящиеся в кластере Azure Cosmos DB для PostgreSQL, автоматически шифруются с помощью ключей, управляемых корпорацией Майкрософт. Эти ключи называются ключами, управляемыми службой. Azure Cosmos DB для PostgreSQL по умолчанию использует шифрование Azure Storage для шифрования неактивных данных с помощью ключей, управляемых службой. При необходимости можно добавить дополнительный уровень безопасности, включив шифрование с помощью ключей, управляемых клиентом.

Ключи, управляемые службой

Служба Azure Cosmos DB для PostgreSQL использует проверенный криптографический модуль FIPS 140-2 для шифрования неактивных данных. Все данные, включая резервные копии и временные файлы, созданные при выполнении запросов, шифруются на диске. Служба использует 256-разрядный шифр AES, доступный при шифровании службы хранилища Azure. Ключами управляет система. Шифрование хранилища всегда включено, и его нельзя отключить.

Ключи, управляемые клиентом

Во многих организациях требуется полный контроль доступа к данным с помощью управляемого клиентом ключа (CMK). Шифрование данных с помощью ключей, управляемых клиентом для Azure Cosmos DB для PostgreSQL, позволяет использовать собственный ключ для защиты неактивных данных. Он также позволяет организациям реализовать разделение обязанностей в управлении ключами и данными. С помощью шифрования, управляемого клиентом, вы несете ответственность за выполнение операций и полное управление жизненным циклом ключа, разрешениями на использование и аудитом операций.

Шифрование данных с помощью ключей, управляемых клиентом для Azure Cosmos DB для PostgreSQL, устанавливается на уровне сервера. Данные, включая резервные копии, шифруются на диске. Это шифрование включает временные файлы, созданные при выполнении запросов. Для данного кластера ключ, управляемый клиентом, называемый ключом шифрования ключей (KEK), используется для шифрования ключа шифрования данных службы (DEK). KEK представляет собой асимметричный ключ и хранится в принадлежащем клиенту и управляемом им экземпляре Azure Key Vault.

Описание
Ключ шифрования данных (DEK) Ключ шифрования данных — это симметричный ключ AES256, используемый для шифрования секции или блока данных. Шифрование каждого блока данных другим ключом создает дополнительные сложности для выполнения атак в отношении зашифрованных данных. Поставщик ресурсов или экземпляр приложения, который шифрует и расшифровывает определенный блок, требует доступа к пакетам DEK. Когда DEK заменяется новым ключом, повторного шифрования этим ключом требуют только данные в его связанном блоке.
Ключ шифрования ключей (KEK) Ключ шифрования — это ключ, используемый для шифрования ключей DEK. KEK, который никогда не покидает хранилища ключей, позволяет шифровать и контролировать сами DEK. Сущность, у которой есть доступ к ключу KEK, может отличаться от сущности, требующей ключа DEK. Так как KEK требуется для расшифровки ключей, KEK фактически является одной точкой и удалением KEK фактически удаляет пакеты DEK.

Примечание.

Azure Key Vault — это облачная система управления ключами. Он высокодоступен и обеспечивает масштабируемое, безопасное хранилище для криптографических ключей RSA, при необходимости поддерживаемое FIPS 140 проверенными аппаратными модулями безопасности (HSM). Хранилище ключей не разрешает прямой доступ к хранимым ключам, но предоставляет услуги шифрования и дешифрования для авторизованных лиц. Хранилище ключей может создать ключ, импортировать его или передать с локального устройства HSM.

Ключи DEK, зашифрованные с помощью ключей KEK, хранятся отдельно. Расшифровать ключи DEK может только сущность с доступом к ключу KEK. Для получения дополнительной информации см. раздел "Шифрование данных в состоянии покоя. Безопасность.".

Как работает шифрование данных с помощью управляемого клиентом ключа

Чтобы кластер использовал управляемые клиентом ключи, хранящиеся в Key Vault для шифрования DEK, администратор Key Vault предоставляет следующие права доступа к серверу:

Описание
Получить Позволяет извлечь публичную часть и свойства ключа из хранилища ключей.
wrapKey Включает шифрование DEK. Зашифрованный DEK хранится в Azure Cosmos DB для PostgreSQL.
unwrapKey Позволяет расшифровку DEK. Azure Cosmos DB для PostgreSQL требует расшифрованного DEK для шифрования и расшифровки данных.

Администратор хранилища ключей может также включить ведение журнала событий аудита Key Vault, чтобы их можно было проверить позже. Когда кластер Azure Cosmos DB для PostgreSQL настроен на использование управляемого клиентом ключа, хранящегося в хранилище ключей, кластер отправляет deK в хранилище ключей для шифрования. Key Vault возвращает зашифрованный ключ DEK, который сохраняется в базе данных пользователя. Аналогично при необходимости сервер отправляет защищенный ключ DEK в хранилище ключей для расшифровки. Аудиторы могут использовать Azure Monitor для просмотра журналов событий аудита Key Vault, если ведение журнала включено.

Снимок экрана: архитектура шифрования данных с помощью ключей, управляемых клиентом.

Льготы

Шифрование данных с помощью ключей, управляемых клиентом для Azure Cosmos DB для PostgreSQL, обеспечивает следующие преимущества:

  • Вы полностью управляете доступом к данным с возможностью удаления ключа и делает базу данных недоступной.
  • Полный контроль над жизненным циклом ключа, включая смену ключа в соответствии с конкретными корпоративными политиками.
  • Централизованное управление ключами и их организация в Azure Key Vault.
  • Возможность реализовать разделение обязанностей между сотрудниками службы безопасности, администраторами баз данных и системными администраторами.
  • Включение шифрования не имеет дополнительных эффектов производительности с ключами, управляемыми клиентом, или без них. Azure Cosmos DB для PostgreSQL опирается на Azure Storage для шифрования данных как в сценариях с ключами, управляемыми клиентами, так и в сценариях с ключами, управляемыми службами.

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