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, il n'est pas nécessaire de planifier et de provisionner vos trousseaux de clés, vos clés et vos comptes de service avant d'en avoir besoin. Au lieu de cela, Autokey génère vos clés à la demande lors de la création de vos ressources, en s'appuyant sur des autorisations déléguées à la place 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 pour la sécurité des données, y compris le niveau de protection 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 les consignes générales et les consignes spécifiques au type de ressource pour les services Google Cloud qui s'intègrent à Cloud KMS Autokey. 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 de Cloud KMS Autokey 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, disques persistants et buckets Cloud Storage BigQuery chiffrés avec Cloud KMS Autokey
Prérequis
- Organisation Google Cloud
- Pour réaliser cet atelier, votre compte principal Google Cloud doit disposer des rôles suivants au niveau de l'organisation:
- Administrateur Autokey de Cloud KMS (roles/cloudkms.autokeyAdmin)
- Administrateur IAM de dossier (roles/resourcemanager.folderIamAdmin)
- Utilisateur de compte de facturation (roles/billing.user)
- Projets Google Cloud avec facturation activée
- Expérience de base sur Linux
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 :
- Accédez à la page Gérer les ressources de la console Google Cloud.
- Assurez-vous que le nom de ressource de votre organisation est sélectionné dans la liste déroulante d'organisation en haut de la page.
- Cliquez sur "Créer un dossier".
- Sélectionner le dossier standard
- Dans le champ Nom du dossier, saisissez le nom de votre nouveau dossier. Pour cet atelier, utilisez "Autokey-Folder".
- Sous "Destination", cliquez sur "Parcourir", puis sélectionnez la ressource de l'organisation ou le dossier sous lequel vous souhaitez créer votre dossier.
- 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:
- Accédez à la page Gérer les ressources de la console Google Cloud.
- Cliquez sur "Créer un projet".
- Dans la liste déroulante "Sélectionner une organisation" située en haut de la page, choisissez l'option "Autokey-Folder". .
- Dans la fenêtre "Nouveau projet", saisissez un nom de projet, puis sélectionnez un compte de facturation si nécessaire. Pour les besoins de cet atelier, vous pouvez utiliser les ressources chiffrées Autokey
- Dans le champ "Emplacement", sélectionnez "Autokey-Folder". . Cette ressource sera le parent hiérarchique du nouveau projet. Vos paramètres devraient ressembler à ceci:
- 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.
- Cliquez sur "Créer".
- Sélectionnez l'icône Cloud Shell en haut à droite de l'écran.
- Une fois que Cloud Shell est actif, 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
- 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 "Autoriser".
- Étant donné que ce projet contiendra des ressources, nous devons activer les API pour les services qu'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 de 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 dossier où 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é:
- Accédez à la page Gérer les ressources de la console Google Cloud.
- Cliquez sur "Créer un projet".
- Dans la liste déroulante "Sélectionner une organisation" située en haut de la page, choisissez l'option "Autokey-Folder". .
- 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
- Dans le champ "Emplacement", sélectionnez "Autokey-Folder". . Cette ressource sera le parent hiérarchique du nouveau projet. Vos paramètres devraient ressembler à ceci:
- Copiez l'ID du projet. Dans l'exemple ci-dessus, l'ID de projet est "key-management-433319". mais votre ID sera différent dans l'éditeur de texte de votre choix.
- 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.
- Sélectionnez l'icône Cloud Shell en haut à droite de l'écran.
- Une fois que Cloud Shell est actif, 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
- 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 "Autoriser".
- Activez l'API Cloud KMS en exécutant la commande suivante :
gcloud services enable cloudkms.googleapis.com kmsinventory.googleapis.com
- Exécutez la commande suivante pour enregistrer votre numéro de projet dans une variable nommée AUTOKEY_PROJECT_NUMBER.
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
- Enregistrez l'adresse e-mail de votre compte principal en tant que variable en exécutant la commande suivante:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- 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 des 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.
- Recherchez l'ID de l'organisation à l'aide de la commande suivante:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
- Copiez l'ID de l'organisation (il s'agit du résultat numérique surligné en rouge).
- Enregistrez l'ID de l'organisation en tant que variable nommée ORG_ID:
export ORG_ID=<paste your Organization ID>
- 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
- Attribuez le rôle d'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
- Ajoutez une liaison de stratégie IAM pour consulter votre 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'
- Attribuez à votre compte de service Cloud KMS le rôle d'agent de service d'organisation Cloud KMS (cloudkms.orgServiceAgent) 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'
- Accordez le rôle de lecteur des ressources protégées Cloud KMS sur votre ressource "Organisation" à toute personne ayant besoin d'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. Attribuer 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 tout en créant des ressources dans ce dossier ou ce projet.
La première étape consiste à enregistrer l'ID du dossier.
- Recherchez l'ID du dossier à l'aide de la commande suivante:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- Copiez l'ID du dossier (il s'agit de la partie mise en surbrillance en rouge).
- 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 définirons l'administrateur de clé en tant qu'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.
- Accordez 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.
- Dans la console Google Cloud, accédez à la page Commandes KMS.
- Cliquez sur Sélectionner un dossier.
- Dans le sélecteur de contexte, sélectionnez le dossier dans lequel vous souhaitez activer Autokey. Il s'agit du dossier que vous avez créé précédemment. Il contient votre projet de ressources et le projet de gestion des clés. Elle devrait se présenter comme ceci :
- Cliquez sur "Enable" (Activer).
- Cliquez sur "Parcourir" pour sélectionner le projet de clé.
- Sélectionnez votre projet de gestion des clés, puis cliquez sur "Envoyer".
Un message confirme que Cloud KMS Autokey est activé sur le dossier. La page "Commandes KMS" devrait se présenter comme suit:
9. Créer des ressources protégées à l'aide de Cloud KMS Autokey
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:
- Dans la console Google Cloud, accédez à la page Disques.
- Cliquez sur Créer un disque et entrez les propriétés du nouveau disque.
- Sous "Chiffrement", sélectionnez "Clé Cloud KMS".
- 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.
- Pour terminer la création du disque, cliquez sur "Créer".
Vous pouvez suivre une procédure similaire pour créer des ressources protégées d'instance de VM, d'image et d'image système.
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 lors de la création de l'objet.
- Dans la console Google Cloud, accédez à la page Créer un bucket.
- Choisissez un nom unique et permanent.
- Choisissez un emplacement de données.
- Accédez à la section "Choisissez comment protéger les données des objets".
- Cliquez sur "Choisissez comment protéger les données des objets". pour développer la section
- Développez la section "Chiffrement des données", puis sélectionnez "Clé Cloud KMS".
- 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.
- Pour terminer la création du bucket, cliquez sur "Créer". Si une boîte de dialogue s'affiche avec le message "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é au même emplacement que la ressource, 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 tableaux 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 d'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 lors de la création de la ressource.
Pour créer un ensemble de données BigQuery, vous devez d'abord disposer du rôle "Utilisateur BigQuery".
- Revenir à Cloud Shell
- Configurer Cloud Shell pour exécuter les commandes à partir du projet de ressources
gcloud config set project $RESOURCE_PROJECT
- 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)")
- 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.
- Dans la console Google Cloud, accédez à la page "BigQuery".
- Suivez les instructions pour créer un ensemble de données jusqu'à ce que vous accédiez à Options avancées > Chiffrement.
- Sous "Chiffrement", sélectionnez une clé Cloud KMS.
- 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.
- Pour terminer la création de l'ensemble de données, cliquez sur "Créer un ensemble de données".
10. Explorer vos clés
Au cours de cette étape, vous allez découvrir les clés que Cloud KMS Autokey a 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". Découvrez d'autres limites ici.
- Dans la console Google Cloud, accédez à la page Inventaire des clés.
- Facultatif: Pour filtrer la liste de clés, saisissez vos termes de recherche dans la zone "Filtrer" de la liste "Filtrer", puis appuyez sur Entrée. Par exemple, vous pouvez filtrer par emplacement, trousseau de clés, état ou d'autres propriétés des clés.
- Cliquez sur le nom de la clé dont vous souhaitez consulter les informations d'utilisation.
- 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 protégée par la clé (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.
- 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.
- 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.
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 maintenant les étapes clés à suivre pour configurer Autokey et l'utiliser pour chiffrer automatiquement vos ressources avec des clés Cloud KMS.
12. Étape suivante
Importer des données dans vos ressources chiffrées Autokey
- Créer une instance Google Compute Engine (GCE)
- Associer le disque persistant protégé par une clé automatique à votre instance GCE
- Importer des données dans votre ensemble de données BigQuery
- Importer des objets dans un bucket Google Cloud Storage
- Charger des données Google Cloud Storage dans BigQuery