Actualiza la configuración del cifrado en reposo con las claves que gestionas a través de tu proveedor de nube. MongoDB Cloud cifra todo el almacenamiento incluso si no utilizas tu propia gestión de claves. Este recurso requiere que la cuenta de servicio o la clave API solicitantes tengan el rol de propietario del proyecto. Esta función no está disponible para clústeres gratuitos M0, M2, M5 ni clústeres sin servidor.
Después de configurar al menos un cifrado en reposo utilizando un proveedor de Gestión de claves de cliente para el Proyecto MongoDB Cloud, los Propietarios del Proyecto pueden habilitar el cifrado en reposo mediante la Gestión de claves de cliente para cada clúster de MongoDB Cloud que requiera cifrado. El proveedor de cifrado en reposo mediante la gestión de clave de cliente no tiene por qué coincidir con el proveedor de servicios en la nube del clúster. MongoDB Cloud no rota automáticamente las claves de cifrado gestionadas por el usuario. Consulta la documentación y orientación de tu proveedor preferido de cifrado en reposo mediante gestión de claves de clientes para mejores prácticas sobre la rotación de claves. MongoDB Cloud crea automáticamente una alerta de rotación de claves de 90 días cuando configuras el cifrado en reposo usando la Administración de claves de cliente con tu gestión de claves en un Proyecto de MongoDB Cloud. MongoDB nube cifra todo el almacenamiento, lo utilices o no tu propia gestión de claves.
Cadena 24hexadecimal única que identifica su proyecto. Utilice el punto de conexión /groups para recuperar todos los proyectos a los que el usuario autenticado tiene acceso.
NOTA: Grupos y proyectos son términos sinónimos. El ID de tu grupo es el mismo que el de tu proyecto. Para los grupos existentes, el ID de tu grupo/proyecto permanece igual. El recurso y los puntos finales correspondientes usan el término "grupos".
El formato debe coincidir con el siguiente patrón: ^([a-f0-9]{24})$.
Indicador que indica si la aplicación encapsula la respuesta en un objeto JSON envelope. Algunos clientes de la API no pueden acceder a los encabezados de respuesta HTTP ni al código de estado. Para solucionar esto, configure envelope=true en la consulta. Los endpoints que devuelven una lista de resultados utilizan el objeto de resultados como encapsulado. La aplicación añade el parámetro de estado al cuerpo de la respuesta.
El valor predeterminado es false.
Bandera que indica si el cuerpo de la respuesta debe estar en formato prettyprint.
El valor predeterminado es false.
Los parámetros obligatorios dependen de si alguien ha habilitado el cifrado en reposo mediante la administración de claves del cliente:
Si ha habilitado el cifrado en reposo mediante la administración de claves del cliente (CMK), Atlas requiere todos los parámetros para el proveedor de cifrado deseado.
awsKms.azureKeyVault.googleCloudKms. Para la autenticación, debe proporcionar serviceAccountKey (credenciales estáticas) o roleId (autenticación basada en cuenta de servicio). Una vez configurado roleId, serviceAccountKey ya no es compatible.Si habilitó el cifrado en reposo mediante la administración de claves del cliente, los administradores solo pueden pasar los campos modificados para el objeto awsKms, azureKeyVault o googleCloudKms para actualizar la configuración de este punto final.
Detalles de configuración de KMS de Amazon Web Services (AWS) y configuración de cifrado en reposo establecida para el proyecto especificado.
Detalles que definen la configuración del cifrado en reposo mediante Azure Key Vault (AKV).
Bandera que indica si el cifrado en reposo para nodos de búsqueda dedicados está habilitado en el proyecto especificado.
Detalles que definen la configuración del cifrado en reposo mediante el servicio de administración de claves (KMS) de Google Cloud.
atlas api encryptionAtRestUsingCustomerKeyManagement updateEncryptionAtRest --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20250312001/admin"
)
func main() {
ctx := context.Background()
clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")
// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))
if err != nil {
log.Fatalf("Error: %v", err)
}
params = &sdk.UpdateGroupEncryptionAtRestApiParams{}
sdkResp, httpResp, err := client.EncryptionatRestusingCustomerKeyManagementApi.
UpdateGroupEncryptionAtRestWithParams(ctx, params).
Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X PATCH "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest" \
-d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
--digest --include \
--header "Accept: application/vnd.atlas.2025-03-12+json" \
--header "Content-Type: application/json" \
-X PATCH "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/encryptionAtRest" \
-d '{ <Payload> }'
{
"awsKms": {
"accessKeyID": "019dd98d94b4bb778e7552e4",
"customerMasterKeyID": "string",
"enabled": true,
"region": "US_GOV_WEST_1",
"requirePrivateNetworking": true,
"roleId": "32b6e34b3d91647abb20e7b8",
"secretAccessKey": "string"
},
"azureKeyVault": {
"azureEnvironment": "AZURE",
"clientID": "string",
"enabled": true,
"keyIdentifier": "https://EXAMPLEKeyVault.vault.azure.net/keys/EXAMPLEKey/d891821e3d364e9eb88fbd3d11807b86",
"keyVaultName": "string",
"requirePrivateNetworking": true,
"resourceGroupName": "string",
"roleId": "32b6e34b3d91647abb20e7b8",
"secret": "string",
"subscriptionID": "string",
"tenantID": "string"
},
"enabledForSearchNodes": true,
"googleCloudKms": {
"enabled": true,
"keyVersionResourceID": "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1",
"roleId": "32b6e34b3d91647abb20e7b8",
"serviceAccountKey": "string"
}
}
{
"awsKms": {
"accessKeyID": "019dd98d94b4bb778e7552e4",
"customerMasterKeyID": "string",
"enabled": true,
"region": "US_GOV_WEST_1",
"requirePrivateNetworking": true,
"valid": true
},
"azureKeyVault": {
"azureEnvironment": "AZURE",
"clientID": "string",
"enabled": true,
"keyIdentifier": "https://EXAMPLEKeyVault.vault.azure.net/keys/EXAMPLEKey/d891821e3d364e9eb88fbd3d11807b86",
"keyVaultName": "string",
"requirePrivateNetworking": true,
"resourceGroupName": "string",
"roleId": "32b6e34b3d91647abb20e7b8",
"subscriptionID": "string",
"tenantID": "string",
"valid": true
},
"enabledForSearchNodes": true,
"googleCloudKms": {
"enabled": true,
"keyVersionResourceID": "projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1",
"roleId": "32b6e34b3d91647abb20e7b8",
"valid": true
}
}
{
"error": 400,
"detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
"reason": "Bad Request",
"errorCode": "VALIDATION_ERROR"
}
{
"error": 401,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Unauthorized",
"errorCode": "NOT_ORG_GROUP_CREATOR"
}
{
"error": 403,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Forbidden",
"errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
{
"error": 404,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
"reason": "Not Found",
"errorCode": "RESOURCE_NOT_FOUND"
}
{
"error": 409,
"detail": "(This is just an example, the exception may not be related to this endpoint) Cannot delete organization link while there is active migration in following project ids: 60c4fd418ebe251047c50554",
"reason": "Conflict",
"errorCode": "CANNOT_DELETE_ORG_ACTIVE_LIVE_MIGRATION_ATLAS_ORG_LINK"
}
{
"error": 500,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Internal Server Error",
"errorCode": "UNEXPECTED_ERROR"
}