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

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

Présentation

Par défaut, Artifact Registry chiffre le contenu client au repos. Artifact Registry gère le chiffrement pour vous sans que vous ayez à effectuer d'actions supplémentaires. Cette option est appelée chiffrement par défaut de Google.

Si vous souhaitez contrôler vos clés de chiffrement, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) dans Cloud KMS avec des services bénéficiant d'une intégration des CMEK, y compris Artifact Registry. L'utilisation de clés Cloud KMS vous permet de contrôler leur niveau de protection, leur emplacement, leur calendrier de rotation, leurs autorisations d'utilisation et d'accès, ainsi que leurs limites cryptographiques. Grâce à Cloud KMS, vous pouvez également afficher les journaux d'audit et contrôler les cycles de vie des clés. Au lieu de laisser Google posséder et gérer les clés de chiffrement de clés (KEK) symétriques qui protègent vos données, c'est vous qui vous chargez de cette tâche dans Cloud KMS.

Une fois que vous avez configuré vos ressources avec des CMEK, l'accès à vos ressources Artifact Registry est semblable à celui du chiffrement par défaut de Google. Pour en savoir plus sur les options de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).

Vous attribuez une clé CMEK lorsque vous créez un dépôt. Vous ne pouvez pas 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 une clé de chiffrementgérée et détenue par Google, ni attribuer une autre clé Cloud KMS pour le chiffrement.

Pour en savoir plus sur le chiffrement CMEK en général, y compris quand et pourquoi l'activer, consultez la présentation des CMEK.

Créer une clé et accorder des autorisations

Les instructions suivantes expliquent comment créer une clé pour un dépôt et accorder des autorisations pour chiffrer et déchiffrer les données du dépôt avec 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 Google Cloud projet où vous souhaitez gérer vos clés :

    1. Activez l'API Cloud KMS.

    2. Créez un trousseau de clés et une clé à l'aide de l'une des options suivantes :

  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. 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. Accordez le rôle IAM de 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. Si le panneau d'informations est masqué, cliquez sur Afficher le panneau d'informations.
      2. Cliquez sur Accorder l'accès.
      3. Dans le champ Nouveaux comptes principaux, ajoutez le compte de service Artifact Registry. Le compte de service est service-PROJECT-NUMBER@gcp-sa-artifactregistry., où PROJECT-NUMBER est le numéro du projet du Google Cloud projet dans lequel Artifact Registry est en cours d'exécution.
      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 les dépôts.

    5. Revenez à la page Gestion des clés et sélectionnez à nouveau la clé.

    6. Si le panneau d'informations est masqué, cliquez sur Afficher le panneau d'informations. Les rôles doivent s'afficher dans la section Rôle/Compte principal.

    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. \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      • PROJECT correspond à l'ID du projet contenant la clé.
      • KEY correspond au nom de la clé.
      • LOCATION correspond à l'emplacement de la clé.
      • KEYRING correspond au nom du trousseau de clés.
      • PROJECT-NUMBER correspond au numéro du projet dans lequel Artifact Registry est en cours d'exécution. Google Cloud
    2. Répétez l'étape précédente pour accorder l'accès au compte qui créera les dépôts.

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

Ensuite, créez un dépôt et spécifiez 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 d'artefact. Toutes les données d'artefact stockées dans le dépôt deviennent inaccessibles, y compris les artefacts créés, les données binaires arbitraires (blobs) et les fichiers manifestes tels qu'un fichier manifeste Docker ou un fichier packument npm. Les utilisateurs disposant du rôle Lecteur Artifact Registry (roles/artifactregistry.reader) ou du rôle Lecteur (roles/artifactregistry.viewer) peuvent toujours afficher les métadonnées d'artefact telles que le nom, la version ou le tag de l'artefact.

Les utilisateurs dotés du rôle Administrateur Artifact Registry (roles/artifactregistry.admin) ou de Propriétaire (roles/owner) peuvent supprimer le dépôt.

Règles d'administration CMEK

Artifact Registry est compatible avec les contraintes de règles d'administration qui peuvent exiger une protection CMEK.

Les règles peuvent limiter les clés de chiffrement Cloud KMS utilisables pour la protection CMEK.

  • Lorsque l'API Artifact Registry figure dans la liste des services de la règle Deny de la contrainte constraints/gcp.restrictNonCmekServices, Artifact Registry refuse de créer des dépôts qui ne sont pas protégés par CMEK.

  • Lorsque constraints/gcp.restrictCmekCryptoKeyProjects est configuré, Artifact Registry crée des dépôts protégés par CMEK qui sont protégés par une CryptoKey provenant d'un projet, d'un dossier ou d'une organisation autorisés.

Pub/Sub est compatible avec les mêmes contraintes. Lorsque vous activez l' API Artifact Registry dans un Google Cloud projet, Artifact Registry tente de créer automatiquement un sujet Pub/Sub avec l'ID de sujet gcr à l'aide de appartenant à Google et gérées par Google . Toutefois, si l'API Pub/Sub figure dans la liste des règles Deny pour la contrainte constraints/gcp.restrictNonCmekServices, Pub/Sub ne crée pas le sujet. Dans ce cas, vous devez créer le sujet gcr avec le chiffrement CMEK. Pour en savoir plus, consultez les instructions Pub/Sub pour chiffrer les sujets.

Pour en savoir plus sur la configuration des règles d'administration, consultez Règles d'administration CMEK.

Étape suivante