Ce document vous explique comment activer et configurer Cloud KMS Autokey à l'aide de la console Google Cloud , de Google Cloud CLI, de l'API Cloud KMS ou de Terraform. Vous pouvez activer Autokey avec le stockage des clés dans un projet dédié pour un dossier, ou activer Autokey avec le stockage des clés dans le même projet pour un projet individuel ou pour tous les projets d'un dossier. Pour en savoir plus sur Autokey, consultez Présentation d'Autokey.
Ce document s'adresse aux administrateurs.
Héritage de la configuration Autokey
Lorsque vous configurez Autokey sur un dossier, les dossiers et projets enfants de ce dossier héritent de la configuration Autokey de leur dossier parent. Lorsque vous configurez Autokey sur un dossier ou un projet enfant, vous décidez d'hériter ou non de la configuration de la ressource parente ou de créer une configuration Autokey pour cette ressource. Les configurations Autokey appliquées aux ressources enfants remplacent la configuration du dossier parent.
Le tableau suivant présente les cas d'utilisation de la configuration Autokey compatibles :
| Type de ressource | Configuration d'Autokey | Description |
|---|---|---|
| Organisation | Non applicable | Autokey ne peut pas être activé pour les organisations. Les ressources enfants d'une organisation héritent d'une ressource AutokeyConfig vide. Dans la console Google Cloud , ces ressources affichent un État Autokey Non activé. Si vous souhaitez restreindre l'utilisation d'Autokey dans votre organisation ou la désactiver complètement, vous pouvez utiliser des règles d'administration. Pour en savoir plus, consultez Contrôler l'utilisation d'Autokey. |
| Dossier | DEDICATED_KEY_PROJECT |
Autokey avec stockage des clés dans un projet dédié est activé pour les projets de ressources du dossier. Pour les projets de ressources qui héritent de cette configuration, Autokey crée des clés dans le projet de clés dédié. |
| Dossier | RESOURCE_PROJECT |
Autokey avec stockage des clés dans le même projet est activé pour les projets de ressources du dossier. Pour les projets de ressources qui héritent de cette configuration, Autokey crée des clés dans le même projet que les ressources qu'elles protègent. |
| Dossier | DISABLED |
Autokey est désactivé dans le dossier. Toutefois, les dossiers et projets enfants peuvent toujours remplacer cette configuration. Si vous souhaitez restreindre Autokey dans votre dossier ou le désactiver complètement, vous pouvez utiliser des règles d'administration. Pour en savoir plus, consultez Contrôler l'utilisation d'Autokey. |
| Dossier | KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED |
Le dossier hérite de la configuration Autokey de son dossier ou de son organisation parents. |
| Projet | RESOURCE_PROJECT |
Autokey avec stockage des clés dans le même projet est activé pour le projet de ressources. Pour les ressources créées dans ce projet, Autokey crée des clés dans le même projet. |
| Projet | DISABLED |
Autokey est désactivé pour le projet de ressources. Les développeurs qui créent des ressources dans ce projet doivent créer et provisionner manuellement des clés s'ils souhaitent utiliser CMEK pour les ressources qu'ils créent. |
| Projet | KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED |
Le projet hérite de la configuration Autokey de son dossier parent. |
Avant de commencer
Pour pouvoir activer Autokey avec le stockage des clés dans un projet dédié pour un dossier, vous devez disposer des éléments suivants :
Ressource d'organisation contenant un dossier dans lequel vous souhaitez activer Autokey. Si vous ne disposez pas d'un dossier dans lequel vous souhaitez activer Autokey, vous pouvez créer un dossier de ressources. L'activation d'Autokey dans ce dossier l'active pour tous les projets de ressources qu'il contient.
Si vous disposez de projets de ressources dans lesquels vous souhaitez utiliser Autokey avec un stockage de clés dédié, mais qu'ils ne se trouvent pas dans un dossier dans lequel vous allez activer Autokey, vous pouvez déplacer les projets de ressources existants vers de nouveaux dossiers.
Pour pouvoir activer Autokey avec le stockage des clés dans le même projet, vous devez disposer de l'un des éléments suivants :
- Un projet Google Cloud dans lequel vous souhaitez activer Autokey et où l'autorisation
keyHandles.createn'est pas bloquée par une stratégie de refus IAM. - Un dossier Google Cloud dans lequel vous souhaitez activer Autokey et qui contient au moins un projet dans lequel l'autorisation
keyHandles.createn'est pas bloquée par une règle de refus IAM.
Rôles requis
Pour obtenir les autorisations nécessaires pour activer et configurer Autokey, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le dossier, le projet ou une ressource parente :
-
Pour activer Autokey :
- Administrateur Cloud KMS Autokey (
roles/cloudkms.autokeyAdmin) - Administrateur Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Administrateur Cloud KMS Autokey (
-
Pour activer Autokey avec le stockage des clés dans un projet dédié :
- Administrateur IAM de dossier (
roles/resourcemanager.folderIamAdmin) - Utilisateur de compte de facturation (
roles/billing.user)
- Administrateur IAM de dossier (
-
Pour afficher la configuration de la clé automatique :
Lecteur Cloud KMS (
roles/cloudkms.viewer) -
Pour afficher toutes les configurations Autokey effectives :
- Lecteur d'éléments Cloud (
roles/cloudasset.viewer) au niveau de l'organisation - Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer)
- Lecteur d'éléments Cloud (
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour activer et configurer Autokey. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour activer et configurer Autokey :
-
Pour activer Autokey :
-
cloudkms.autokeyConfigs.* -
serviceusage.services.enable
-
-
Pour activer Autokey avec le stockage des clés dans un projet dédié :
-
resourcemanager.folders.get -
resourcemanager.folders.getIamPolicy -
resourcemanager.folders.setIamPolicy -
billing.resourceAssociations.create
-
-
Pour afficher la configuration Autokey :
-
cloudkms.folders.showEffectiveAutokeyConfig -
cloudkms.projects.showEffectiveAutokeyConfig
-
-
Pour afficher toutes les configurations Autokey effectives :
-
cloudasset.assets.query -
serviceusage.services.use
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Configuration de Terraform
Cette section contient des exemples de variables et de ressources Terraform qui sont des prérequis pour le reste des exemples Terraform de ce document. Si vous n'utilisez pas Terraform pour créer ni gérer vos configurations Autokey, ignorez cette section.
Cliquez ici pour afficher ou masquer l'exemple de configuration Terraform
Cet exemple effectue les étapes de configuration suivantes :
- Définissez les variables utilisées dans les exemples Terraform suivants.
- Créez un dossier de ressources. Vous pouvez ignorer cette étape si vous prévoyez d'utiliser uniquement le stockage de clés dans le même projet dans des projets individuels.
- Attribuez des rôles d'administrateur et d'utilisateur Autokey.
variable "organization_ID" { description = "Your Google Cloud Org ID" type = string default = "ORGANIZATION_ID" } variable "billing_account" { description = "Your Google Cloud Billing Account ID" type = string default = "BILLING_ACCOUNT_ID" } /* List the users who should have the authority to enable and configure Autokey at a folder level */ variable "autokey_folder_admins" { type = list(string) default = [AUTOKEY_ADMIN_USER_IDS] } /* List the users who should have the authority to protect their resources with Autokey */ variable "autokey_folder_users" { type = list(string) default = [AUTOKEY_DEVELOPER_USER_IDS] } /* List the users who should have the authority to manage crypto operations in the Autokey key project */ variable "autokey_project_kms_admins" { type = list(string) default = [KEY_PROJECT_ADMIN_USER_IDS] } # Create a new folder resource "google_folder" "autokey_folder" { parent = "organizations/${var.organization_ID}" display_name = "autokey_folder" } /* To use a folder that already exists, omit this block and instead create a variable for the folder ID instead, and then update subsequent resources to use the variable. */ # Set permissions for key admins to use Autokey in this folder resource "google_folder_iam_binding" "autokey_folder_admin" { folder = google_folder.autokey_folder.name role = "roles/cloudkms.autokeyAdmin" members = var.autokey_folder_admins } /* Set permissions for users to protect resources with Autokey in this folder */ resource "google_folder_iam_binding" "autokey_folder_users" { folder = google_folder.autokey_folder.name role = "roles/cloudkms.autokeyUser" members = var.autokey_folder_users }
Remplacez les éléments suivants :
BILLING_ACCOUNT_ID: ID de votre compte de facturation Google Cloud . L'ID du compte de facturation est une valeur alphanumérique de 18 caractères séparée par des tirets (par exemple,010101-F0FFF0-10XX01).AUTOKEY_ADMIN_USER_IDS: liste des adresses e-mail des utilisateurs auxquels le rôle `roles/cloudkms.autokeyAdmin` doit être attribué (par exemple,"Ariel@example.com", "Charlie@example.com").AUTOKEY_DEVELOPER_USER_IDS: liste des adresses e-mail des utilisateurs qui doivent disposer du rôle `roles/cloudkms.autokeyUser`, par exemple"Kalani@example.com", "Mahan@example.com".KEY_PROJECT_ADMIN_USER_IDS: liste des adresses e-mail des utilisateurs qui doivent disposer du rôle `roles/cloudkms.admin` (par exemple,"Sasha@example.com", "Nur@example.com").
Configurer Autokey avec le stockage des clés dans un projet dédié
Lorsque vous utilisez Autokey avec le stockage de clés dans un projet dédié dans un dossier, vous devez choisir un seul projet de clés pour contenir toutes les clés créées par Autokey dans ce dossier. Si vous utilisez le stockage des clés dans le même projet, vous n'avez pas besoin de projet de clés dédié. Passez à Activer Autokey avec le stockage des clés dans le même projet.
Nous vous recommandons de créer un projet de clés pour contenir les ressources Cloud KMS créées par Autokey. Vous devez créer le projet de clé dans votre ressource d'organisation. Si vous disposez déjà d'un projet de clés que vous souhaitez utiliser pour les clés créées par Autokey, vous pouvez ignorer la section Créer un projet de clés et passer à la section Configurer le projet de clés Autokey sur cette page.
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 essayez de créer des ressources protégées par Autokey dans le projet de clés, Autokey refuse la demande de nouvelle clé.
Si vous envisagez de migrer vers Assured Workloads à l'avenir, créez le projet de clés dans le même dossier que les ressources protégées par ces clés.
Si votre organisation utilise la contrainte de règle d'administration constraints/gcp.restrictCmekCryptoKeyProjects pour s'assurer que toutes les clés CMEK proviennent de projets de clés spécifiés, vous devez ajouter votre projet de clés à la liste des projets autorisés. Pour en savoir plus sur les règles d'administration CMEK, consultez Règles d'administration CMEK.
Créer un projet clé
Console
-
Dans la console Google Cloud , accédez à la page Gérer les ressources.
- Pour Sélectionner une organisation, sélectionnez la ressource d'organisation dans laquelle vous souhaitez créer un projet.
- Cliquez sur Create Project (Créer un projet).
- Dans la fenêtre Nouveau projet qui s'affiche, saisissez un nom de projet, puis sélectionnez un compte de facturation. Le nom du projet ne peut contenir que des lettres, des chiffres, des guillemets simples, des traits d'union, des espaces ou des points d'exclamation. Il doit comporter entre 4 et 30 caractères.
- Pour Emplacement, sélectionnez la ressource que vous souhaitez définir comme parent pour votre projet de clé.
- Pour terminer la création du projet, cliquez sur Créer.
gcloud
Créez un projet :
gcloud projects create PROJECT_ID \ --PARENT_TYPE=PARENT_IDRemplacez les éléments suivants :
PROJECT_ID: ID du projet contenant le trousseau de clés.PARENT_TYPE: type de ressource dans laquelle vous souhaitez créer le projet de clé. Saisissezorganizationpour créer le projet de clé sous une organisation donnée ou saisissezfolderpour créer le projet de clé sous un dossier donné.PARENT_ID: ID de l'organisation ou du dossier dans lequel vous souhaitez créer le projet clé.
REST
Créez un projet :
curl "https://cloudresourcemanager.googleapis.com/v3/projects/" --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{ "projectId": "PROJECT_ID", "name": "PROJECT_NAME", "parent": "PARENT_TYPE/PARENT_ID" }'Remplacez les éléments suivants :
PROJECT_ID: identifiant que vous souhaitez utiliser pour votre projet de clé dédié.PROJECT_NAME: nom que vous souhaitez utiliser pour votre projet de clé dédiée.PARENT_TYPE: type de ressource de la ressource parente dans laquelle vous souhaitez créer le projet de clé dédiée (par exemple,organizationsoufolders).PARENT_ID": identifiant de ressource de la ressource parente dans laquelle vous souhaitez créer le projet de clé dédié.
Terraform
L'exemple Terraform suivant crée un projet de clé dédié dans le dossier créé précédemment.
/* Define the project ID to use for the dedicated key project. The project
ID must be 6 to 30 characters with lowercase letters, digits, hyphens. The
project ID must start with a letter. Trailing hyphens are prohibited */
variable "key_management_project_ID" {
description = "Sets the project ID for the dedicated key project. This project will contain the Key Rings and Keys generated by Cloud KMS Autokey"
type = string
default = "KEY_PROJECT_ID"
}
# Create a key project to store keys created by Autokey
resource "google_project" "key_management_project" {
project_id = var.key_management_project_ID
name = var.key_management_project_ID
billing_account = var.billing_account
folder_id = google_folder.autokey_folder.name
}
output "project_number" {
value = google_project.key_management_project.number
}
Remplacez KEY_PROJECT_ID par l'ID à utiliser pour le projet de clé dédié, par exemple autokey-key-project.
Configurer un privilège sur un projet
Après avoir créé le projet Cloud KMS, nous vous recommandons de protéger le projet avec un lien (aperçu) pour éviter toute suppression accidentelle. Lorsqu'un privilège de projet est appliqué, la suppression du projet Cloud KMS est bloquée jusqu'à ce que le privilège soit supprimé.
Préparer le projet de clé dédiée
Console
Activez l'API Cloud KMS dans votre projet de clés.
Si vous utilisez un nouveau projet de clé, accordez les autorisations d'administrateur Cloud KMS sur le projet de clé. Répétez les étapes suivantes pour vous attribuer le rôle Administrateur Cloud KMS, ainsi qu'à chaque autre administrateur Cloud KMS :
Dans la console Google Cloud , accédez à la page IAM.
Sélectionnez le projet clé.
Cliquez sur Accorder l'accès, puis saisissez l'adresse e-mail de l'utilisateur.
Sélectionnez le rôle Administrateur Cloud KMS.
Cliquez sur Enregistrer.
gcloud
Activez l'API Cloud KMS dans votre projet de clés :
gcloud services enable cloudkms.googleapis.comAccordez des autorisations d'administrateur Cloud KMS sur le projet de clé. Répétez la commande suivante pour vous attribuer le rôle
roles/cloudkms.admin, ainsi qu'à chaque autre administrateur Cloud KMS :gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=user:KEY_ADMIN_EMAILRemplacez les éléments suivants :
PROJECT_NUMBER: numéro du projet de clé.KEY_ADMIN_EMAIL: adresse e-mail de l'utilisateur responsable de la gestion des clés Cloud KMS.
REST
Activez l'API Cloud KMS dans votre projet de clés :
curl "https://serviceusage.googleapis.com/v1/projects/PROJECT_ID/services/cloudkms.googleapis.com:enable" \ --request "POST" \ --header "authorization: Bearer TOKEN"Remplacez
PROJECT_IDpar l'identifiant de votre projet de clé dédiée.Obtenez la stratégie IAM actuelle pour le projet de clé dédiée.
curl "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy" \ --request POST \ --header "authorization: Bearer TOKEN" --header "Content-Type: application/json; charset=utf-8" \ --data '{"options": {"requestedPolicyVersion": 3}}'La réponse contient la stratégie d'autorisation actuelle du projet.
Modifiez la stratégie d'autorisation renvoyée pour ajouter le rôle
roles/cloudkms.adminà chaque utilisateur administrateur Cloud KMS, y compris vous-même, en utilisant l'exemple de liaison de rôle suivant comme guide :json { "role": "roles/cloudkms.admin", "members": [ "PRINCIPAL_LIST" ], }Remplacez
PRINCIPAL_LISTpar une liste de principaux utilisateur séparés par une virgule (par exemple,admin_1@example.com,admin_2@example.com).Cette modification ne prendra effet que lorsque vous aurez défini la nouvelle règle.
Définissez la nouvelle stratégie d'autorisation.
curl "https://cloudresourcemanager.googleapis.com/1/projects/PROJECT_ID:setIamPolicy" \ --request POST \ --header "authorization: Bearer TOKEN" \ --header "Content-Type: application/json; charset=utf-8" \ --data 'ALLOW_POLICY'Remplacez les éléments suivants :
PROJECT_ID: identifiant de votre projet de clé dédié.ALLOW_POLICY: le fichier JSON de la stratégie d'autorisation mise à jour que vous avez créé à l'étape précédente, y compris les attributions de rôle existantes et celles que vous venez d'ajouter.
Terraform
L'exemple Terraform suivant active l'API Cloud KMS dans le projet de clé dédié et accorde le rôle roles/cloudkms.admin aux principaux administrateurs Cloud KMS identifiés précédemment.
# Enable the Cloud KMS API in the key project
resource "google_project_service" "enable_api" {
service = "cloudkms.googleapis.com"
project = google_project.key_management_project.project_id
disable_on_destroy = false
disable_dependent_services = false
depends_on = [google_project.key_management_project]
}
/* Grant role for Cloud KMS admins to use Autokey in the
dedicated key project */
resource "google_project_iam_binding" "autokey_project_admin" {
project = google_project.key_management_project.project_id
role = "roles/cloudkms.admin"
members = var.autokey_project_kms_admins
depends_on = [ google_project.key_management_project ]
}
Activer Cloud KMS Autokey dans un dossier de ressources
Console
-
Dans la console Google Cloud , accédez à la page Commandes de gestion des clés.
- Dans le sélecteur de contexte, sélectionnez le dossier dans lequel vous souhaitez activer Autokey avec le stockage de clés de projet dédié.
- Dans la section Autokey, cliquez sur Gérer.
- Cliquez sur Configurer.
- Pour Source de configuration, sélectionnez Configurer pour le dossier.
- Pour Configuration, sélectionnez Activer le stockage des clés dans un projet dédié.
Sélectionnez votre projet clé, puis cliquez sur Envoyer.
Un message confirme que Cloud KMS Autokey est activé dans le dossier.
gcloud
Créez un fichier YAML contenant les
AutokeyConfigsuivants :name: folders/FOLDER_NUMBER/autokeyConfig keyProjectResolutionMode: DEDICATED_KEY_PROJECT keyProject: projects/PROJECT_IDRemplacez les éléments suivants :
FOLDER_NUMBER: numéro du dossier dans lequel vous souhaitez activer Autokey avec le stockage de clés dans un projet dédié.PROJECT_ID: identifiant de votre projet de clé dédié.
Appliquez le fichier
AutokeyConfigau dossier :gcloud kms autokey-config update AUTOKEY_CONFIG_PATHRemplacez AUTOKEY_CONFIG_PATH par le chemin d'accès au fichier YAML que vous avez créé à l'étape précédente.
REST
Créez le AutokeyConfig pour le dossier dans lequel vous souhaitez activer Autokey avec le stockage des clés dans un projet dédié :
curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject,keyProjectResolutionMode" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"keyProject": "projects/PROJECT_ID", "keyProjectResolutionMode": "DEDICATED_KEY_PROJECT"}'
Remplacez les éléments suivants :
FOLDER_ID: ID du dossier dans lequel vous souhaitez activer Autokey.PROJECT_ID: ID du projet de clé.
Terraform
/* Enable AutokeyConfig for dedicated-project key storage in the
folder */
resource "google_kms_autokey_config" "autokey_config" {
provider = google-beta
folder = google_folder.autokey_folder.folder_id
key_project = "projects/${google_project.key_management_project.project_id}"
key_project_resolution_mode = "DEDICATED_KEY_PROJECT"
/* For folder scope, valid values are DEDICATED_KEY_PROJECT,
RESOURCE_PROJECT, and DISABLED. With DEDICATED_KEY_PROJECT, define the
key_project as well. With RESOURCE_PROJECT, omit key_project. Keys will
be created in the same project as the protected resource. */
}
Configurer l'agent de service Cloud KMS
L'agent de service Cloud KMS d'un projet de clés crée des clés et applique des liaisons de règles 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 doit disposer des autorisations d'administrateur Cloud KMS.
gcloud
Créez l'agent de service Cloud KMS :
gcloud beta services identity create --service=cloudkms.googleapis.com \ --project=PROJECT_NUMBERRemplacez
PROJECT_NUMBERpar le numéro du projet clé.Le résultat ressemble à ce qui suit :
Service identity created: service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.comLe résultat de la commande indique que le compte de service Cloud EKM (avec le sous-domaine
gcp-sa-ekms) a été créé. Toutefois, la commande crée également l'agent de service Cloud KMS (avec le sous-domainegcp-sa-cloudkms), qui est l'agent de service que vous utiliserez plus tard dans ces instructions.Accordez à l'agent de service les autorisations d'administrateur Cloud KMS :
gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.comRemplacez
PROJECT_NUMBERpar le numéro du projet clé.
Terraform
# Create the Cloud KMS service agent
resource "google_project_service_identity" "KMS_Service_Agent" {
provider = google-beta
service = "cloudkms.googleapis.com"
project = google_project.key_management_project.project_id
depends_on = [google_project.key_management_project]
}
/* Grant role for the Cloud KMS service agent to use delegated
Cloud KMS administrator permissions */
resource "google_project_iam_member" "autokey_project_admin" {
project = google_project.key_management_project.project_id
role = "roles/cloudkms.admin"
member = "serviceAccount:service-${google_project.key_management_project.number}@gcp-sa-cloudkms.iam.gserviceaccount.com"
}
Activer Autokey avec le stockage des clés dans le même projet
Lorsque vous utilisez Autokey avec le stockage des clés dans le même projet, Autokey crée vos clés dans le même projet que les ressources qu'elles protègent. Les projets qui utilisent le stockage de clés dans le même projet peuvent exister dans des dossiers qui utilisent le stockage de clés dans un projet dédié. Lorsque Autokey est activé dans un projet, la configuration Autokey au niveau du projet remplace celle du dossier parent.
Pour activer Autokey avec le stockage des clés dans le même projet pour un projet individuel, procédez comme suit :
Console
-
Dans la console Google Cloud , accédez à la page Commandes de gestion des clés.
- Dans le sélecteur de contexte, sélectionnez le projet dans lequel vous souhaitez activer Autokey avec le stockage des clés dans le même projet.
- Dans la section Autokey, cliquez sur Gérer.
- Cliquez sur Configurer.
- Pour Source de configuration, sélectionnez Configurer pour le projet.
- Pour Configuration, sélectionnez Activer le stockage des clés dans le même projet.
Cliquez sur Envoyer.
Un message confirme que Cloud KMS Autokey est activé dans le projet.
gcloud
Créez un fichier YAML contenant les
AutokeyConfigsuivants :name: projects/PROJECT_ID/autokeyConfig keyProjectResolutionMode: RESOURCE_PROJECT keyProject:Remplacez
PROJECT_IDpar l'identifiant du projet dans lequel vous souhaitez activer Autokey avec le stockage de clés dans le même projet.Appliquez le
AutokeyConfigau projet :gcloud kms autokey-config update AUTOKEY_CONFIG_PATHRemplacez AUTOKEY_CONFIG_PATH par le chemin d'accès au fichier YAML que vous avez créé à l'étape précédente.
Activez l'API Cloud KMS sur le projet :
gcloud services enable cloudkms.googleapis.com
REST
À l'aide de l'API REST, créez le
AutokeyConfigpour le projet dans lequel vous souhaitez activer Autokey avec le stockage des clés dans le même projet :curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/autokeyConfig?updateMask=keyProjectResolutionMode,keyProject" \ --request "PATCH" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"keyProjectResolutionMode": "RESOURCE_PROJECT", "keyProject": ""}'Remplacez
PROJECT_IDpar l'ID du projet dans lequel vous souhaitez activer Autokey.Dans la gcloud CLI, activez l'API Cloud KMS sur le projet :
gcloud services enable cloudkms.googleapis.com
Terraform
Pour activer Autokey avec le stockage des clés dans le même projet sur un projet individuel, utilisez une ressource autokey_config_project semblable à ce qui suit :
/* To set autokey config for a project */
resource "google_kms_autokey_config" "autokey_config_project" {
provider = google-beta
project = "projects/${google_project.key_management_project.project_id}"
key_project_resolution_mode = "RESOURCE_PROJECT"
# For project scope, valid values are RESOURCE_PROJECT or DISABLED
}
Pour activer Autokey avec le stockage des clés dans le même projet pour tous les projets d'un dossier, procédez comme suit :
Console
-
Dans la console Google Cloud , accédez à la page Commandes de gestion des clés.
- Dans le sélecteur de contexte, sélectionnez le dossier dans lequel vous souhaitez activer Autokey avec le stockage de clés dans le même projet.
- Cliquez sur Configurer.
- Pour Source de configuration, sélectionnez Configurer pour le dossier.
- Pour Configuration, sélectionnez Activer le stockage des clés dans le même projet.
Cliquez sur Envoyer.
Un message confirme que Cloud KMS Autokey est activé dans le dossier.
gcloud
Créez un fichier YAML contenant les
AutokeyConfigsuivants :name: folders/FOLDER_NUMBER/autokeyConfig keyProjectResolutionMode: RESOURCE_PROJECT keyProject:Remplacez
FOLDER_NUMBERpar le numéro du dossier dans lequel vous souhaitez activer Autokey avec le stockage de clés dans le même projet.Appliquez le fichier
AutokeyConfigau dossier :gcloud kms autokey-config update AUTOKEY_CONFIG_PATHRemplacez AUTOKEY_CONFIG_PATH par le chemin d'accès au fichier YAML que vous avez créé à l'étape précédente.
REST
À l'aide de l'API REST, créez le
AutokeyConfigpour le dossier dans lequel vous souhaitez activer Autokey avec le stockage de clés dans le même projet :curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProjectResolutionMode,keyProject" \ --request "PATCH" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"keyProjectResolutionMode": "RESOURCE_PROJECT", "keyProject": ""}'Remplacez
FOLDER_IDpar l'ID du dossier dans lequel vous souhaitez activer Autokey. Cette commande active Autokey avec le stockage des clés dans le même projet pour tous les projets du dossier.Dans gcloud CLI, activez l'API Cloud KMS dans chaque projet où vous souhaitez utiliser Autokey avec le stockage de clés dans le même projet :
gcloud services enable cloudkms.googleapis.comVous pouvez activer l'API Cloud KMS sur chaque projet en une seule fois ou l'activer sur des projets individuels selon vos besoins. Vos développeurs ne peuvent pas utiliser Autokey dans le projet tant que l'API Cloud KMS n'est pas activée pour ce projet.
Terraform
Pour activer Autokey avec le stockage des clés dans le même projet sur tous les projets d'un dossier, utilisez une ressource folder_config semblable à la suivante :
/* Enable AutokeyConfig on a folder */
resource "google_kms_autokey_config" "folder_config" {
provider = google-beta
folder = google_folder.autokey_folder.name
key_project_resolution_mode = "RESOURCE_PROJECT"
/* For folder scope, valid values are DEDICATED_KEY_PROJECT,
RESOURCE_PROJECT, or DISABLED. With DEDICATED_KEY_PROJECT, define the
key_project as well. With RESOURCE_PROJECT, omit key_project. Keys will
be created in the same project as the protected resource. */
}
Effacer la configuration Autokey
Vous pouvez effacer la configuration Autokey d'un dossier ou d'un projet pour revenir à la configuration du dossier parent.
Console
-
Dans la console Google Cloud , accédez à la page Commandes de gestion des clés.
- Dans le sélecteur de contexte, sélectionnez le dossier ou le projet dans lequel vous souhaitez effacer la configuration Autokey.
- Dans la section Autokey, cliquez sur Gérer.
- Cliquez sur Configurer.
- Dans le champ Source de configuration, sélectionnez Hériter.
- Cliquez sur Envoyer.
gcloud
Créez un fichier YAML contenant les
AutokeyConfigsuivants :name: RESOURCE_TYPE/RESOURCE_ID/autokeyConfig keyProjectResolutionMode: KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED keyProject:Remplacez les éléments suivants :
RESOURCE_TYPE: type de ressource pour laquelle vous souhaitez effacer la configuration Autokey. Définissez-le surfoldersouprojects.RESOURCE_ID: identifiant du dossier dans lequel vous souhaitez effacer la configuration Autokey.
Appliquez le code
AutokeyConfigau dossier ou au projet :gcloud kms autokey-config update AUTOKEY_CONFIG_PATHRemplacez AUTOKEY_CONFIG_PATH par le chemin d'accès au fichier YAML que vous avez créé à l'étape précédente.
REST
Décochez la case AutokeyConfig pour le dossier ou le projet pour lesquels vous souhaitez rétablir la configuration Autokey héritée :
curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/autokeyConfig?updateMask:keyProjectResolutionMode,keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"keyProjectResolutionMode": "KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED", "keyProject": ""}'
Remplacez les éléments suivants :
RESOURCE_TYPE: type de ressource pour lequel vous souhaitez désactiver Autokey. Définissez-le surfoldersouprojects.RESOURCE_ID: identifiant du dossier dans lequel vous souhaitez désactiver Autokey avec le stockage de clés dans le même projet.
Terraform
# Clear AutokeyConfig for the folder
resource "google_kms_autokey_config" "autokey_config" {
provider = google-beta
folder = google_folder.autokey_folder.folder_id
key_project = ""
key_project_resolution_mode = "KEY_PROJECT_RESOLUTION_MODE_UNSPECIFIED"
}
Afficher la configuration Autokey effective
Vous pouvez afficher la configuration Autokey effective d'un dossier ou d'un projet. La configuration Autokey effective vous indique les éléments suivants :
- Indique si Autokey est activé sur la ressource sélectionnée.
- Si Autokey est activé, indique si la ressource sélectionnée utilise le stockage des clés dans un projet dédié ou dans le même projet.
- Si la ressource sélectionnée utilise le stockage de clés de projet dédié, l'identifiant de ressource du projet de clé dédié.
Indique si cette configuration Autokey est héritée d'un dossier parent ou configurée sur la ressource sélectionnée.
Console
-
Dans la console Google Cloud , accédez à la page Commandes de gestion des clés.
- Dans le sélecteur de contexte, sélectionnez le dossier ou le projet dans lequel vous souhaitez afficher les paramètres Autokey.
- Dans la section Autokey, cliquez sur Gérer.
gcloud
Affichez le AutokeyConfig effectif :
gcloud kms autokey-config show-effective-config \
--RESOURCE_TYPE=RESOURCE_ID
Remplacez les éléments suivants :
RESOURCE_TYPE: type de ressource pour lequel vous souhaitez afficher la configuration Autokey effective. Définissez-le surfolderouproject.RESOURCE_ID: identifiant de la ressource pour laquelle vous souhaitez afficher la configuration Autokey effective.
Le résultat ressemble à ce qui suit :
keyProject: KEY_PROJECT
keyProjectResolutionMode: KEY_PROJECT_RESOLUTION_MODE
source:
name: RESOURCE_IDENTIFIER
Ce résultat inclut les valeurs suivantes :
KEY_PROJECT: identifiant de ressource du projet clé (par exemple,projects/PROJECT_ID). Si Autokey est désactivé ou si la ressource est un dossier dans lequel le stockage des clés dans le même projet est activé, ce champ est omis.KEY_PROJECT_RESOLUTION_MODE:keyProjectResolutionModede la ressource, par exempleRESOURCE_PROJECT,DEDICATED_KEY_PROJECTouDISABLED. Si Autokey n'est pas activé sur la ressource ou sur une ressource parente, ce champ est omis.RESOURCE_IDENTIFIER: identifiant de ressource de la ressource où leAutokeyConfigest configuré. Cela vous permet de déterminer si leAutokeyConfigest hérité d'une ressource parente ou configuré sur la ressource que vous avez interrogée.
REST
Affichez la AutokeyConfig effective pour un dossier ou un projet :
curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:showEffectiveAutokeyConfig" \
--request "GET" \
--header "authorization: Bearer TOKEN"
```
Replace the following:
RESOURCE_TYPE: type de ressource pour lequel vous souhaitez afficher la configuration Autokey. Définissez-le surfoldersouprojects.RESOURCE_ID: identifiant de la ressource pour laquelle vous souhaitez afficher la configuration Autokey.
Le résultat ressemble à ce qui suit :
{
"keyProject": KEY_PROJECT,
"keyProjectResolutionMode": KEY_PROJECT_RESOLUTION_MODE,
"source": {
RESOURCE_IDENTIFIER
}
}
Ce résultat inclut les valeurs suivantes :
KEY_PROJECT: identifiant de ressource du projet clé (par exemple,projects/PROJECT_ID). Si Autokey est désactivé ou si la ressource est un dossier dans lequel le stockage des clés dans le même projet est activé, ce champ est omis.KEY_PROJECT_RESOLUTION_MODE:keyProjectResolutionModede la ressource, par exempleRESOURCE_PROJECT,DEDICATED_KEY_PROJECTouDISABLED. Si Autokey n'est pas activé sur la ressource ou sur une ressource parente, ce champ est omis.RESOURCE_IDENTIFIER: identifiant de ressource de la ressource où leAutokeyConfigest configuré. Cela vous permet de déterminer si leAutokeyConfigest hérité d'une ressource parente ou configuré sur la ressource que vous avez interrogée.
SQL
Vous pouvez utiliser une requête SQL avec l'inventaire des éléments cloud pour évaluer la configuration Autokey effective pour tous les projets d'un dossier ou d'une organisation.
Définissez des variables d'environnement bash pour l'ID d'organisation et le champ d'application de la recherche.
export ORG_ID="ORGANIZATION_ID" export TARGET_SCOPE="RESOURCE_TYPE/RESOURCE_ID"Remplacez les éléments suivants :
ORGANIZATION_ID: identifiant numérique de votre organisation.RESOURCE_TYPE: type de ressource pour lequel vous souhaitez afficher les configurations Autokey effectives. Définissez la valeur surorganizationspour afficher les configurations de tous les projets de votre organisation ou surfolderspour afficher les configurations de tous les projets d'un dossier spécifique.RESOURCE_ID: identifiant numérique de l'organisation ou du dossier dans lequel vous souhaitez afficher les configurations Autokey effectives.
Utilisez la commande
gcloud asset querypour exécuter la requête.gcloud asset query \ --organization="${ORG_ID}" \ --statement=" WITH ProjectConfigs AS ( SELECT p.name AS project_name, ARRAY_AGG( STRUCT( ancestor AS config_source, c.resource.data.state AS state, c.resource.data.keyProjectResolutionMode AS resolution_mode, c.resource.data.keyProject AS key_project ) ORDER BY offset LIMIT 1 )[SAFE_OFFSET(0)] AS effective_config FROM STANDARD_METADATA p CROSS JOIN UNNEST(p.ancestors) AS ancestor WITH OFFSET AS offset JOIN cloudkms_googleapis_com_AutokeyConfig c ON ancestor = REGEXP_REPLACE(c.name, r'^//cloudkms\.googleapis\.com/([^/]+/\d+)/autokeyConfig$', r'\1') WHERE p.assetType = 'cloudresourcemanager.googleapis.com/Project' GROUP BY p.name ) SELECT REPLACE(r.name, '//cloudresourcemanager.googleapis.com/', '') AS project_name, p.resource.data.projectId AS project_id, COALESCE(rc.effective_config.config_source, 'No Autokey') AS effective_config_source, rc.effective_config.state AS autokey_config_state, rc.effective_config.resolution_mode AS resolution_mode, CASE WHEN rc.effective_config.resolution_mode = 'RESOURCE_PROJECT' THEN p.resource.data.projectId ELSE COALESCE(REPLACE(rc.effective_config.key_project, 'projects/', ''), 'No Key Project') END AS key_project FROM STANDARD_METADATA r LEFT JOIN ProjectConfigs rc ON r.name = rc.project_name LEFT JOIN cloudresourcemanager_googleapis_com_Project p ON r.name = p.name WHERE r.assetType = 'cloudresourcemanager.googleapis.com/Project' AND '${TARGET_SCOPE}' IN UNNEST(r.ancestors) "Le résultat inclut les champs suivants :
project_number: identifiant numérique complet de la ressource de chaque projet (par exemple,projects/PROJECT_NUMBER).project_id: identifiant de chaque projet, par exemplePROJECT_ID.effective_config_source: identifiant de ressource de la ressource où la configuration Autokey du projet est définie (par exemple,folders/FOLDER_NUMBERsi la configuration est héritée d'un dossier parent ouprojects/PROJECT_NUMBERsi la configuration est définie sur le projet). Si le projet ne possède pas ou n'hérite pas d'unAutokeyConfig, ce champ afficheNo Autokey.autokey_config_state: indique si une configuration Autokey estACTIVEdans le dossier, même si cette configuration estDISABLED. Si le projet ne possède pas ou n'hérite pas d'unAutokeyConfig, ce champ est vide.resolution_mode: mode de résolution du projet clé de la configuration Autokey effective sur le projet.key_project: indique où Autokey crée des clés pour les ressources du projet (par exemple,projects/KEY_PROJECT_IDlorsque le projet utilise le stockage des clés dans un projet dédié ouRESOURCE_PROJECT_IDlorsque le projet utilise le stockage des clés dans le même projet). Lorsque Autokey n'est pas activé dans le projet, ce champ afficheNo key project.
Désactiver Autokey
Les rôles qui peuvent activer Autokey peuvent également le désactiver. Pour désactiver Autokey, vous pouvez effacer AutokeyConfig ou définir feedbackKeyProjectResolutionMode sur DISABLED. Vous pouvez désactiver Autokey pour un dossier ou un projet. Vous pouvez également désactiver AutoKey pour des projets individuels dans un dossier où AutoKey est activé.
Une fois Autokey désactivé pour un dossier ou un projet, l'agent de service Cloud KMS ne peut plus créer de clés pour les développeurs lorsqu'ils créent des ressources dans ce dossier ou projet.
Si vous souhaitez désactiver complètement Autokey, nous vous recommandons également de supprimer les liaisons IAM pour les rôles roles/cloudkms.autokeyAdmin et roles/cloudkms.autokeyUser.
La désactivation d'Autokey n'a aucune incidence sur les clés existantes dans le projet de clés. Vous pouvez continuer à utiliser ces clés pour protéger vos ressources.
Désactiver Autokey pour un dossier ou un projet
Console
-
Dans la console Google Cloud , accédez à la page Commandes de gestion des clés.
- Dans le sélecteur de contexte, sélectionnez le dossier ou le projet dans lequel vous souhaitez désactiver Autokey.
- Dans la section Autokey, cliquez sur Gérer.
- Cliquez sur Configurer.
- Pour Source de configuration, sélectionnez Configurer pour le dossier ou Configurer pour le projet.
- Pour Configuration, sélectionnez Désactiver AutoKey pour le dossier ou Désactiver AutoKey pour le projet.
Cliquez sur Envoyer.
Un message s'affiche pour vous demander de confirmer que vous souhaitez désactiver Autokey.
Pour désactiver Autokey, cliquez sur Confirmer.
Un message confirme que Cloud KMS Autokey est désactivé.
gcloud
Créez un fichier YAML contenant les
AutokeyConfigsuivants :name: RESOURCE_TYPE/RESOURCE_ID/autokeyConfig keyProjectResolutionMode: DISABLED keyProject:Remplacez les éléments suivants :
RESOURCE_TYPE: type de ressource pour lequel vous souhaitez désactiver Autokey. Définissez-le surfoldersouprojects.RESOURCE_ID: identifiant du dossier dans lequel vous souhaitez désactiver Autokey avec le stockage de clés dans le même projet.
Appliquez le code
AutokeyConfigau dossier ou au projet :gcloud kms autokey-config update AUTOKEY_CONFIG_PATHRemplacez AUTOKEY_CONFIG_PATH par le chemin d'accès au fichier YAML que vous avez créé à l'étape précédente.
REST
Mettez à jour le fichier AutokeyConfig du dossier ou du projet pour lequel vous souhaitez désactiver Autokey :
curl "https://cloudkms.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/autokeyConfig?updateMask:keyProjectResolutionMode,keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"keyProjectResolutionMode": "DISABLED", "keyProject": ""}'
Remplacez les éléments suivants :
RESOURCE_TYPE: type de ressource pour lequel vous souhaitez désactiver Autokey. Définissez-le surfoldersouprojects.RESOURCE_ID: identifiant du dossier dans lequel vous souhaitez désactiver Autokey avec le stockage de clés dans le même projet.
Terraform
# Clear AutokeyConfig for the folder
resource "google_kms_autokey_config" "autokey_config" {
provider = google-beta
folder = google_folder.autokey_folder.folder_id
key_project = ""
key_project_resolution_mode = "DISABLED"
}
Révoquer les rôles Autokey
Si vous désactivez Autokey en mettant à jour AutokeyConfig, l'agent de service Cloud KMS ne pourra plus provisionner de clés dans le projet ou le dossier concerné. Toutefois, si vous souhaitez désactiver complètement Autokey, nous vous recommandons de supprimer également les liaisons IAM pour les rôles roles/cloudkms.autokeyAdmin et roles/cloudkms.autokeyUser.
Facultatif : Révoquez le rôle
roles/cloudkms.autokeyAdmin:gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyAdmin \ --member=user:USER_EMAILRemplacez les éléments suivants :
FOLDER_ID: ID du dossier dans lequel vous avez désactivé Autokey.USER_EMAIL: adresse e-mail de l'utilisateur pour lequel vous souhaitez révoquer l'autorisation de gérer Autokey.
Facultatif : Révoquez le rôle
roles/cloudkms.autokeyUserau niveau du dossier :gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAILRemplacez les éléments suivants :
FOLDER_ID: ID du dossier dans lequel vous avez désactivé Autokey.USER_EMAIL: adresse e-mail de l'utilisateur pour lequel vous souhaitez révoquer l'autorisation d'utiliser Autokey.
(Facultatif) Révoquez le rôle
roles/cloudkms.autokeyUserau niveau du projet :gcloud projects remove-iam-policy-binding \ RESOURCE_PROJECT_NUMBER \ --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAILRemplacez les éléments suivants :
RESOURCE_PROJECT_NUMBER: numéro du projet de ressources dans le dossier où vous avez désactivé Autokey.USER_EMAIL: adresse e-mail de l'utilisateur pour lequel vous souhaitez révoquer l'autorisation d'utiliser Autokey.
Facultatif : Si vous ne prévoyez pas de continuer à utiliser le projet de clé pour Autokey pour d'autres dossiers, révoquez le rôle
roles/cloudkms.adminpour l'agent de service Cloud KMS :gcloud projects remove-iam-policy-binding \ KEY_PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.comRemplacez
KEY_PROJECT_NUMBERpar l'ID numérique du projet de clé.Facultatif : Si vous ne prévoyez pas de continuer à utiliser les clés créées dans le projet de clés, révoquez le rôle
roles/cloudkms.adminpour l'administrateur Cloud KMS :gcloud projects remove-iam-policy-binding \ KEY_PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=user:KEY_ADMIN_EMAILRemplacez les éléments suivants :
KEY_PROJECT_NUMBER: numéro du projet de clé.KEY_ADMIN_EMAIL: adresse e-mail de l'utilisateur auquel vous souhaitez révoquer l'autorisation de configurer Autokey.
Étapes suivantes
- Découvrez quand utiliser Autokey.
- En savoir plus sur le fonctionnement d'Autokey
- Découvrez comment contrôler l'utilisation d'Autokey.
- Vos développeurs Autokey peuvent désormais créer des ressources protégées à l'aide d'Autokey.