Activer les clés de chiffrement gérées par le client

Cette page explique comment chiffrer le contenu stocké dans des dépôts à l'aide de clés de chiffrement gérées par le client (CMEK).

Présentation

Par défaut, Google Cloud chiffre automatiquement les données au repos à l'aide de clés de chiffrement gérées par Google. Si vous avez des exigences réglementaires ou de conformité spécifiques concernant les clés qui protègent vos données, vous pouvez créer des dépôts chiffrés avec des clés CMEK. Les métadonnées relatives à un dépôt, telles que le nom du dépôt, sont chiffrées grâce au chiffrement par défaut de Google.

Lorsque vous activez le chiffrement CMEK, les données au repos dans les dépôts sont chiffrées à l'aide d'une clé que vous gérez via le service de gestion des clés cloud. Vous pouvez contrôler l'accès à la clé CMEK à l'aide d'Identity and Access Management. Si vous désactivez ou détruisez définitivement la clé CMEK, il est impossible d'accéder aux données chiffrées avec cette clé.

CMEK vous permet de contrôler davantage d'aspects du cycle de vie et de la gestion de vos clés, mais entraîne également des coûts pour le service Cloud KMS. Les dépôts chiffrés par CMEK consomment également des quotas de requêtes de chiffrement Cloud Key Management Service pour chaque importation ou téléchargement. Google Kubernetes Engine utilise également le quota Cloud KMS chaque fois qu'une opération de chiffrement est effectuée. Vérifiez que vous disposez d'un quota suffisant pour activer le chiffrement des secrets au niveau de la couche d'application pour vos applications et vos workflows.

Cloud KMS peut s'exécuter dans le même projet Google Cloud que Artifact Registry ou dans un projet distinct dans lequel vous gérez de manière centralisée les clés de plusieurs projets.

Vous attribuez une clé CMEK lorsque vous créez un dépôt. Il n'est pas possible de modifier le mécanisme de chiffrement d'un dépôt existant. Si vous disposez d'un dépôt chiffré par CMEK, vous ne pouvez pas remplacer le mécanisme de chiffrement par défaut par Google ou attribuer une autre clé Cloud KMS pour le chiffrement.

Pour plus d'informations sur CMEK en général, y compris quand et pourquoi l'activer, consultez la documentation Cloud KMS.

Créer une clé et accorder des autorisations

Les instructions suivantes expliquent comment créer une clé pour un dépôt, et comment accorder des autorisations permettant de chiffrer et de déchiffrer les données du dépôt à l'aide de cette clé. Vous pouvez utiliser une clé créée directement dans Cloud KMS ou une clé gérée en externe que vous rendez disponible avec Cloud External Key Manager.

  1. Dans le projet Google Cloud dans lequel vous souhaitez gérer vos clés, procédez comme suit :

    1. Activez l'API Cloud KMS.

    2. Créez un trousseau de clés et une clé en utilisant l'une de ces deux méthodes:

      L'emplacement de la clé Cloud KMS doit correspondre à l'emplacement du dépôt du dépôt que vous allez chiffrer.

  2. Si vous n'avez pas créé de dépôt dans le projet Artifact Registry, le compte de service Artifact Registry n'existe pas encore. Pour créer le compte de service, exécutez la commande suivante:

    gcloud beta services identity create --service=artifactregistry.googleapis.com --project=PROJECT
    

    Remplacez PROJECT par l'ID du projet dans lequel Artifact Registry est en cours d'exécution.

  3. Attribuez le rôle IAM "Chiffreur/Déchiffreur de CryptoKeys" (roles/cloudkms.cryptoKeyEncrypterDecrypter) au compte de service Artifact Registry. Accordez cette autorisation sur la clé que vous avez créée.

    Console

    1. Accédez à la page Clés de chiffrement.

      Ouvrez la page Cloud KMS.

    2. Sélectionnez la clé que vous avez créée.

    3. Accordez l'accès au compte de service Artifact Registry:

      1. Sélectionnez AFFICHER LE PANNEAU D'INFORMATIONS.
      2. Cliquez sur AJOUTER UN MEMBRE.
      3. Ajoutez le compte de service Artifact Registry. Le compte de service est service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, où PROJECT-NUMBER est le numéro du projet du projet Google Cloud sur lequel Artifact Registry est exécuté.
      4. Dans Rôle, sélectionnez Cloud KMS > Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS.
      5. Cliquez sur ENREGISTRER.
    4. Répétez l'étape précédente pour accorder l'accès au compte qui créera des dépôts.

    5. Revenez à la page Clés de chiffrement, puis sélectionnez à nouveau la clé.

    6. Sélectionnez AFFICHER LE PANNEAU D'INFORMATIONS. Des rôles doivent s'afficher dans la colonne Rôle/Membre.

    gcloud

    1. Exécutez la commande suivante pour accorder l'accès au compte de service Artifact Registry:

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] \
             KEY --location LOCATION --keyring=KEYRING \
             --member serviceAccount:service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Où :

      • PROJECT correspond à l'ID du projet qui contient la clé.
      • KEY correspond au nom de la clé.
      • LOCATION correspond à l'emplacement de la clé. L'emplacement de clé doit correspondre à l'emplacement de dépôt du dépôt que vous chiffrez.
      • KEYRING correspond au nom du trousseau de clés.
      • PROJECT-NUMBER est le numéro du projet Google Cloud qui exécute Artifact Registry.
    2. Répétez l'étape précédente pour accorder l'accès au compte qui créera des dépôts.

    Pour plus d'informations sur cette commande, consultez la documentation gcloud kms keys add-iam-policy-binding.

Vous pouvez maintenant créer un dépôt et spécifier la clé à utiliser pour le chiffrement.

Supprimer un accès

Il existe plusieurs façons de supprimer l'accès à un dépôt chiffré par CMEK :

Nous vous recommandons de révoquer les autorisations du compte de service Artifact Registry avant de désactiver ou de détruire une clé. Les modifications apportées aux autorisations sont cohérentes en quelques secondes. Vous pouvez donc observer les conséquences de la désactivation ou de la destruction d'une clé.

Lorsque vous désactivez ou détruisez la clé de chiffrement d'un dépôt, vous ne pouvez plus afficher ni récupérer les données de l'artefact. Toutes les données d'artefact stockées dans le dépôt deviennent inaccessibles, y compris les artefacts compilés, les données binaires arbitraires (blobs) et les fichiers manifestes tels qu'un fichier manifeste Docker ou un fichier de npm. Les utilisateurs disposant du rôle Lecteur ou "Lecteur" d'Artifact Registry peuvent toujours afficher les métadonnées d'artefact, telles que le nom de l'artefact, la version ou le tag.

Les utilisateurs dotés du rôle Administrateur Artifact Registry ou de Propriétaire peuvent supprimer le dépôt.

Étape suivante