Chiffrer facilement des ressources avec Cloud KMS Autokey

1. Introduction

Cloud KMS Autokey simplifie la création et l'utilisation des clés de chiffrement gérées par le client (CMEK) en automatisant le provisionnement et l'attribution. Avec Autokey, vous n'avez pas besoin de planifier et de provisionner vos trousseaux de clés, vos clés et vos comptes de service avant qu'ils ne soient nécessaires. Au lieu de cela, Autokey génère vos clés à la demande lorsque vos ressources sont créées, en s'appuyant sur des autorisations déléguées plutôt que sur des administrateurs Cloud KMS.

L'utilisation de clés générées par Autokey peut vous aider à vous conformer aux normes du secteur et aux pratiques recommandées en matière de sécurité des données, y compris le niveau de protection du HSM, la séparation des tâches, la rotation des clés, l'emplacement et la spécificité des clés. Autokey crée des clés qui respectent à la fois les consignes générales et les consignes spécifiques au type de ressource pour les services Google Cloud qui s'intègrent à Autokey Cloud KMS. Une fois créées, les clés demandées via Autokey fonctionnent de la même manière que les autres clés Cloud HSM disposant des mêmes paramètres.

Objectifs de l'atelier

Dans cet atelier de programmation, vous allez lancer des ressources protégées à l'aide d'Autokey Cloud KMS en créant :

  • une ressource de dossier
  • un projet qui contiendra vos clés
  • Un agent de service jouant le rôle d'assistant de gestion des clés
  • un projet qui hébergera vos ressources protégées
  • Ensembles de données BigQuery, disques persistants et buckets Cloud Storage chiffrés avec Autokey Cloud KMS

Prérequis

2. Créer un dossier

Les dossiers sont des nœuds dans la hiérarchie des ressources Cloud Platform. Un dossier peut contenir des projets, d'autres dossiers ou une combinaison des deux. Les ressources Organisation peuvent utiliser des dossiers pour regrouper des projets sous le nœud de ressource Organisation dans une hiérarchie. Pour créer un dossier, procédez comme suit :

  1. Accédez à la page Gérer les ressources de la console Google Cloud.
  2. Assurez-vous que le nom de la ressource de votre organisation est sélectionné dans la liste déroulante de l'organisation en haut de la page.
  3. Cliquez sur "Créer un dossier".

9328ef3bd4840817.png

  1. Sélectionner un dossier standard

20a094fe0c7a0924.png

  1. Dans le champ Nom du dossier, saisissez le nom de votre nouveau dossier. Pour cet atelier, utilisez "Autokey-Folder".
  2. Sous "Destination", cliquez sur "Parcourir", puis sélectionnez la ressource ou le dossier de l'organisation sous lequel vous souhaitez créer votre dossier.
  3. Cliquez sur Créer.

3. Créer un projet de ressources

Il est important de créer un projet de ressources qui contiendra les ressources (ensembles de données BigQuery, disques persistants et buckets Cloud Storage, par exemple) que vous souhaitez chiffrer avec Cloud KMS Autokey. Si vous tentez de créer des ressources protégées par Autokey dans le projet de clé, Autokey rejette la demande de nouvelle clé. Pour créer le projet de ressources :

  1. Accédez à la page Gérer les ressources de la console Google Cloud.
  2. Cliquez sur "Créer un projet".

93e4e224322c68a7.png

  1. Dans la liste déroulante "Sélectionner une organisation" en haut de la page, sélectionnez le dossier "Autokey-Folder".
  2. Dans la fenêtre "Nouveau projet", saisissez un nom de projet, puis sélectionnez un compte de facturation si nécessaire. Pour cet atelier, choisissez "Autokey Encrypted Resources" (Ressources chiffrées avec Autokey).
  3. Dans le champ "Emplacement", sélectionnez le dossier "Autokey-Folder". Cette ressource sera le parent hiérarchique du nouveau projet. Vos paramètres devraient ressembler à ceci:

