Atualizar configuração de encryption at rest para 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.
Serviço de gerenciamento de chaves de serviços web da Amazon -
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).
Serviço de gerenciamento de chaves do Google Cloud
atlas api encryptionAtRestUsingCustomerKeyManagement updateGroupEncryptionAtRest --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"
}