Создаёт документ с ключом

# MongoDB\Driver\ClientEncryption::createDataKey

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::createDataKey — Создаёт документ с ключом

### Описание

final public function MongoDB\Driver\ClientEncryption::createDataKey(string `$kmsProvider`, ?array `$options` = `null`): MongoDB\BSON\Binary

Создаёт новый документ с ключом шифрования и кладёт его в коллекцию хранилища ключей.

### Список параметров

`kmsProvider`
  Провайдер KMS (`"local"`, `"aws"`), который будет использоваться для шифрования нового ключа данных.
`options`

  Опции
  Опция | Тип | Описание
  --- | --- | ---
  masterKey | array | Документ masterKey определяет специфический для KMS ключ, используемый для шифрования нового ключа данных. Параметр обязателен, если параметр `kmsProvider` не является `"local"`.
  Параметры провайдера `"aws"`
  Параметр | Тип | Описание
  --- | --- | ---
  region | Строка | Обязательный.
  key | Строка | Обязательный. Имя ресурса Amazon (ARN) для главного ключа клиента AWS (CMK).
  endpoint | Строка | Необязательный. Альтернативный идентификатор хоста для отправки запросов KMS. Может содержать номер порта.
  Параметры провайдера `"azure"`
  Параметр | Тип | Описание
  --- | --- | ---
  keyVaultEndpoint | Строка | Обязательный. Хост с необязательным портом (например, "example.vault.azure.net").
  keyName | Строка | Обязательный.
  keyVersion | Строка | Необязательный. Определённая версия именованного ключа. По умолчанию — первичная версия ключа.
  Параметры провайдера `"gcp"`
  Параметр | Тип | Описание
  --- | --- | ---
  projectId | Строка | Обязательный.
  location | Строка | Обязательный.
  keyRing | Строка | Обязательный.
  keyName | Строка | Обязательный.
  keyVersion | Строка | Необязательный. Определённая версия именованного ключа. По умолчанию — первичная версия ключа.
  endpoint | Строка | Необязательный. Хост с дополнительным портом. По умолчанию "cloudkms.googleapis.com"..
  Параметры провайдера `"kmip"`
  Параметр | Тип | Описание
  --- | --- | ---
  keyId | Строка | Необязательный. Уникальный идентификатор 96-байтового управляемого объекта секретных данных протокола KMIP. При пропуске параметра драйвер создаёт случайный 96-байтовый управляемый объект секретных данных протокола KMIP.
  endpoint | Строка | Необязательный. Хост с дополнительным портом.
  delegated | bool | Необязательный. Установка значения `true` передаёт управление расшифровкой ключа KMIP-серверу.
  keyAltNames | array | Опциональный список альтернативных имён использующихся для ссылки на ключ. Если ключ создан с использованием альтернативных имён, то при шифровании можно ссылаться на уникальное альтернативное имя вместо `_id`.
  keyMaterial | MongoDB\BSON\Binary | Необязательное 96-байтовое значение для использования в качестве материала пользовательского ключа для создаваемого ключа данных. Если задан keyMaterial, то используется пользовательский материал ключа для шифрования и расшифровки данных. В противном случае материал ключа для нового ключа данных генерируется из криптографически защищённого случайного устройства.

### Возвращаемые значения

Возвращает идентификатор нового ключа в виде объекта MongoDB\BSON\Binary с подтипом 4 (UUID).

### Ошибки

- При ошибке парсинга аргумента метод выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException.
- При неудачном соединении с сервером (кроме ошибок аутентификации) метод выбрасывает исключение MongoDB\Driver\Exception\ConnectionException.
- При неудачной аутентификации метод выбрасывает исключение MongoDB\Driver\Exception\AuthenticationException.
- Выбрасывает исключение MongoDB\Driver\Exception\RuntimeException в случае возникновения других ошибок.

### Список изменений

Версия | Описание
--- | ---
PECL mongodb 1.20.0 | Добавлена опция `"delegated"` к параметрам masterKey поставщика KMIP.
PECL mongodb 1.15.0 | Добавлена опция `"keyMaterial"`.
PECL mongodb 1.10.0 | В качестве поставщиков KMS для шифрования на стороне клиента теперь поддерживаются Azure и GCP.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open