187ece37daf50835.png

  1. Copiez l'ID du projet. Dans l'exemple ci-dessus, l'ID du projet est "causal-hour-43319-m4". mais votre ID sera différent dans l'éditeur de texte de votre choix.
  2. Cliquez sur "Créer".
  3. Sélectionnez l'icône Cloud Shell en haut à droite de l'écran.

16c8476c4991f448.png

  1. Une fois Cloud Shell activé, enregistrez votre ID de projet Autokey en tant que variable en exécutant la commande suivante :
export RESOURCE_PROJECT=<paste your Resource Project ID>

Comme l'ID de mon projet est "key-management-433319" ma commande ressemble à ceci:

export AUTOKEY_PROJECT=causal-hour-43319-m4
  1. Exécutez la commande suivante pour exécuter des commandes à partir de votre projet clé :
gcloud config set project $RESOURCE_PROJECT

Lorsque vous y êtes invité, autorisez Cloud Shell en cliquant sur "Authorize" (Autoriser).

a6c755d4921bc728.png

  1. Étant donné que ce projet contiendra des ressources, nous devons activer les API des services que Autokey protégera. Exécutez la commande suivante :
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com

4. Créer un projet clé

Nous vous recommandons de créer un projet contenant les ressources Cloud KMS créées par Autokey. Nous l'appellerons "projet clé". à l'avenir. Le projet de clé peut être créé dans le même dossier que celui dans lequel vous prévoyez d'activer Autokey. Vous ne devez pas créer d'autres ressources dans le projet de clé. Si vous tentez de créer des ressources protégées par Autokey dans le projet de clé, Autokey rejette la demande de nouvelle clé. Pour créer le projet de clé:

  1. Accédez à la page Gérer les ressources de la console Google Cloud.
  2. Cliquez sur "Créer un projet".

93e4e224322c68a7.png

  1. Dans la liste déroulante "Sélectionner une organisation" en haut de la page, sélectionnez le dossier "Autokey-Folder".
  2. Dans la fenêtre "Nouveau projet", saisissez un nom de projet, puis sélectionnez un compte de facturation si nécessaire. Pour cet atelier, considérez la gestion des clés
  3. Dans le champ "Emplacement", sélectionnez "Autokey-Folder". . Cette ressource sera le parent hiérarchique du nouveau projet. Vos paramètres doivent ressembler à ceci :

157894b5c9048c06.png

  1. Copiez l'ID du projet. Dans l'exemple ci-dessus, l'ID du projet est "key-management-433319". mais votre ID sera différent dans l'éditeur de texte de votre choix.
  2. Cliquez sur Créer.

5. Préparer le projet de clé Autokey

Maintenant que chaque projet est créé, il est temps de configurer le projet de clé pour qu'il utilise Cloud KMS Autokey.

  1. Sélectionnez l'icône Cloud Shell en haut à droite de l'écran.

16c8476c4991f448.png

  1. Une fois Cloud Shell activé, enregistrez votre ID de projet Autokey en tant que variable en exécutant la commande suivante :
export AUTOKEY_PROJECT=<paste your Autokey Project ID>

Comme l'ID de mon projet est "key-management-433319" ma commande ressemble à ceci:

export AUTOKEY_PROJECT=key-management-433319
  1. Exécutez la commande suivante pour exécuter des commandes à partir de votre projet clé :
gcloud config set project $AUTOKEY_PROJECT

Lorsque vous y êtes invité, autorisez Cloud Shell en cliquant sur "Authorize" (Autoriser).

a6c755d4921bc728.png

  1. Activez l'API Cloud KMS en exécutant la commande suivante :
gcloud services enable cloudkms.googleapis.com  kmsinventory.googleapis.com
  1. Exécutez la commande suivante pour enregistrer votre numéro de projet en tant que variable nommée AUTOKEY_PROJECT_NUMBER.
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
  1. Enregistrez l'adresse e-mail de votre principal en tant que variable en exécutant la commande suivante :
