Cette page explique comment créer des ressources protégées à l'aide de clés créées par Cloud KMS Autokey pour le chiffrement. Pour en savoir plus sur Autokey, consultez la section Présentation de la clé automatique.
Avant de commencer
Avant de pouvoir créer des ressources protégées à l'aide d'Autokey, vous devez effectuer les étapes suivantes pour vous préparer:
- Si vous ne disposez pas encore d'un projet de ressources dans le dossier Autokey, vous devez en créer un pour contenir les ressources que vous prévoyez de créer.
-
Pour obtenir les autorisations nécessaires pour utiliser Autokey afin de créer des ressources protégées, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur Cloud KMS Autokey (
roles/cloudkms.autokeyUser
) sur le dossier ou le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
- Vous devez également disposer d'autorisations de création de ressources dans le dossier Autokey ou dans un projet de ressources du dossier. Pour en savoir plus sur les autorisations requises pour créer chaque ressource, consultez la documentation spécifique au service. Pour accéder à cette documentation, recherchez le service dans la table des intégrations CMEK, puis cliquez sur le lien correspondant au type de ressource que vous souhaitez créer.
Utiliser Autokey avec des ressources 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.
Autokey ne crée pas de clés pour les instantanés. Les instantanés doivent utiliser la même clé que celle utilisée pour chiffrer le disque. Si vous créez un instantané à l'aide de la console Google Cloud, la clé de chiffrement utilisée par le disque est automatiquement appliquée à l'instantané. Si vous créez un instantané à l'aide de gcloud CLI, Terraform ou de l'API Compute Engine, vous devez identifier la clé utilisée pour chiffrer le disque et l'utiliser pour chiffrer l'instantané.
Pour en savoir plus sur l'utilisation de CMEK avec les instantanés, consultez la section Créer un instantané à partir d'un disque chiffré avec CMEK.
Créer une ressource Compute Engine protégée
Console
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 saisissez les propriétés du nouveau disque.
Sous Chiffrement, sélectionnez Clé Cloud KMS.
Pour Type de clé, sélectionnez Cloud KMS avec clé automatique, puis cliquez sur Demander une nouvelle clé. Un message vous indique quand votre clé a bien été créée et 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 d'instance de VM, d'image et d'image système protégées.
Terraform
L'exemple Terraform suivant crée un handle de clé et utilise la clé renvoyée pour protéger une nouvelle ressource de disque persistant:
resource "google_kms_key_handle" "my_key_handle" {
provider = google-beta
project = "RESOURCE_PROJECT_ID"
name = "KEY_HANDLE"
location = "LOCATION"
resource_type_selector = "compute.googleapis.com/Disk"
}
resource "google_compute_disk" "persistent_disk" {
project = "RESOURCE_PROJECT_ID"
name = "DISK_NAME"
type = "pd-ssd"
zone = "ZONE"
size = 30
physical_block_size_bytes = 4096
disk_encryption_key {
kms_key_self_link = google_kms_key_handle.my_key_handle.kms_key
}
}
Remplacez les éléments suivants :
RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.KEY_HANDLE
: ID à utiliser pour le conteneur de clé.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.DISK_NAME
: le nom du nouveau disque.ZONE
: zone de la ressource protégée. Il doit s'agir d'une zone située dans l'emplacement où vous créez la ressource. Par exemple, si vous créez la ressource dans l'emplacementus-central1
, la zone peut êtreus-central1-a
.
Cloud KMS ne vous permet pas de supprimer les ressources KeyHandle
. Si vous utilisez un modèle de création et de destruction, une tentative de recréation d'un KeyHandle
génère une erreur ALREADY_EXISTS
. Pour éviter ce problème, vous pouvez importer un KeyHandle
créé précédemment. Pour en savoir plus, consultez la section Créer et détruire des modèles dans Terraform sur cette page.
API
Demandez une nouvelle clé Cloud KMS en créant un
KeyHandle
:curl -H "Content-Type: application/json" \ -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \ -d '{"resource_type_selector": "RESOURCE_TYPE"}'
Remplacez les éléments suivants :
USER_PROJECT
: projet pour lequel les frais associés à cette requête seront facturés.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.RESOURCE_TYPE
: type de ressource que vous souhaitez créer (par exemple,compute.googleapis.com/Disk
)
Le résultat ressemble à ce qui suit :
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata" } }
Notez l'
OPERATION_ID
dans la sortie. Vous avez besoin de cette valeur pour obtenir l'ID de ressource de la clé créée.Recherchez la clé Cloud KMS associée à la poignée de clé:
curl -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Remplacez les éléments suivants :
USER_PROJECT
: projet pour lequel les frais associés à cette requête seront facturés.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.OPERATION_ID
: identifiant de l'opération de requête de poignée de clé à partir de la sortie de l'étape précédente.
Le résultat ressemble à ce qui suit :
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle", "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE", "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME", "resourceTypeSelector": "RESOURCE_TYPE" } }
La valeur de l'élément
kmsKey
dans la sortie correspond à l'ID de ressource complet de la clé créée par Autokey pour cette ressource. Vous pouvez utiliser cet ID de ressource de la même manière que vous le feriez pour toute autre ressource Cloud KMS.Créez un disque chiffré à l'aide de la commande
gcloud compute disks create
, avec l'option--kms-key
:gcloud compute disks create DISK_NAME \ --kms-key projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
Remplacez les éléments suivants :
DISK_NAME
: le nom du nouveau disque.KEY_PROJECT_ID
: ID du projet de clé.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource.KEY_NAME
: nom de la clé renvoyée dans la sortie de l'étape précédente.
Utiliser Autokey avec des ressources Cloud Storage
Autokey crée une clé au même emplacement que le bucket. La clé créée par Autokey est attribuée 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.
Si vous souhaitez modifier la clé par défaut attribuée à un bucket, vous pouvez utiliser n'importe quelle clé CMEK existante, y compris les clés créées par Autokey.
Créer une ressource Cloud Storage protégée
Console
Dans la console Google Cloud, accédez à la page Créer un bucket.
Suivez les instructions pour créer un bucket jusqu'à Choisir comment protéger les données des objets.
Sous Choisir comment protéger les données d'objet, développez la section Chiffrement des données, puis sélectionnez Clé Cloud KMS.
Pour Type de clé, sélectionnez Cloud KMS avec clé automatique, puis cliquez sur Demander une nouvelle clé. Un message vous indique quand votre clé a bien été créée et est prête à être utilisée.
Pour terminer la création du bucket, cliquez sur Créer.
Terraform
L'exemple Terraform suivant crée un handle de clé et utilise la clé renvoyée pour protéger un nouveau bucket de stockage:
resource "google_kms_key_handle" "my_key_handle" {
provider = google-beta
project = "RESOURCE_PROJECT_ID"
name = "KEY_HANDLE"
location = "LOCATION"
resource_type_selector = "storage.googleapis.com/Bucket"
}
resource "google_storage_bucket" "simple_bucket_name" {
name = "BUCKET_NAME"
location = "LOCATION"
force_destroy = true
project = "RESOURCE_PROJECT_ID"
uniform_bucket_level_access = true
encryption {
default_kms_key_name = google_kms_key_handle.my_key_handle.kms_key
}
}
Remplacez les éléments suivants :
RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.KEY_HANDLE
: ID à utiliser pour le conteneur de clé.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.BUCKET_NAME
: nom du nouveau bucket.
Cloud KMS ne vous permet pas de supprimer les ressources KeyHandle
. Si vous utilisez un modèle de création et de destruction, une tentative de recréation d'un KeyHandle
génère une erreur ALREADY_EXISTS
. Pour éviter ce problème, vous pouvez importer un KeyHandle
créé précédemment. Pour en savoir plus, consultez la section Créer et détruire des modèles dans Terraform sur cette page.
API
Demandez une nouvelle clé Cloud KMS en créant un
KeyHandle
:curl -H "Content-Type: application/json" \ -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \ -d '{"resource_type_selector": "RESOURCE_TYPE"}'
Remplacez les éléments suivants :
USER_PROJECT
: projet pour lequel les frais associés à cette requête seront facturés.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.RESOURCE_TYPE
: type de ressource que vous souhaitez créer (par exemple,storage.googleapis.com/Bucket
)
Le résultat ressemble à ce qui suit :
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata" } }
Notez l'
OPERATION_ID
dans la sortie. Vous avez besoin de cette valeur pour obtenir l'ID de ressource de la clé créée.Recherchez la clé Cloud KMS associée au conteneur de clés:
curl -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Remplacez les éléments suivants :
USER_PROJECT
: projet pour lequel les frais associés à cette requête seront facturés.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.OPERATION_ID
: identifiant de l'opération de requête de poignée de clé à partir de la sortie de l'étape précédente.
Le résultat ressemble à ce qui suit :
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle", "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE", "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME", "resourceTypeSelector": "RESOURCE_TYPE" } }
La valeur de l'élément
kmsKey
dans la sortie correspond à l'ID de ressource complet de la clé créée par Autokey pour cette ressource. Vous pouvez utiliser cet ID de ressource de la même manière que vous le feriez pour toute autre ressource Cloud KMS.Créez un bucket chiffré à l'aide de la commande
gcloud storage buckets create
, avec l'option--default-encryption-key
:gcloud storage buckets create gs://BUCKET_NAME \ --location=LOCATION \ --default-encryption-key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
Remplacez les éléments suivants :
BUCKET_NAME
: nom du nouveau bucket. Le nom du bucket doit respecter les exigences concernant les noms de buckets.LOCATION
: emplacement dans lequel vous souhaitez créer le bucket.KEY_PROJECT_ID
: ID du projet de clé.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource.KEY_NAME
: nom de la clé renvoyée dans la sortie de l'étape précédente.
Utiliser Autokey avec des ressources BigQuery
Cloud KMS est disponible dans plusieurs éditions de BigQuery. Assurez-vous que l'édition de BigQuery que vous utilisez est compatible avec Cloud KMS avant d'essayer d'utiliser Autokey pour protéger les ressources BigQuery. Pour en savoir plus sur les éditions BigQuery, consultez Comprendre les éditions BigQuery.
Pour chaque nouvel ensemble de données, Autokey crée une clé, au 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 ni 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 lors de la création de la ressource.
Pour les requêtes et les tables temporaires qui ne se trouvent pas dans un ensemble de données, utilisez les clés par défaut du projet. Utilisez une clé par défaut de projet différente pour chaque emplacement du projet contenant des ressources BigQuery. Pour en savoir plus sur l'utilisation des clés par défaut du projet, consultez la section Définir une clé par défaut pour le projet.
Pour en savoir plus sur l'utilisation de CMEK avec BigQuery, consultez la section Clés Cloud KMS gérées par le client.
Créer une ressource BigQuery protégée
Console
Avant de tenter de créer un ensemble de données BigQuery à l'aide d'Autokey, assurez-vous de disposer des autorisations requises. Pour en savoir plus sur la création d'ensembles de données, consultez Créer des ensembles de données.
Dans la console Google Cloud, accédez à la page BigQuery.
Suivez les instructions pour créer un ensemble de données jusqu'à Options avancées > Chiffrement.
Sous Chiffrement, sélectionnez Clé Cloud KMS.
Pour Type de clé, sélectionnez Cloud KMS avec clé automatique, puis cliquez sur Demander une nouvelle clé. Un message vous indique quand votre clé a bien été créée et est prête à être utilisée.
Pour terminer de créer l'ensemble de données, cliquez sur Créer un ensemble de données.
Terraform
L'exemple Terraform suivant crée un handle de clé et utilise la clé renvoyée pour protéger un nouvel ensemble de données:
resource "google_kms_key_handle" "my_key_handle" {
provider = google-beta
project = "RESOURCE_PROJECT_ID"
name = "test-key-handle"
location = "LOCATION"
resource_type_selector = "bigquery.googleapis.com/Dataset"
}
resource "google_bigquery_dataset" "dataset" {
project = "RESOURCE_PROJECT_ID"
dataset_id = "DATASET_ID"
friendly_name = "DATASET_NAME"
description = "DATASET_DESCRIPTION"
location = "LOCATION"
default_table_expiration_ms = 3600000
default_encryption_configuration {
kms_key_name = google_kms_key_handle.my_key_handle.kms_key
}
}
Remplacez les éléments suivants :
RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.DATASET_ID
: ID à utiliser pour le nouvel ensemble de données.DATASET_NAME
: nom convivial du nouvel ensemble de données.DATASET_DESCRIPTION
: description du nouvel ensemble de données.
Cloud KMS ne vous permet pas de supprimer les ressources KeyHandle
. Si vous utilisez un modèle de création et de destruction, une tentative de recréation d'un KeyHandle
génère une erreur ALREADY_EXISTS
. Pour éviter ce problème, vous pouvez importer un KeyHandle
créé précédemment. Pour en savoir plus, consultez la section Créer et détruire des modèles dans Terraform sur cette page.
API
Demandez une nouvelle clé Cloud KMS en créant un
KeyHandle
:curl -H "Content-Type: application/json" \ -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \ -d '{"resource_type_selector": "RESOURCE_TYPE"}'
Remplacez les éléments suivants :
USER_PROJECT
: projet pour lequel les frais associés à cette requête seront facturés.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.RESOURCE_TYPE
: type de ressource que vous souhaitez créer (par exemple,bigquery.googleapis.com/Dataset
)
Le résultat ressemble à ce qui suit :
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata" } }
Notez l'
OPERATION_ID
dans la sortie. Vous avez besoin de cette valeur pour obtenir l'ID de ressource de la clé créée.Recherchez la clé Cloud KMS associée au conteneur de clés:
curl -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Remplacez les éléments suivants :
USER_PROJECT
: projet pour lequel les frais associés à cette requête seront facturés.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.OPERATION_ID
: identifiant de l'opération de requête de poignée de clé à partir de la sortie de l'étape précédente.
Le résultat ressemble à ce qui suit :
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle", "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE", "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME", "resourceTypeSelector": "RESOURCE_TYPE" } }
La valeur de l'élément
kmsKey
dans la sortie correspond à l'ID de ressource complet de la clé créée par Autokey pour cette ressource. Vous pouvez utiliser cet ID de ressource de la même manière que vous le feriez pour toute autre ressource Cloud KMS.Créez un ensemble de données chiffré à l'aide de la commande
bq mk
, avec l'option--destination_kms_key
.bq --location=LOCATION mk \ --dataset \ --default_kms_key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME \ --default_table_expiration=TABLE_EXPIRATION \ --description="DATASET_DESCRIPTION" \ RESOURCE_PROJECT_ID:DATASET_ID
Remplacez les éléments suivants :
LOCATION
: emplacement où vous souhaitez créer l'ensemble de données.KEY_PROJECT_ID
: ID du projet de clé.KEY_NAME
: nom de la clé renvoyée dans la sortie de l'étape précédente.TABLE_EXPIRATION
: durée de vie par défaut des nouvelles tables de cet ensemble de données, en secondes.DATASET_DESCRIPTION
: description du nouvel ensemble de données.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.DATASET_ID
: ID de l'ensemble de données que vous créez.
Pour en savoir plus sur l'outil
bq
, consultez Explorer l'outil de ligne de commande bq.
Utiliser Autokey avec les ressources Secret Manager
Autokey crée une seule clé pour protéger tous les secrets du même projet et de l'emplacement. Lorsque la clé est remplacée, les nouveaux secrets ajoutés au projet utilisent la nouvelle version principale de la clé.
Secret Manager n'est compatible avec Cloud KMS Autokey que lors de la création de ressources à l'aide de Terraform ou de l'API REST.
Créer une ressource Secret Manager protégée
Terraform
L'exemple Terraform suivant crée un handle de clé et utilise la clé renvoyée pour protéger un nouveau secret avec réplication automatique:
resource "google_kms_key_handle" "my_key_handle" {
provider = google-beta
project = "RESOURCE_PROJECT_ID"
name = "test-key-handle"
location = "global"
resource_type_selector = "secretmanager.googleapis.com/Secret"
}
resource "google_secret_manager_secret" "my_secret" {
project = "RESOURCE_PROJECT_ID"
secret_id = "SECRET_ID"
replication {
auto {
customer_managed_encryption {
kms_key_name = google_kms_key_handle.my_key_handle.kms_key
}
}
}
}
Remplacez les éléments suivants :
RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.SECRET_ID
: ID à utiliser pour le nouveau secret.
Si vous essayez de créer un handle de clé pour un secret dans le même projet et à l'emplacement pour lequel un handle de clé existe déjà, un message d'erreur renvoie les détails du handle de clé existant. Dans ce cas, assurez-vous qu'un seul bloc crée le gestionnaire de clés. Vous pouvez réutiliser le gestionnaire de clés à l'aide de son ID (KEY_HANDLE
) pour créer des secrets supplémentaires qui doivent partager la clé.
Cloud KMS ne vous permet pas de supprimer les ressources KeyHandle
. Si vous utilisez un modèle de création et de destruction, une tentative de recréation d'un KeyHandle
génère une erreur ALREADY_EXISTS
. Pour éviter ce problème, vous pouvez importer un KeyHandle
créé précédemment. Pour en savoir plus, consultez la section Créer et détruire des modèles dans Terraform sur cette page.
API
Demandez une nouvelle clé Cloud KMS en créant un
KeyHandle
:curl -H "Content-Type: application/json" \ -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \ -d '{"resource_type_selector": "RESOURCE_TYPE"}'
Remplacez les éléments suivants :
USER_PROJECT
: projet pour lequel les frais associés à cette requête seront facturés.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.RESOURCE_TYPE
: type de ressource que vous souhaitez créer (par exemple,secretmanager.googleapis.com/Secret
)
Le résultat ressemble à ce qui suit :
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata" } }
Notez l'
OPERATION_ID
dans la sortie. Vous avez besoin de cette valeur pour obtenir l'ID de ressource de la clé créée.Si vous essayez de créer un handle de clé pour un secret dans le même projet et à l'emplacement pour lequel un handle de clé existe déjà, un message d'erreur renvoie les détails du handle de clé existant. Dans ce cas, ignorez l'étape suivante et utilisez l'ID de ressource de clé dans le champ
existingKmsKey
pour protéger votre nouveau secret.Recherchez la clé Cloud KMS associée au conteneur de clés:
curl -H "X-Goog-User-Project: USER_PROJECT" \ -H "Authorization: Bearer TOKEN" \ -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Remplacez les éléments suivants :
USER_PROJECT
: projet pour lequel les frais associés à cette requête seront facturés.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.LOCATION
: emplacement dans lequel vous souhaitez créer la ressource protégée.OPERATION_ID
: identifiant de l'opération de requête de poignée de clé à partir de la sortie de l'étape précédente.
Le résultat ressemble à ce qui suit :
{ "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "done": true, "response": { "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle", "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE", "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME", "resourceTypeSelector": "RESOURCE_TYPE" } }
La valeur de l'élément
kmsKey
dans la sortie correspond à l'ID de ressource complet de la clé créée par Autokey pour cette ressource. Vous pouvez utiliser cet ID de ressource de la même manière que vous le feriez pour toute autre ressource Cloud KMS.Créez un secret chiffré avec réplication automatique à l'aide de la commande
gcloud secrets create
avec l'option--kms-key-name
.gcloud secrets create "SECRET_ID" \ --replication-policy "automatic" \ --kms-key-name "projects/KEY_PROJECT_ID/locations/global/keyRings/autokey/cryptoKeys/KEY_NAME" \ --project "RESOURCE_PROJECT_ID"
Remplacez les éléments suivants :
SECRET_ID
: ID à utiliser pour le nouveau secret.KEY_PROJECT_ID
: ID du projet de clé.KEY_NAME
: nom de la clé renvoyée dans la sortie de l'étape précédente.RESOURCE_PROJECT_ID
: ID du projet de ressources dans le dossier Autokey dans lequel vous souhaitez créer une ressource protégée.
Modèles de création et de destruction dans Terraform
Cloud KMS ne vous permet pas de supprimer des ressources KeyHandle
. Si vous utilisez Terraform et un modèle de création et de destruction, une tentative de recréation d'un KeyHandle
génère une erreur ALREADY_EXISTS
. Vous pouvez éviter ce problème en utilisant un bloc import
. Insérez le bloc suivant avant le bloc resource
de la ressource google_kms_key_handle
:
import {
to = google_kms_key_handle.KEY_HANDLE
id = "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE"
}
Étape suivante
- Découvrez quand utiliser la clé automatique.
- Découvrez le fonctionnement d'Autokey.