Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Cifrar datos usando un Key Management Service

Atlas aplica cifrado a todo el almacenamiento de clúster y los volúmenes de snapshot en reposo por defecto. Puede añadir otra capa de seguridad utilizando el KMS de su proveedor de nube junto con el motor de almacenamiento cifrado de MongoDB.

Puedes usar uno o más de los siguientes proveedores de KMS del cliente para la encriptación en reposo en Atlas:

Nota

El proveedor de gestión de claves no necesita coincidir con el proveedor del servicio en la nube del clúster.

Para obtener más información sobre el uso de tu KMS con Atlas, consulta:

Para gestionar el cifrado de KMS con Atlas Kubernetes Operator, puede especificar y actualizar el parámetro spec.encryptionAtRest para el recurso personalizado AtlasProject. Cada vez que modifique el campo spec en cualquiera de los recursos personalizados compatibles, Atlas Kubernetes Operator creará o actualizará la configuración de Atlas correspondiente.

Para configurar la encriptación en reposo usando AWS KMS en Atlas Kubernetes Operator, se requiere:

Importante

Si cambia tus llaves de cifrado al acceso basado en roles, no podrás deshacer la configuración de acceso basado en roles ni volver al acceso basado en credenciales para las llaves de cifrado en ese proyecto.

Para configurar el cifrado en reposo utilizando Azure Key Vault en Atlas Kubernetes Operator, necesitas:

Para configurar el cifrado en reposo utilizando un KMS de Google Cloud en Atlas Kubernetes Operator, se requieren:

Encripte sus datos de Atlas usando una clave gestionada por el cliente con el siguiente procedimiento:

1

Crea un secreto con los valores de los siguientes parámetros:

Parameter
Descripción

CustomerMasterKeyID

string alfanumérica única que identifica la clave maestra de cliente de AWS que se utiliza para cifrar y descifrar las claves maestras de MongoDB.

RoleID

ARN único de AWS que identifica el rol IAM de AWS IAM con permiso para gestionar tu clave maestra de cliente AWS . Para encontrar este valor:

  1. Ir a la sección Roles de la Consola de gestión de AWS.

  2. Haga clic en el rol IAM que editó o creó para el acceso a Atlas.

AWS muestra el ARN en la sección Summary.

Para crear y etiquetar un secreto, ejecuta los siguientes comandos con tus credenciales de AWS:

kubectl create secret generic aws-ear-creds \
--from-literal="CustomerMasterKeyID=<customer-master-key>" \
--from-literal="RoleID=<aws-arn>" \
-n mongodb-atlas-system
kubectl label secret aws-ear-creds atlas.mongodb.com/type=credentials -n mongodb-atlas-system
2
  1. Agregue el objeto spec.encryptionAtRest.awsKms a spec.encryptionAtRest arreglo en el AtlasProject Recurso personalizado, que incluye los siguientes parámetros:

    Parameter
    Descripción

    spec.encryptionAtRest.awsKms.enabled

    Indicador que especifica si este proyecto utiliza AWS KMS para cifrar los datos en reposo. Para habilitar el cifrado en reposo con AWS KMS, establezca este parámetro en true. Para deshabilitarlo, establezca este parámetro en false. Si deshabilita el cifrado en reposo con AWS KMS, el operador de Atlas Kubernetes elimina los detalles de configuración.

    spec.encryptionAtRest.awsKms.region

    Etiqueta que indica la región de AWS donde existe la llave maestra de cliente.

    spec.encryptionAtRest.awsKms.secretRef.name

    Nombre del secreto que contiene tus credenciales de AWS.

    spec.encryptionAtRest.awsKms.secretRef.namespace

    Espacio de nombres que contiene sus credenciales de AWS. Si no se especifica, este parámetro toma por defecto el espacio de nombres del recurso personalizado AtlasProject.

    Debes usar un secreto que contenga los valores de AccessKeyID, SecretAccessKey, CustomerMasterKeyID y RoleID.

  2. Ejecuta el siguiente comando:

    cat <<EOF | kubectl apply -f -
    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    spec:
    name: Test Atlas Operator Project
    encryptionAtRest:
    awsKms:
    enabled: true
    region: US_EAST_1
    secretRef:
    name: aws-ear-creds
    namespace: mongodb-atlas-system
    EOF
3

Ejecute el siguiente comando para verificar si Atlas Kubernetes Operator detecta la configuración de AWS KMS para su proyecto.

kubectl get atlasprojects my-project -n mongodbatlas-system -o=jsonpath='{.status.conditions[?(@.type=="EncryptionAtRestReady")].status}'
true
4