export KEY_ADMIN_EMAIL=<paste your Principal's email>
  1. Accorder à vos administrateurs Cloud KMS des autorisations d'administrateur Cloud KMS sur le projet de clé
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=user:$KEY_ADMIN_EMAIL

6. Configurer les agents de service Cloud KMS

L'agent de service Cloud KMS d'un projet de clé crée des clés et applique des liaisons de stratégie IAM lors de la création de ressources, au nom d'un administrateur Cloud KMS humain. Pour pouvoir créer et attribuer des clés, l'agent de service Cloud KMS nécessite des autorisations d'administrateur Cloud KMS.

  1. Recherchez l'ID de l'organisation à l'aide de la commande suivante:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
  1. Copiez l'ID de l'organisation (il s'agit du résultat numérique surligné en rouge).
  2. Enregistrez l'ID de l'organisation en tant que variable nommée ORG_ID :
export ORG_ID=<paste your Organization ID>
  1. Créez l'agent de service Cloud KMS en exécutant la commande suivante :
gcloud beta services identity create --service=cloudkms.googleapis.com \
    --project=$AUTOKEY_PROJECT_NUMBER
  1. Attribuez le rôle Administrateur Cloud KMS à l'agent de service :
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
  1. Ajoutez une liaison de stratégie IAM pour pouvoir consulter l'utilisation de vos clés Cloud KMS. L'utilisation de la clé fournit des informations sur chaque clé, y compris le nombre de ressources protégées, de projets et de produits Google Cloud uniques qui l'utilisent. Ce niveau de détail est disponible pour toute personne disposant du rôle de lecteur Cloud KMS sur la clé. Exécutez la commande suivante :
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
    --member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. Attribuez le rôle Agent de service d'organisation Cloud KMS (cloudkms.orgServiceAgent) à votre compte de service Cloud KMS sur votre ressource d'organisation.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. Attribuez le rôle "Lecteur de ressources protégées Cloud KMS" à votre ressource Organisation à toute personne qui doit afficher les détails d'utilisation des clés.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="user:$KEY_ADMIN_EMAIL" \
    --role='roles/cloudkms.protectedResourcesViewer'

7. Accorder des rôles utilisateur Autokey

Pour que vos développeurs puissent utiliser Autokey, vous devez leur accorder le rôle requis. Vous pouvez attribuer le rôle au niveau du dossier ou du projet. Ce rôle permet aux développeurs de demander des clés à l'agent de service Cloud KMS lorsqu'ils créent des ressources dans ce dossier ou ce projet.

La première étape pour attribuer le rôle consiste à enregistrer l'ID de dossier.

  1. Recherchez l'ID du dossier à l'aide de la commande suivante :
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
  1. Copiez l'ID du dossier (partie mise en surbrillance en rouge).
  2. Enregistrez l'ID du dossier en tant que variable nommée FOLDER_ID.
export FOLDER_ID=<paste the folder ID>

Pour les besoins de cet atelier, nous allons définir l'administrateur de clés comme l'utilisateur Autokey. Toutefois, dans les cas d'utilisation en production et dans les organisations comptant plusieurs individus, l'administrateur de clé doit être différent du développeur qui utilise Autokey.

  1. Attribuez le rôle roles/cloudkms.autokeyUser au niveau du dossier :
gcloud resource-manager folders add-iam-policy-binding \
    $FOLDER_ID --role=roles/cloudkms.autokeyUser \
    --member=user:$KEY_ADMIN_EMAIL

8. Activer Cloud KMS Autokey sur un dossier de ressources

Au cours de cette étape, vous allez activer Cloud KMS Autokey sur un dossier de ressources et identifier le projet Cloud KMS qui contiendra les ressources Autokey de ce dossier. L'activation d'Autokey sur ce dossier active Autokey pour tous les projets de ressources du dossier.

  1. Dans la console Google Cloud, accédez à la page Commandes KMS.
  2. Cliquez sur "Sélectionner un dossier".

785f338e1860029c.png

  1. Dans le sélecteur de contexte, sélectionnez le dossier dans lequel vous souhaitez activer Autokey. Il s'agit du même dossier que celui que vous avez créé précédemment, qui contient votre projet de ressources et le projet de gestion des clés. Elle devrait se présenter comme ceci :

f0ee5141dc6fa40e.png

  1. Cliquez sur "Enable" (Activer).
  2. Cliquez sur "Parcourir" pour sélectionner le projet clé.
  3. Sélectionnez votre projet de gestion des clés, puis cliquez sur "Envoyer".

5acd9e68eb972e15.png

Un message confirme que Cloud KMS Autokey est activé sur le dossier. La page "Paramètres KMS" doit se présenter comme suit :

8bddb3d688ba842d.png

9. Créer des ressources protégées à l'aide d'Autokey Cloud KMS

Disques persistants Compute Engine

Autokey crée une clé pour chaque disque, image et image système au même emplacement que la ressource en cours de création.

Pour créer un disque, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Disques.
  2. Cliquez sur Créer un disque et entrez les propriétés du nouveau disque.
  3. Sous "Chiffrement", sélectionnez "Clé Cloud KMS".

dcc63e9ae03c5fbe.png

  1. Pour "Type de clé", sélectionnez "Cloud KMS avec clé automatique", puis cliquez sur "Demander une nouvelle clé". Un message s'affiche lorsque votre clé a bien été créée et qu'elle est prête à être utilisée.

4b2283a0d52cc98d.png

  1. Pour terminer la création du disque, cliquez sur "Créer".

Vous pouvez suivre une procédure similaire pour créer des ressources d'instance de VM, d'image et d'image système protégées.

Buckets Google Cloud Storage

Autokey crée une clé au même emplacement que le bucket. La clé créée par Autokey est définie comme clé par défaut du bucket.

Autokey ne crée pas de clés pour les objets. Par défaut, les objets créés dans un bucket utilisent la clé par défaut du bucket. Si vous souhaitez chiffrer un objet à l'aide d'une clé autre que la clé par défaut du bucket, vous pouvez créer manuellement une clé CMEK et l'utiliser lorsque vous créez l'objet.

  1. Dans la console Google Cloud, accédez à la page Créer un bucket.
  2. Choisissez un nom unique et permanent.
  3. Choisissez un emplacement de données.
  4. Accédez à la section "Choisissez comment protéger les données des objets".

e31bbeff5c7aabdf.png

  1. Cliquez sur "Choisissez comment protéger les données des objets". pour développer la section

9c68ce19dac932de.png

  1. Développez la section "Chiffrement des données", puis sélectionnez "Clé Cloud KMS". d8caca08891be9dc.png
  2. Dans "Type de clé", sélectionnez "Cloud KMS avec Autokey", puis cliquez sur "Demander une nouvelle clé". Un message s'affiche lorsque votre clé a bien été créée et qu'elle est prête à être utilisée.

a10d1ae243c44811.png

  1. Pour terminer la création du bucket, cliquez sur "Créer". Si une boîte de dialogue s'affiche pour vous indiquer que l'accès public sera bloqué, cliquez sur "Confirmer".

Ensemble de données BigQuery

Pour chaque nouvel ensemble de données, Autokey crée une clé dans le même emplacement que la ressource elle-même, qui devient la clé par défaut de l'ensemble de données. Autokey ne crée pas de clés pour les tables, les requêtes, les tables temporaires ou les modèles. Par défaut, ces ressources sont protégées par la clé par défaut de l'ensemble de données. Si vous souhaitez protéger une ressource dans un ensemble de données à l'aide d'une clé autre que la clé par défaut de l'ensemble de données, vous pouvez créer manuellement une clé CMEK et l'utiliser lorsque vous créez la ressource.

Pour créer un ensemble de données BigQuery, vous devez d'abord disposer du rôle "Utilisateur BigQuery".

  1. Revenir à Cloud Shell
  2. Configurer Cloud Shell pour exécuter des commandes à partir du projet de ressources
gcloud config set project $RESOURCE_PROJECT
  1. Exécutez la commande suivante pour enregistrer votre numéro de projet dans une variable nommée RESOURCE_PROJECT_NUMBER.
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
  1. Accorder à votre compte le rôle Utilisateur BigQuery
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
    --role=roles/bigquery.user \
    --member=user:$KEY_ADMIN_EMAIL

Maintenant que vous disposez du rôle Utilisateur BigQuery, vous pouvez créer un ensemble de données et le protéger avec Autokey.

  1. Dans la console Google Cloud, accédez à la page "BigQuery".
  2. Suivez les instructions pour créer un ensemble de données jusqu'à ce que vous accédiez à Options avancées > Chiffrement.
  3. Sous "Chiffrement", sélectionnez une clé Cloud KMS.
  4. Dans "Type de clé", sélectionnez "Cloud KMS avec Autokey", puis cliquez sur "Demander une nouvelle clé". Un message s'affiche lorsque votre clé a bien été créée et qu'elle est prête à être utilisée.
  5. Pour terminer de créer l'ensemble de données, cliquez sur "Créer un ensemble de données".

10. Découvrir vos clés

Au cours de cette étape, vous allez découvrir les clés Cloud KMS Autokey créées en votre nom sur la page "Key Inventory" (Inventaire des clés). La page "Inventaire des clés" fournit des informations complètes sur les clés cryptographiques de votre projet. Notez que les données peuvent être retardées. Par exemple, si vous créez une ressource protégée, la ressource protégée et la version de clé associée ne sont pas immédiatement ajoutées à l'onglet "Suivi de l'utilisation". Pour en savoir plus sur les limites, consultez cette page.

  1. Dans la console Google Cloud, accédez à la page Inventaire des clés.
  2. Facultatif : Pour filtrer la liste des clés, saisissez vos termes de recherche dans le champ de filtre filter_list, puis appuyez sur Entrée. Par exemple, vous pouvez filtrer par emplacement, trousseau de clés, état ou autres propriétés des clés.
  3. Cliquez sur le nom de la clé dont vous souhaitez consulter les informations d'utilisation.
  4. Cliquez sur "Vue d'ensemble". Notez que vous disposez d'une clé pour chaque ressource créée. Chaque nom de clé inclut le nom de la ressource qu'elle protège (par exemple, "compute-disk" ou "storage-bucket"). Cloud KMS Autokey garantit que chaque clé est planifiée pour une rotation 365 jours après sa création et qu'une clé "HSM" est attribuée à chaque clé. le niveau de protection.

9acbce68acb653d4.png

  1. Cliquez sur l'onglet "Suivi des utilisations". Notez le niveau d'information présenté: chaque ressource chiffrée par la clé est affichée ici, avec le projet, l'emplacement et la date de création.
  2. Facultatif: Pour filtrer la liste des ressources protégées, saisissez vos termes de recherche dans la zone "Filter_list" (Filtrer) et appuyez sur Entrée.

7def6fe9a023d063.png

11. Félicitations

Félicitations ! Vous avez créé des ressources Google Cloud et vous les avez chiffrées automatiquement à la demande avec Cloud KMS Autokey.

Vous connaissez désormais les principales étapes à suivre pour configurer Autokey et l'utiliser pour chiffrer automatiquement vos ressources à l'aide de clés Cloud KMS.

12. Étape suivante

Importer des données dans vos ressources chiffrées avec Autokey

Documents de référence