Clés de chiffrement gérées par le client (CMEK) dans la récupération par l'agent

La fonctionnalité Agent Retrieval (anciennement Vector Search 2.0) vous permet de protéger vos données au repos à l'aide de clés de chiffrement gérées via Cloud Key Management Service. Cette intégration vous permet de contrôler les clés utilisées pour chiffrer le contenu client principal, y compris la possibilité de faire pivoter et de révoquer ces clés.

Par défaut, les données sont chiffrées à l'aide des paramètres par défaut de la plate-forme gérés par Google. Les clés CMEK vous offrent un contrôle direct sur les clés de chiffrement.

Pour en savoir plus, consultez la documentation Clés de chiffrement gérées par le client (CMEK).

Prérequis et contraintes

Les prérequis et contraintes suivants doivent être respectés pour utiliser CMEK avec une collection :

  • La clé Cloud KMS doit se trouver dans la même Google Cloud région que la collection qu'elle protège. Par exemple, une collection dans la région us-central1 doit utiliser une clé KMS située dans us-central1.

  • Vous devez accorder à votre compte de service par produit et par projet (P4) le rôle cryptoKeyEncrypterDecrypter sur votre clé KMS. Le compte de service P4 suit le format suivant : service-${CONSUMER_PROJECT_NUMBER}@gcp-sa-vectorsearch.iam.gserviceaccount.com

Créer une collection protégée par CMEK

Une fois que vous avez rempli tous les prérequis, vous pouvez utiliser la gcloud CLI, l'API REST ou le SDK Python pour créer une collection avec CMEK activé.

Utiliser la gcloud CLI

Spécifiez l'ID de ressource complet de votre clé KMS à l'aide de l'argument --kms-key :

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

Utiliser l'API REST

Incluez encryption_spec dans le corps de votre requête POST :

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

Utiliser le SDK Python

Utiliser le SDK 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()

Migrer des objets de données d'une collection non CMEK vers une collection compatible avec CMEK

CMEK ne peut pas être activé pour les collections existantes. Vous devez plutôt migrer des objets de données vers une nouvelle collection avec CMEK activé.

Pour ce faire :

  1. Exportez vos objets de données d'une collection existante vers un bucket Cloud Storage.

  2. Créez une collection avec CMEK activé.

  3. Importez vos objets de données dans la collection.

Rotation des clés

Lorsqu'une clé est pivotée dans KMS, les nouvelles données sont chiffrées à l'aide de la version de clé principale, tandis que les données existantes restent chiffrées avec la version précédente. Pour en savoir plus, consultez la section Rotation des clés.

La révocation des clés

La révocation ou la désactivation d'une clé désactive immédiatement la collection. Les index ANN associés sont automatiquement non déployés et les données en mémoire sont supprimées. Les opérations de lecture, d'écriture et de recherche sur la collection échoueront.

Les collections ne sont pas automatiquement réactivées si la clé est restaurée.

Ressources compatibles avec le chiffrement CMEK

Les ressources Vertex AI actuelles traitées par CMEK sont les suivantes. La prise en charge de CMEK des fonctionnalités bêta est également au statut bêta.

Ressource Éléments chiffrés Liens vers la documentation
Ensemble de données Toutes les données importées par l'utilisateur (par exemple, le contenu textuel) pour DataItems et Annotations.

Contenu créé par l'utilisateur, tel que AnnotationSpecs, ColumnSpecs.
Créer un ensemble de données pour l'entraînement des modèles de classification et de régression

Créer un ensemble de données pour l'entraînement des modèles de prévision
Index Tous les fichiers de données utilisés pour les index Vector Search stockés dans Cloud Storage, Pub/Sub et la mémoire de stockage interne. Le type Index et IndexEndpoint doivent être créés avec la même clé.

Tous les index d'une collection doivent être créés avec la même clé.
Gérer les index dans Vector Search :

Gérer les index dans Vector Search 2
Collections Les collections sont utilisées pour stocker des objets de données associés. Gérer les collections dans Vector Search 2
DataObjects Les collections stockent les données sous forme d'objets JSON individuels appelés objets de données. Gérer les objets de données dans Vector Search 2