Después de habilitar el cifrado en reposo utilizando claves administradas por el cliente para tu proyecto, debes activarlo a nivel de clúster para cifrar los datos.

Ejecuta el siguiente comando para agregar el spec.deploymentSpec.encryptionAtRestProvider a tu AtlasDeployment Recurso personalizado, que habilita el cifrado en reposo utilizando tu clave AWS para este clúster:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-cluster
spec:
name: Test Atlas Operator Cluster
DeploymentSpec:
encryptionAtRestProvider: "AWS"
EOF
1

Crea un secreto con los valores de los siguientes parámetros:

Parameter
Descripción

KeyIdentifier

Dirección web con una clave única que identifica su Bóveda de claves de Azure.

KeyVaultName

string única que identifica la Azure Key Vault que contiene su clave.

Secret

Datos privados asociados con el inquilino de Azure Key Vault que especifique en spec.encryptionAtRest.azureKeyVault.tenantID.

SubscriptionID

string única de caracteres hexadecimales 36que identifica tu suscripción Azure. Azure muestra el ID de suscripción en la página de detalles de la suscripción.

Para crear y etiquetar un secreto, ejecuta los siguientes comandos con tus credenciales de Azure:

kubectl create secret generic azure-ear-creds \
--from-literal="KeyIdentifier=<web-address>" \
--from-literal="KeyVaultName=<key-vault>" \
--from-literal="Secret=<secret>" \
--from-literal="SubscriptionID=<subscription>" \
-n mongodb-atlas-system
kubectl label secret azure-ear-creds atlas.mongodb.com/type=credentials -n mongodb-atlas-system
2
  1. Agrega spec.encryptionAtRest.azureKeyVault objeto para el spec.encryptionAtRest arreglo en el AtlasProject recurso personalizado, incluidos los siguientes parámetros:

    Parameter
    Descripción

    spec.encryptionAtRest.azureKeyVault.azureEnvironment

    Ubicación deimplementación de Azure donde residen las credenciales de la cuenta de Azure. Los valores válidos incluyen AZURE, AZURE_CHINA y AZURE_GERMANY.

    spec.encryptionAtRest.azureKeyVault.clientID

    string única de 36caracteres hexadecimales que identifica tu aplicación de Azure.

    spec.encryptionAtRest.azureKeyVault. enabled

    Indicador que especifica si este proyecto utiliza Azure Key Vault para cifrar los datos en reposo. Para habilitar el cifrado en reposo con Azure Key Vault, establezca este parámetro en true. Para deshabilitarlo, establezca este parámetro en false. Si deshabilita el cifrado en reposo con Azure Key Vault, Atlas Kubernetes Operator elimina los detalles de configuración.

    spec.encryptionAtRest.azureKeyVault.resourceGroupName

    Etiqueta que identifica el grupo de recursos de Azure que contiene tu Azure Key Vault. Azure muestra el nombre del grupo de recursos en la página de detalles del grupo de recursos.

    spec.encryptionAtRest.azureKeyVault.secretRef.name

    Nombre del secreto que contiene tus credenciales de Azure.

    spec.encryptionAtRest.azureKeyVault.secretRef.namespace

    Espacio de nombres que contiene sus credenciales de Azure. Si no se especifica, este parámetro toma por defecto el espacio de nombres del recurso personalizado AtlasProject.

    spec.encryptionAtRest.azureKeyVault. tenantID

    string hexadecimal única 36que identifica al directorio Azure Active Directory dentro de su suscripción Azure. Azure muestra el ID de inquilino en la página de propiedades del inquilino.

    Debes usar un secreto que contenga los valores de KeyVaultName, KeyIdentifier, Secret y SubscriptionID.

  2. Ejecuta el siguiente comando:

    cat <<EOF | kubectl apply -f -
    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    spec:
    name: Test Atlas Operator Project
    encryptionAtRest:
    azureKeyVault:
    azureEnvironment: AZURE
    clientID: "12345678-90ab-cdef-1234-567890abcdef"
    enabled: true
    resourceGroupName: "myResourceGroup"
    tenantID: "e8e4b6ba-ff32-4c88-a9af-EXAMPLEID"
    secretRef:
    name: azure-ear-creds
    namespace: mongodb-atlas-system
    EOF
3

Ejecuta el siguiente comando para comprobar si el operador Atlas Kubernetes detecta la configuración de Azure Key Vault para tu proyecto.

kubectl get atlasprojects my-project -o=jsonpath='{.status.conditions[?(@.type=="EncryptionAtRestReadyType")].status}
true
4

