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.
Dans le Google Cloud projet où vous souhaitez gérer vos clés :
Créez un trousseau de clés et une clé à l'aide de l'une des options suivantes :
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=PROJECTRemplacez PROJECT par l'ID du projet dans lequel Artifact Registry est en cours d'exécution.
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
Accédez à la page Clés de chiffrement.
Sélectionnez la clé que vous avez créée.
Accordez l'accès au compte de service Artifact Registry :
- Si le panneau d'informations est masqué, cliquez sur Afficher le panneau d'informations.
- Cliquez sur Accorder l'accès.
- 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.
- Dans Rôle, sélectionnez Cloud KMS > Chiffreur/Déchiffreur de clés cryptographiques Cloud KMS.
- Cliquez sur Enregistrer.
Répétez l'étape précédente pour accorder l'accès au compte qui créera les dépôts.
Revenez à la page Gestion des clés et sélectionnez à nouveau la clé.
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
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.cryptoKeyEncrypterDecrypterOù
- 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
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 :
- Révoquez le rôle de chiffreur/déchiffreur de clés cryptographiques Cloud KMS du compte de service Artifact Registry à l'aide de l'une des méthodes suivantes :
- Désactiver temporairement la clé de chiffrement gérée par le client
- Détruire définitivement la clé 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
Denyde la contrainteconstraints/gcp.restrictNonCmekServices, Artifact Registry refuse de créer des dépôts qui ne sont pas protégés par CMEK.Lorsque
constraints/gcp.restrictCmekCryptoKeyProjectsest 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
- Créer un dépôt chiffré avec CMEK
- Apprenez-en davantage sur CMEK