Chaves de criptografia gerenciadas pelo cliente (CMEK) na recuperação de agentes

A Recuperação de Agentes (antiga busca vetorial 2.0) permite proteger seus dados em repouso usando chaves criptográficas gerenciadas pelo Cloud Key Management Service. Essa integração oferece controle sobre as chaves usadas para criptografar o conteúdo principal do cliente, incluindo a capacidade de girar e revogar essas chaves.

Por padrão, os dados são criptografados usando os padrões da plataforma gerenciados pelo Google. A CMEK oferece controle direto sobre as chaves de criptografia.

Para mais informações, acesse a documentação das chaves de criptografia gerenciadas pelo cliente (CMEK).

Pré-requisitos e restrições

Os seguintes pré-requisitos e restrições precisam ser atendidos para usar a CMEK com uma coleção:

  • A chave do Cloud KMS precisa estar na mesma Cloud de Confiance by S3NS região da coleção que ela protege. Por exemplo, uma coleção na região us-central1 precisa usar uma chave do KMS localizada em us-central1.

  • Você precisa conceder à sua conta de serviço por produto por projeto (P4) o papel cryptoKeyEncrypterDecrypter na chave do KMS. A conta de serviço P4 segue este formato: service-${CONSUMER_PROJECT_NUMBER}@gcp-sa-vectorsearch.s3ns-system.iam.gserviceaccount.com

Como criar uma coleção protegida por CMEK

Depois de atender a todos os pré-requisitos, você pode usar a CLI gcloud, a API REST ou o SDK do Python para criar uma nova coleção com a CMEK ativada.

Como usar a CLI gcloud

Especifique o ID do recurso totalmente qualificado da chave do KMS usando o argumento --kms-key:

gcloud vector-search collections create [COLLECTION_ID] \
    --kms-key projects/[KMS_PROJECT_ID]/locations/[REGION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]

Como usar a API REST

Inclua o encryption_spec no corpo da solicitação POST:

{
  "encryption_spec": {
    "crypto_key_name": "projects/[PROJECT_ID]/locations/[REGION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]"
  }
}

Como usar o SDK do Python

Como usar o SDK do Python:

   
request = vectorsearch_v1beta.CreateCollectionRequest(
    parent=f"projects/{PROJECT_ID}/locations/{LOCATION}",
    collection_id=collection_id,
    collection={
        "data_schema": {...},
        "vector_schema": {...},
        # Specifies the customer-managed encryption key spec for a Collection
        "encryption_spec": {
            "crypto_key_name": f"projects/{PROJECT_ID}/locations/{LOCATION}/keyRings/{KEY_RING}/cryptoKeys/{KEY}"
        }
    },
)

operation = vector_search_service_client.create_collection(request=request)
operation.result()

Como migrar objetos de dados de uma coleção sem CMEK para uma coleção com CMEK ativada

A CMEK não pode ser ativada para coleções atuais. Em vez disso, você precisa migrar objetos de dados para uma nova coleção com a CMEK ativada.

Para fazer isso, siga estas etapas:

  1. Exporte seus objetos de dados de uma coleção atual para um bucket do Cloud Storage.

  2. Crie uma nova coleção com a CMEK ativada.

  3. Importe seus objetos de dados para a coleção.

Rotação de chaves

Quando uma chave é girada no KMS, os novos dados são criptografados usando a versão da chave primária, enquanto os dados atuais permanecem criptografados com a versão anterior. Para mais detalhes, consulte Rotação de chaves.

Revogação de chaves

Revogar ou desativar uma chave desativa imediatamente a coleção. Os índices de ANN associados são desativados automaticamente e os dados na memória são limpos. As operações de leitura, gravação e pesquisa na coleção vão falhar.

As coleções não são reativadas automaticamente se a chave for restaurada.

Recursos compatíveis com CMEK

Estes são os recursos da Vertex AI cobertos atualmente pelo CMEK. O suporte do CMEK para os recursos de visualização também está no status de visualização.

Recurso Material criptografado Links de documentação
Conjunto de dados Todos os dados importados do usuário (por exemplo, conteúdo de texto) para DataItems e Annotations.

Conteúdo criado pelo usuário, como AnnotationSpecs, ColumnSpecs.
Criar um conjunto de dados para modelos de classificação e regressão de treinamento

Criar um conjunto de dados para treinar modelos de previsão
Índice Todos os arquivos de dados usados para índices de pesquisa vetorial armazenados no Cloud Storage, no Pub/Sub e no armazenamento interno. O índice e o IndexEndpoint precisam ser criados com a mesma chave.

Todos os índices em uma coleção precisam ser criados com a mesma chave.
Gerenciar índices na busca vetorial :

Gerenciar índices na busca vetorial 2
Coleções As coleções são usadas para armazenar objetos de dados relacionados. Gerenciar coleções na Pesquisa de vetor 2
DataObjects As coleções armazenam dados como objetos JSON individuais chamados de objetos de dados. Gerenciar objetos de dados na Pesquisa de vetor 2