Después de habilitar el cifrado en reposo utilizando claves administradas por el cliente para tu proyecto, debes activarlo a nivel de clúster para cifrar los datos.

Ejecutar el siguiente comando para añadir la spec.deploymentSpec.encryptionAtRestProvider al AtlasDeployment recurso personalizado, que habilita el cifrado en reposo usando la clave de Azure de este clúster:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-cluster
spec:
name: Test Atlas Operator Cluster
DeploymentSpec:
encryptionAtRestProvider: "AZURE"
EOF
1

Crea un secreto con los valores de los siguientes parámetros:

Parameter
Descripción

KeyVersionResourceID

Ruta de recurso única que muestra el ID de recurso de la versión de clave para tu KMS de Google Cloud.

ServiceAccountKey

Archivo JSON que contiene las credenciales de KMS de Google Cloud de tu cuenta de Google Cloud.

IMPORTANTE: Debes formatear correctamente el objeto JSON. Asegúrate de indentar correctamente los campos de credenciales dentro del archivo.

El siguiente ejemplo muestra el contenido de un ServiceAccountKey JSON archivo:

{
"type": "service_account",
"project_id": "my-project-common-0",
"private_key_id": "e120598ea4f88249469fcdd75a9a785c1bb3\",
"private_key": "-----BEGIN PRIVATE KEY-----\\nMIIEuwIBA(truncated)SfecnS0mT94D9\\n-----END PRIVATE KEY-----\\n\",
"client_email": "my-email-kms-0@my-project-common-0.iam.gserviceaccount.com\",
"client_id": "10180967717292066",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-email-kms-0%40my-project-common-0.iam.gserviceaccount.com"
"universe_domain": "googleapis.com"
}

Para crear y etiquetar un secreto, ejecuta los siguientes comandos con tus credenciales de Google Cloud:

kubectl create secret generic azure-ear-creds \
--from-literal="KeyVersionResourceID=<resource-id>" \
--from-file="ServiceAccountKey=<your-service-account-key-files.json>" \
-n mongodb-atlas-system
kubectl label secret gcp-ear-creds atlas.mongodb.com/type=credentials -n mongodb-atlas-system
2
  1. Añade el spec.encryptionAtRest.googleCloudKms. objeto a la spec.encryptionAtRest arreglo en el AtlasProject Recurso Personalizado, incluidos los siguientes parámetros:

    Parameter
    Descripción

    spec.encryptionAtRest.googleCloudKms.enabled

    Indicador que especifica si este proyecto utiliza Google Cloud KMS para cifrar los datos en reposo. Para habilitar el cifrado en reposo con Google Cloud KMS, establezca este parámetro en true. Para deshabilitarlo, establezca este parámetro en false. Si deshabilita el cifrado en reposo con Google Cloud KMS, Atlas Kubernetes Operator elimina los detalles de configuración.

    spec.encryptionAtRest.googleCloudKms.secretRef.name

    Nombre del secreto que contiene las credenciales de Google Cloud.

    spec.encryptionAtRest.googleCloudKms.secretRef.namespace

    Namespace que contiene tus credenciales de Google Cloud. Si no se especifica, este parámetro se asigna por defecto al namespace del recurso personalizado AtlasProject.

    Debes usar un secreto que contenga los valores de KeyVersionResourceID y ServiceAccountKey.

  2. Ejecuta el siguiente comando:

    cat <<EOF | kubectl apply -f -
    apiVersion: atlas.mongodb.com/v1
    kind: AtlasProject
    metadata:
    name: my-project
    spec:
    name: Test Atlas Operator Project
    encryptionAtRest:
    googleCloudKms:
    enabled: true
    secretRef:
    name: gcp-ear-creds
    namespace: mongodb-atlas-system
    EOF
3

Ejecute el siguiente comando para comprobar si Atlas Kubernetes Operator detecta la configuración de Google Cloud KMS para el proyecto.

kubectl get atlasprojects my-project -o=jsonpath='{.status.conditions[?(@.type=="EncryptionAtRestReadyType")].status}
true
4

Después de habilitar el cifrado en reposo utilizando claves administradas por el cliente para tu proyecto, debes activarlo a nivel de clúster para cifrar los datos.

Ejecuta el siguiente comando para añadir el spec.deploymentSpec.encryptionAtRestProvider a tu AtlasDeployment Recurso Personalizado, que activa el cifrado en reposo usando tu clave de Google Cloud para este clúster:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-cluster
spec:
name: Test Atlas Operator Cluster
DeploymentSpec:
encryptionAtRestProvider: "GCP"
EOF
Califique esta página