Cette page explique comment créer des secrets avec des clés de chiffrement gérées par le client (CMEK) et comment mettre à jour des secrets existants pour utiliser des clés CMEK.
Présentation
CMEK ajoutent une couche supplémentaire de sécurité et de contrôle à vos données sensibles stockées en tant que secrets régionaux. Vous pouvez utiliser des clés CMEK pour atteindre les objectifs suivants :
- Contrôler entièrement les clés de chiffrement utilisées pour protéger vos secrets.
- Utiliser votre propre système de gestion des clés avec des règles de sécurité, des fonctionnalités d'audit et des fonctionnalités de conformité potentiellement plus strictes.
- Respecter les réglementations sur la souveraineté des données en conservant les clés dans votre propre infrastructure.
- Définir des contrôles d'accès précis pour vos clés de chiffrement, en spécifiant qui peut les utiliser et à quelles fins.
Limites :
L'utilisation de clés CMEK avec des secrets régionaux présente les limites suivantes :
- Cloud Key Management Service Autokey (Preview) n'est pas compatible avec les secrets régionaux.
- L'emplacement de la clé CMEK doit être identique à celui du secret régional.
Avant de commencer
- Activez l'API Secret Manager, une seule fois par projet.
- Attribuez le rôle "Administrateur de Secret Manager" (
roles/secretmanager.admin) au projet, au dossier ou à l'organisation. Authentifiez-vous auprès de l'API Secret Manager de l'une des manières suivantes :
- Si vous utilisez des bibliothèques clientes pour accéder à l'API Secret Manager, configurez les identifiants par défaut de l'application.
- Si vous utilisez la Google Cloud CLI pour accéder à l'API Secret Manager, utilisez vos identifiants Google Cloud CLI pour vous authentifier.
- Pour authentifier un appel REST, utilisez les identifiants Google Cloud CLI ou les identifiants par défaut de l'application.
Pour activer les clés CMEK et créer les clés et les trousseaux de clés CMEK dont vous avez besoin pour cette étape, consultez Activer les clés de chiffrement gérées par le client pour Secret Manager.
Créer un secret régional avec le chiffrement CMEK
Pour créer un secret avec le chiffrement CMEK, utilisez l'une des méthodes suivantes :
Console
-
Dans la Cloud de Confiance console, accédez à la page Secret Manager.
-
Sur la page Secret Manager, cliquez sur l'onglet Secrets régionaux, puis sur Créer un secret régional.
-
Sur la page Créer un secret régional, saisissez le nom du secret dans le champ Nom. Un nom de secret peut contenir des lettres majuscules et minuscules, des chiffres, des traits d'union et des traits de soulignement. La longueur maximale autorisée pour un nom est de 255 caractères.
-
Saisissez une valeur pour le secret (par exemple,
abcd1234). La valeur du secret peut être indiquée dans n'importe quel format mais elle ne doit pas dépasser 64 Kio. Vous pouvez également importer un fichier texte contenant la valeur du secret à l'aide de l'option Importer un fichier. Cette action crée automatiquement la version du secret. -
Choisissez l'emplacement où vous souhaitez stocker votre secret régional dans la liste Région.
-
Sous Chiffrement, sélectionnez Clé de chiffrement gérée par le client (CMEK), puis choisissez votre clé CMEK dans la liste Clé de chiffrement. Assurez-vous que votre clé CMEK existe à l'emplacement spécifié et que votre projet Secret Manager dispose des autorisations nécessaires pour l'utiliser.
-
Cliquez sur Créer un secret.
gcloud
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- SECRET_ID : ID du secret
- LOCATION : l' Cloud de Confiance by S3NS emplacement où vous souhaitez créer le secret
- KMS_PROJECT_ID : ID de votre Cloud de Confiance by S3NS projet qui exécute Cloud Key Management Service
- KMS_KEY_LOCATION : emplacement de votre clé Cloud KMS Il doit s'agir du même emplacement que votre secret.
- YOUR_KEY_RING : nom du trousseau de clés dans Cloud KMS où vous avez stocké votre clé CMEK
- YOUR_CMEK_KEY : clé de chiffrement gérée par le client (CMEK) spécifique que vous avez créée dans le trousseau de clés de votre choix dans Cloud KMS
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets create SECRET_ID --location=LOCATION --regional-kms-key-name="projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"
Windows (PowerShell)
gcloud secrets create SECRET_ID --location=LOCATION --regional-kms-key-name="projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"
Windows (cmd.exe)
gcloud secrets create SECRET_ID --location=LOCATION --regional-kms-key-name="projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION : l' Cloud de Confiance by S3NS emplacement où vous souhaitez créer le secret
- PROJECT_ID : ID du Cloud de Confiance by S3NS projet
- SECRET_ID : ID du secret
- KMS_PROJECT_ID : ID de votre Cloud de Confiance by S3NS projet qui exécute Cloud Key Management Service
- KMS_KEY_LOCATION : emplacement de votre clé Cloud KMS Il doit s'agir du même emplacement que votre secret.
- YOUR_KEY_RING : nom du trousseau de clés dans Cloud KMS où vous avez stocké votre clé CMEK
- YOUR_CMEK_KEY : clé de chiffrement gérée par le client (CMEK) spécifique que vous avez créée dans le trousseau de clés de votre choix dans Cloud KMS
Méthode HTTP et URL :
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
Corps JSON de la requête :
{"customer_managed_encryption": {"kms_key_name": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"}}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-03-27T13:30:07.437859Z",
"etag": "\"1614a467b60423\""
"customerManagedEncryption": {
"kmsKeyName": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/secret-manager-cmek/cryptoKeys/my-cmek-key"
}
}
Mettre à jour un secret existant pour utiliser une clé CMEK
Pour mettre à jour un secret existant afin d'utiliser une clé CMEK, utilisez l'une des méthodes suivantes :
Console
-
Dans la Cloud de Confiance console, accédez à la page Secret Manager.
-
Sur la page Secret Manager, cliquez sur l'onglet Secrets régionaux.
-
Pour modifier un secret, utilisez l'une des méthodes suivantes :
-
Recherchez le secret dans la liste, puis cliquez sur le Actions menu associé à ce secret. Dans le menu Actions, cliquez sur Modifier.
-
Cliquez sur le nom du secret pour accéder à sa page d'informations. Sur la page d'informations du secret, cliquez sur Modifier le secret.
-
-
Sur la page Modifier le secret, accédez à la section Chiffrement.
-
Sous Chiffrement, sélectionnez Clé de chiffrement gérée par le client (CMEK), puis sélectionnez votre clé CMEK dans la liste Clé de chiffrement. Assurez-vous que votre clé CMEK existe à l'emplacement spécifié et que votre projet Secret Manager dispose des autorisations nécessaires pour l'utiliser.
-
Cliquez sur Mettre à jour le secret.
gcloud
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- SECRET_ID : ID du secret
- LOCATION : l' Cloud de Confiance by S3NS emplacement du secret
- KMS_PROJECT_ID : ID de votre Cloud de Confiance by S3NS projet qui exécute Cloud Key Management Service
- KMS_KEY_LOCATION : emplacement de votre clé Cloud KMS Il doit s'agir du même emplacement que votre secret.
- YOUR_KEY_RING : nom du trousseau de clés dans Cloud KMS où vous avez stocké votre clé CMEK
- YOUR_CMEK_KEY : clé de chiffrement gérée par le client (CMEK) spécifique que vous avez créée dans le trousseau de clés de votre choix dans Cloud KMS
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets update SECRET_ID --location=LOCATION --regional-kms-key-name="projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"
Windows (PowerShell)
gcloud secrets update SECRET_ID --location=LOCATION --regional-kms-key-name="projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"
Windows (cmd.exe)
gcloud secrets update SECRET_ID --location=LOCATION --regional-kms-key-name="projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- LOCATION : emplacement du secret Cloud de Confiance by S3NS
- PROJECT_ID : ID du Cloud de Confiance by S3NS projet
- SECRET_ID : ID du secret
- KMS_PROJECT_ID : ID de votre Cloud de Confiance by S3NS projet qui exécute Cloud Key Management Service
- KMS_KEY_LOCATION : emplacement de votre clé Cloud KMS Il doit s'agir du même emplacement que votre secret.
- YOUR_KEY_RING : nom du trousseau de clés dans Cloud KMS où vous avez stocké votre clé CMEK
- YOUR_CMEK_KEY : clé de chiffrement gérée par le client (CMEK) spécifique que vous avez créée dans le trousseau de clés de votre choix dans Cloud KMS
Méthode HTTP et URL :
PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption
Corps JSON de la requête :
{"customer_managed_encryption": {"kms_key_name": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"}}"
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2024-03-27T13:30:07.437859Z",
"etag": "\"16211daf5f29c5\""
"customerManagedEncryption": {
"kmsKeyName": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/secret-manager-cmek/cryptoKeys/my-cmek-key"
}
}