Cet article explique comment gérer l'accès aux ressources Cloud KMS.
Présentation
Pour gérer l'accès aux ressources Cloud KMS, telles que les clés et les trousseaux de clés, vous attribuez des rôles Identity and Access Management (IAM). Vous pouvez accorder ou limiter la possibilité d'effectuer des opérations de chiffrement spécifiques, telles que la rotation d'une clé ou le chiffrement de données. Vous pouvez attribuer des rôles IAM sur les éléments suivants :
- Directement sur une clé
- Un trousseau de clés, hérité par toutes les clés de ce trousseau
- Un projet Google Cloud, héritée par toutes les clés du projet
- Un dossier Google Cloud, hérité par toutes les clés de tous les projets du dossier
- Une organisation Google Cloud, héritée par toutes les clés des dossiers de l'organisation
Pour obtenir la liste complète des actions Cloud KMS, ainsi que des rôles et des autorisations IAM, consultez la page Autorisations et rôles. Pour obtenir la liste complète des ressources Cloud KMS et de leurs relations, consultez la page Ressources Cloud KMS.
Avant de commencer
Pour effectuer ces tâches, vous devez disposer d'une autorisation d'administrer les ressources Cloud KMS dans le projet Google Cloud. Le rôle d'administrateur Cloud KMS (roles/cloudkms.admin
) inclut les autorisations nécessaires.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Créez une ressource, comme un trousseau de clés.
- Obtenez les ID de ressources pour les ressources créées, telles qu'un trousseau de clés, une clé et une version de clé.
Seuls les comptes principaux IAM dotés du rôle de propriétaire (roles/owner
) ou d'administrateur Cloud KMS (roles/cloudkms.admin
) peuvent accorder ou révoquer l'accès aux ressources Cloud KMS.
Attribuer des rôles sur une ressource
L'exemple suivant accorde un rôle permettant d'accéder à une clé Cloud KMS :
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
gcloud kms keys add-iam-policy-binding key \ --keyring key-ring \ --location location \ --member principal-type:principal-email \ --role roles/role
Remplacez key par le nom de la clé. Remplacez key-ring par le nom du trousseau de clés où se trouve la clé. Remplacez location par l'emplacement Cloud KMS du trousseau de clés. Remplacez principal-type et principal-email par le type de compte principal et son adresse e-mail. Remplacez role par le nom du rôle à ajouter.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
Révoquer l'accès à une ressource
Pour supprimer l'accès d'un compte principal à une clé Cloud KMS, procédez comme suit :
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
gcloud kms keys remove-iam-policy-binding key \ --keyring key-ring \ --location location \ --member principal-type:principal-email \ --role roles/role-name
Remplacez key par le nom de la clé. Remplacez key-ring par le nom du trousseau de clés où se trouve la clé. Remplacez location par l'emplacement Cloud KMS du trousseau de clés. Remplacez principal-type et principal-email par le type de compte principal et son adresse e-mail. Remplacez role-name par le nom du rôle à supprimer.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
Afficher les autorisations sur une ressource
Pour afficher la stratégie IAM d'une clé Cloud KMS, procédez comme suit :
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour la dernière version de Google Cloud CLI.
gcloud kms keys get-iam-policy key \ --keyring key-ring \ --location location
Remplacez key par le nom de la clé. Remplacez key-ring par le nom du trousseau de clés où se trouve la clé. Remplacez location par l'emplacement Cloud KMS du trousseau de clés.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help
.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
Principe du moindre privilège
Pour appliquer le principe du moindre privilège, accordez l'ensemble d'autorisations le plus limité à l'objet le plus bas de la hiérarchie des ressources.
Pour accorder à un compte principal des autorisations permettant de chiffrer (mais pas de déchiffrer) des données, accordez le rôle
roles/cloudkms.cryptoKeyEncrypter
sur la clé.Pour accorder à un compte principal des autorisations de chiffrement et de déchiffrement des données, accordez le rôle
roles/cloudkms.cryptoKeyEncrypterDecrypter
sur la clé.Pour accorder à un compte principal des autorisations permettant de valider (mais pas de signer) les données, accordez le rôle
roles/cloudkms.publicKeyViewer
sur la clé.Pour accorder à un compte principal des autorisations de signature et de validation des données, accordez le rôle
roles/cloudkms.signerVerifier
sur la clé.Pour accorder à un compte principal l'autorisation de gérer une clé, attribuez le rôle
roles/cloudkms.admin
sur la clé.
Cette liste n'est pas exhaustive. Consultez la section Autorisations et rôles Cloud KMS pour obtenir la liste complète des autorisations et des rôles.
Hiérarchie et héritage
Des liaisons de stratégies peuvent être spécifiées sur le projet, le trousseau de clés, la clé, la tâche d'importation et les autres ressources Cloud KMS.
Les clés appartiennent à des trousseaux, qui appartiennent eux-mêmes à des projets. Ainsi, un compte principal disposant d'un rôle ou d'une autorisation spécifique de niveau supérieur dans cette hiérarchie hérite des mêmes autorisations sur les ressources enfants associées. Par exemple, un utilisateur disposant du rôle owner
sur un projet est également owner
sur tous les trousseaux et toutes les clés de ce projet. De même, si un utilisateur obtient le rôle cloudkms.admin
sur un trousseau, il dispose des autorisations associées sur toutes les clés de ce trousseau.
L'inverse n'est pas vrai. Autrement dit, un utilisateur qui dispose d'une autorisation sur une clé, mais pas sur le trousseau parent, ne dispose d'aucune autorisation sur ce trousseau.
Étape suivante
- En savoir plus sur les autorisations et rôles dans Cloud KMS.
- Créez une clé.
- Chiffrez et déchiffrez des données.