Atualizar configuração de encryption at rest em um projeto
Atualiza a configuração da criptografia em descanso usando as chaves que você gerencia por meio do seu provedor de nuvem. O MongoDB Cloud criptografa todo o armazenamento, mesmo que você não use seu próprio gerenciamento de chaves. Esse recurso requer que a conta de serviço ou a chave de API solicitante tenha a função de proprietário do projeto. Esse recurso não está disponível para clusters gratuitos M0, M2, M5 ou clusters sem servidor.
Depois que você configurar pelo menos uma Criptografia em Repouso usando um provedor de Gerenciamento de Chaves do Cliente para o projeto do MongoDB Cloud, os Proprietários do Projeto poderão ativar a Criptografia em Repouso usando o Gerenciamento de Chaves do Cliente para cada cluster do MongoDB Cloud para o qual eles exigem criptografia. O provedor de criptografia em repouso usando o gerenciamento de chaves do cliente não precisa corresponder ao provedor de serviços de nuvem do cluster. O MongoDB Cloud não gira automaticamente as chaves de criptografia gerenciadas pelo usuário. Adote a criptografia em repouso de sua preferência usando a documentação e a orientação do provedor de gerenciamento de chaves do cliente para obter as práticas recomendadas de rotação de chaves. O MongoDB Cloud cria automaticamente um alerta de rotação de chaves de 90 dias quando você configura a criptografia em repouso usando o gerenciamento de chaves do cliente usando seu gerenciamento de chaves em um projeto do MongoDB Cloud. O MongoDB Cloud criptografa todo o armazenamento, independentemente de você usar ou não seu próprio gerenciamento de chaves.
parâmetros de caminho
-
Sequência única de 24dígitos hexadecimais que identifica seu projeto. Use o endpoint /groups para extrair todos os projetos aos quais o usuário autenticado tem acesso.
AVISO: grupos e projetos são termos sinônimos. O ID do seu grupo é igual ao ID do seu projeto. Para grupos existentes, o ID do grupo/projeto permanece o mesmo. O recurso e os endpoints correspondentes usam o termo grupos.
O formato deve corresponder ao seguinte padrão:
^([a-f0-9]{24})$.
parâmetros de query
-
Sinalizador que indica se o aplicativo empacota a resposta em um objeto JSON
envelope. Alguns clientes de API não podem acessar os cabeçalhos de resposta HTTP ou o código de status. Para corrigir isso, defina envelope=true na consulta. Os endpoints que retornam uma lista de resultados usam o objeto de resultados como um envelope. O aplicativo adiciona o parâmetro de status ao corpo da resposta.O valor padrão é
false. -
Sinalizador que indica se o corpo da resposta deve estar no formato prettyprint.
O valor padrão é
false.Prettyprint
corpo, corpo
Obrigatório
Os parâmetros exigidos dependem se alguém habilitou a Encryption at Rest usando o gerenciamento de chaves de cliente:
Se você tiver habilitado a criptografia em repouso usando o Customer Key Management (CMK), o Atlas exigirá todos os parâmetros do fornecedor de criptografia desejado.
- Para usar o AWS Key Management Service (KMS), o MongoDB Cloud exige todos os campos no objeto awsKms.
- Para usar o Azure Key Vault, o MongoDB Cloud exige todos os campos no objeto azureKeyVault.
- Para usar o Google Cloud Platform KMS (KMS), o MongoDB Cloud exige todos os campos no objeto googleCloudKms Para autenticação, você deve fornecer serviceAccountKey (credenciais estáticas) ou roleId (autenticação baseada em conta de serviço) Depois que o roleId for configurado, serviceAccountKey não será mais suportado.
Se você habilitou a criptografia em repouso usando o Gerenciamento de Chaves do Cliente, os administradores poderão passar apenas os campos alterados para o objeto awsKms, azureKeyVault ou googleCloudKms para atualizar a configuração para esse endpoint.
-
Detalhes de configuração KMS da Amazon Web Services (AWS) e conjunto de configurações de criptografia em repouso para o projeto especificado.
O gerenciador de chaves do Amazon Web Services... -
Detalhes que definem a configuração da Encryption at Rest usando o Azure Key Vault (AKV).
Azure Key Vault -
Sinalizador que indica se a criptografia em descanso para Nós de pesquisa dedicados está habilitada no projeto especificado.
-
Detalhes que definem a configuração da criptografia em repouso usando o Google Cloud Key Management Service (KMS).
Seção de gerenciamento de chaves do Google Cloud...
atlas api encryptionAtRestUsingCustomerKeyManagement updateEncryptionAtRest --help
import (
"os"
"context"
"log"
sdk "go.mongodb.org/atlas-sdk/v20240530001/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.2024-05-30+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.2024-05-30+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",
"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",
"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"
}