Gérer les ressources de chiffrement

Cette page explique comment gérer les buckets de stockage isolés (air-gapped) Google Distributed Cloud (GDC) chiffrés.

Avant de commencer

Les buckets de stockage sont des ressources limitées à un projet spécifique. Le projet agit comme un conteneur, regroupant vos buckets et permettant leur gestion via le serveur d'API Management. Avant de pouvoir effectuer les opérations décrites sur cette page, vous devez créer un projet ou en sélectionner un existant pour lequel vous disposez des autorisations suffisantes.

Rôles IAM requis

Contactez votre administrateur de projet IAM pour demander les rôles suivants dans l'espace de noms de votre projet :

  • Administrateur de bucket de projet (project-bucket-admin) : créez, mettez à jour et supprimez des buckets de stockage.
  • Lecteur d'objets de bucket de projet (project-bucket-object-viewer) : affichez et vérifiez les détails des buckets et des objets de stockage.

Pour en savoir plus, consultez Accorder l'accès à un bucket.

Préparer votre environnement

Pour exécuter des commandes sur le serveur d'API de gestion ou le serveur d'API global, procédez comme suit :

  1. Connectez-vous et générez le fichier kubeconfig pour le serveur d'API de gestion zonale si vous n'en avez pas.
  2. Pour les buckets à double zone, procédez comme suit :
    • Vérifiez auprès de votre opérateur d'infrastructure (IO) que la ressource personnalisée BucketLocationConfig a été créée pour vos zones appairées.
    • Générez le fichier kubeconfig pour le serveur d'API global.

Gérer les ressources de chiffrement

Les buckets avec chiffrement v2 comportent un secret kekRef et plusieurs AEADKeys créées, dans lesquelles kekRef est utilisé pour référencer les AEADKeys par défaut actives utilisées, et les AEADKeys incluent les clés actives et archivées appartenant au bucket.

Actualiser les AEADKeys par défaut actives pour un bucket

Nous vous recommandons d'actualiser les AEADKeys par défaut de votre bucket après environ 42 milliards d'écritures d'objets. Cette étape proactive améliore la sécurité et empêche l'épuisement des clés. Le processus d'actualisation crée un kekRef et désactive les AEADKeys précédentes. Pour démarrer le processus d'actualisation, supprimez le secret kekRef associé au bucket.

Vous pouvez récupérer le kekRef précédent en exécutant la commande suivante :

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

Vous pouvez ensuite exécuter la commande suivante pour supprimer le kekRef existant :

kubectl delete secrets OLD_KEKREF_NAME -n  NAMESPACE_NAME

Une fois la suppression effectuée, vous pouvez exécuter la commande suivante pour confirmer qu'un nouveau kekRef a été créé en fonction de AGE :

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

Vérifiez que les nouvelles AEADKeys par défaut ont été créées en fonction de AGE :

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

Alterner les AEADKeys par défaut pour un bucket

Si une AEADKey de votre bucket est compromise, vous devez alterner manuellement les clés de chiffrement associées au bucket.

Pour démarrer le processus, vous devez d'abord actualiser les clés par défaut actives. Cela crée de nouvelles AEADKeys par défaut actives et marque les clés de chiffrement précédentes comme désactivées. Une fois les clés par défaut actualisées, les importations d'objets suivantes utilisent les nouvelles AEADKeys comme clés de chiffrement. Les AEADKeys précédentes ne sont pas détruites. Vous pouvez donc toujours déchiffrer les objets existants qui ont déjà été chiffrés à l'aide de ces clés.

Ensuite, suivez les étapes pour télécharger et importer à nouveau les objets de votre bucket, puis supprimez les anciens objets.

Une fois que vous avez importé à nouveau tous les objets de votre bucket, vous pouvez nettoyer les AEADKeys inactives et les anciens objets. Identifiez les AEADKeys désactivées en fonction de AGE :

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

Enfin, suivez les étapes pour supprimer les AEADKeys.