Documentación offline PHP master

MongoDB\Driver\ClientEncryption::createDataKey

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

MongoDB\Driver\ClientEncryption::createDataKey

Crea un documento de clave

Descripción#

php final public MongoDB\Driver\ClientEncryption::createDataKey(string $kmsProvider, [array $options]): MongoDB\BSON\Binaryphp

Crea un nuevo documento de clave e inserta en la colección de almacén de claves.

Parámetros#

kmsProvider
El proveedor KMS (por ejemplo "local", "aws") que se utilizará para cifrar la nueva clave de datos.

options

Opciones de clave de datos
Opción Tipo Descripción
masterKey array

El documento masterKey identifica una clave específica del KMS utilizada para cifrar la nueva clave de datos. Esta opción es obligatoria a menos que kmsProvider sea "local".

Opciones del proveedor "aws"
Opción Tipo Descripción
region string Requis.
key string Requis. El nombre de recurso Amazon (ARN) de la clave maestra del cliente AWS (CMK).
endpoint string Opcional. Un identificador de host alternativo para enviar las solicitudes KMS. Puede incluir el número de puerto.
Opciones del proveedor "azure"
Opción Tipo Descripción
keyVaultEndpoint string Requis. Host con puerto opcional (por ejemplo, "example.vault.azure.net").
keyName string Requis.
keyVersion string Opcional. Una versión específica de la clave nombrada. De forma predeterminada, se utiliza la versión primaria de la clave.
Opciones del proveedor "gcp"
Opción Tipo Descripción
projectId string Requis.
location string Requis.
keyRing string Requis.
keyName string Requis.
keyVersion string Opcional. Una versión específica de la clave nombrada. De forma predeterminada, se utiliza la versión primaria de la clave.
endpoint string Opcional. Host con puerto opcional. El valor predeterminado es "cloudkms.googleapis.com".
Opciones del proveedor "kmip"
Opción Tipo Descripción
keyId string Opcional. Identificador único de un objeto gestionado de 96 bytes de datos secretos KMIP. Si no se especifica, el controlador crea un objeto gestionado aleatorio de 96 bytes de datos secretos KMIP.
endpoint string Opcional. Host con puerto opcional.
delegated bool Opcional. Si es true, esta clave debe ser descifrada por el servidor KMIP.
keyAltNames array

Una lista opcional de nombres alternativos de tipo string utilizados para referenciar una clave. Si se crea una clave con nombres alternativos, entonces el cifrado puede referirse a la clave mediante el nombre alternativo único en lugar de por _id.

keyMaterial MongoDB\BSON\Binary

Un valor opcional de 96 bytes para usar como material de clave personalizado para la clave de datos que se está creando. Si se proporciona keyMaterial, el material de clave personalizado se utiliza para cifrar y descifrar datos. De lo contrario, el material de la nueva clave de datos se genera a partir de un dispositivo criptográficamente seguro aleatorio.

Valores devueltos#

Devuelve el identificador de la nueva clave como un objeto MongoDB\BSON\Binary con subtipo 4 (UUID).

Errores/Excepciones#

Lanza una excepción

MongoDB\Driver\Exception\InvalidArgumentException

en caso de error durante el análisis de un argumento.

Lanza una excepción

MongoDB\Driver\Exception\ConnectionException

si la conexión al servidor falla por una razón distinta a un problema de identificación

Lanza una excepción

MongoDB\Driver\Exception\AuthenticationException

si se requiere una identificación pero falla

Lanza

MongoDB\Driver\Exception\RuntimeException

en caso de otros errores.

Historial de cambios#

Versión Descripción
PECL mongodb 1.20.0 Añadido "delegated" a las opciones de masterKey del proveedor KMIP.
PECL mongodb 1.15.0 Añadida la opción "keyMaterial".
PECL mongodb 1.10.0 Azure y GCP ahora son compatibles como proveedores KMS para cifrado lado-cliente.