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

Cette page explique comment chiffrer le contenu stocké 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 sans intervention de votre part. 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 chiffrement

Pour en savoir plus sur CMEK en général, y compris quand et pourquoi l'activer, consultez la présentation de 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 de chiffrement et de déchiffrement des données de dépôt avec la 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 Trusted Cloud dans lequel 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 clés cryptographiques (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 ADD MEMBER (AJOUTER UN MEMBRE).
      3. Ajoutez le compte de service Artifact Registry. Le compte de service est service-PROJECT-NUMBER@gcp-sa-artifactregistry.s3ns-system.iam.gserviceaccount.com, où PROJECT-NUMBER est le numéro de projet du projet Trusted 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 les dépôts.

    5. Revenez à la page Gestion des clés, 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.s3ns-system.iam.gserviceaccount.com \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      • PROJECT correspond à l'ID du projet contenant la clé.
      • KEY est le 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 Trusted 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 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 suppression 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 des artefacts. 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 Lecteur (roles/artifactregistry.viewer) peuvent toujours afficher les métadonnées des artefacts, telles que le nom, la version ou le tag de l'artefact.

Les utilisateurs disposant du rôle Administrateur Artifact Registry (roles/artifactregistry.admin) ou 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 CryptoKeys Cloud KMS pouvant être utilisées pour la protection CMEK.

  • Lorsque l'API Artifact Registry figure dans la liste des services 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ée.

Pub/Sub est soumis aux mêmes contraintes. Lorsque vous activez l'API Artifact Registry dans un projet Trusted Cloud by S3NS , Artifact Registry tente de créer automatiquement un sujet Pub/Sub avec l'ID de sujetgcr à l'aide de clés de chiffrement fournies par Google Cloud . Toutefois, si l'API Pub/Sub figure dans la liste des règles Deny pour la contrainte constraints/gcp.restrictNonCmekServices, Pub/Sub ne créera pas le sujet. Dans ce scénario, 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