Ce document vous explique comment migrer vos clés Cloud EKM entre les niveaux de protection externe sur Internet (EXTERNAL) et externe sur VPC (EXTERNAL_VPC). La migration des clés externes n'est possible que pour gcloud CLI et l'API Cloud KMS.
Cas d'utilisation de la migration
Lorsqu'une clé est associée au niveau de protection EXTERNAL ou EXTERNAL_VPC, vous pouvez effectuer les opérations suivantes :
- Alternez la clé en créant une version de clé avec un niveau de protection Cloud EKM différent de celui de la clé parente. Par exemple, vous pouvez effectuer une rotation d'une clé de niveau de protection
EXTERNALpour créer une version de clé de niveau de protectionEXTERNAL_VPC. - Mettez à jour une version de clé pour utiliser un niveau de protection Cloud EKM différent pour le même matériau de clé. Par exemple, vous pouvez mettre à jour une version de clé au niveau de protection
EXTERNALpour utiliser le même matériel de clé et la même ressource de version de clé avec le niveau de protectionEXTERNAL_VPC. - Faites pivoter une clé
EXTERNAL_VPCou mettez à jour une version de cléEXTERNAL_VPCpour utiliser unEkmConnectiondifférent de la clé parente.
La migration d'une version de clé existante entre les deux niveaux de protection Cloud EKM vous permet de modifier la façon dont vous accédez à votre matériel de clé externe sans avoir à reconfigurer vos applications ni à rechiffrer vos données, et sans aucun temps d'arrêt. Votre clé migrée utilise le même contenu de clé et le même identifiant de ressource.
Lorsque vous migrez une version de clé du niveau de protection EXTERNAL vers le niveau de protection EXTERNAL_VPC, vous associez une ressource EkmConnection à la version de clé et ajoutez le ekmConnectionKeyPath. Lorsque vous migrez une version de clé du niveau de protection EXTERNAL_VPC vers le niveau EXTERNAL, vous ajoutez un externalKeyUri pour remplacer EkmConnection et ekmConnectionKeyPath.
Si une version de clé est associée à un EkmConnection, cette connexion est utilisée pour toutes les opérations sur les versions de clé, même si la clé parente possède un EkmConnection différent.
Migrer vers un serveur externe via un VPC
La migration du niveau de protection externe sur Internet vers le niveau de protection externe sur VPC améliore la fiabilité de vos clés Cloud EKM. Vous bénéficiez des avantages des réseaux de cloud privé virtuel (VPC), y compris une isolation robuste et une meilleure assistance opérationnelle.
Vous pouvez également migrer entre différentes configurations de VPC, par exemple pour passer de l'utilisation de VPC avec Partner Interconnect à l'utilisation de VPC avec Dedicated Interconnect.
Avant de commencer
Avant de pouvoir migrer des clés Cloud EKM, vous devez disposer des éléments suivants :
- Un projet Google Cloud avec la facturation et l'API Cloud KMS activées.
-
Pour obtenir l'autorisation nécessaire pour migrer des clés externes, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur Cloud KMS (
roles/cloudkms.admin) sur le projet ou une ressource parente. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.Ce rôle prédéfini contient l'autorisation
cloudkms.cryptoKeys.update, qui est nécessaire pour migrer les clés externes.Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.
- Si vous migrez vers le niveau de protection externe sur Internet (
EXTERNAL), vous devez configurer Cloud EKM sur Internet si ce n'est pas déjà fait. - Si vous migrez vers le niveau de protection externe sur VPC (
EXTERNAL_VPC) ou vers un nouveau réseau VPC, vous devez créer une connexion EKM si vous ne l'avez pas déjà fait.
Créer une version de clé externe gérée manuellement sur VPC
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour Google Cloud CLI.
Pour créer une version de clé externe sur un VPC pour une clé Cloud EKM existante, utilisez la commande kms keys versions create avec les indicateurs --protection-level, --crypto-key-backend et --ekm-connection-key-path :
gcloud kms keys versions create \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--protection-level "external-vpc" \
--crypto-key-backend EKM_CONNECTION_PATH \
--ekm-connection-key-path EXTERNAL_KEY_PATH
Remplacez les éléments suivants :
KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.EKM_CONNECTION_PATH: identifiant de ressource de la connexion EKM que vous souhaitez utiliser pour la nouvelle version de clé (par exemple,projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION)EXTERNAL_KEY_PATH: chemin d'accès à la nouvelle version de la clé externe à partir de votre connexion EKM (par exemple,v0/path/to/my/key).
Si la clé parente est
Si la clé est une clé de chiffrement symétrique et que vous souhaitez faire de la nouvelle version de clé la version principale, ajoutez l'indicateur --primary.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.
REST
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour créer une version de clé externe sur un VPC pour une clé Cloud EKM existante, créez une version de clé en appelant la méthode CryptoKeyVersions.create.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{
"protectionLevel": "EXTERNAL_VPC",
"externalProtectionLevelOptions": {
"ekmConnectionKeyPath": "EXTERNAL_KEY_PATH",
"ekmConnectionBackendOverride": "EKM_CONNECTION_PATH"
},
}'
PROJECT_ID: identifiant du projet contenant la clé que vous souhaitez faire pivoter.KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.EKM_CONNECTION_PATH: identifiant de ressource de la connexion EKM que vous souhaitez utiliser pour la nouvelle version de clé (par exemple,projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION)EXTERNAL_KEY_PATH: chemin d'accès à la nouvelle version de la clé externe à partir de votre connexion EKM (par exemple,v0/path/to/my/key).
Cette commande crée une version de clé, mais ne la définit pas comme version principale.
Pour définir votre nouvelle version de clé comme version primaire, consultez Définir une version de clé existante comme version primaire.
Créer une version de clé externe via Internet
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour Google Cloud CLI.
Pour créer une version de clé externe sur Internet pour une clé Cloud EKM existante, utilisez la commande kms keys versions create avec les indicateurs --protection-level et --external-key-uri :
gcloud kms keys versions create \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--protection-level "external" \
--external-key-uri EXTERNAL_KEY_URI
Remplacez les éléments suivants :
KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.EXTERNAL_KEY_URI: URI de la nouvelle version de clé externe.
Si la clé est une clé de chiffrement symétrique et que vous souhaitez faire de la nouvelle version de clé la version principale, ajoutez l'indicateur --primary.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.
REST
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour créer une version de clé externe sur Internet pour une clé Cloud EKM existante, créez une version de clé en appelant la méthode CryptoKeyVersions.create.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{
"protectionLevel": "EXTERNAL",
"externalProtectionLevelOptions": {
"externalKeyUri": "EXTERNAL_KEY_URI",
},
}'
PROJECT_ID: identifiant du projet contenant la clé que vous souhaitez faire pivoter.KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.EXTERNAL_KEY_URI: URI de la nouvelle version de clé externe.
Cette commande crée une version de clé, mais ne la définit pas comme version principale.
Pour définir votre nouvelle version de clé comme version primaire, consultez Définir une version de clé existante comme version primaire.
Mettre à jour une version de clé pour utiliser le mode de protection externe via VPC
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour Google Cloud CLI.
Pour mettre à jour une version de clé external existante au niveau de protection external-vpc, utilisez la commande kms keys versions update avec les options --protection-level, --crypto-key-backend et --ekm-connection-key-path :
gcloud kms keys versions update KEY_VERSION \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--protection-level "external-vpc" \
--crypto-key-backend EKM_CONNECTION_PATH \
--ekm-connection-key-path EXTERNAL_KEY_PATH
Remplacez les éléments suivants :
KEY_VERSION: numéro de la version de clé que vous souhaitez migrer, par exemple3.KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.EKM_CONNECTION_PATH: identifiant de ressource de la connexion EKM que vous souhaitez utiliser pour la version de clé (par exemple,projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION)EXTERNAL_KEY_PATH: nouveau chemin d'accès au matériel de clé externe existant à partir de votre connexion EKM (par exemple,v0/path/to/my/key). La connexion EKM et le chemin d'accès à la clé doivent pointer vers le même matériel de clé que l'URI de clé actuel.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.
REST
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour mettre à jour une version de clé external existante au niveau de protection external-vpc, appelez la méthode CryptoKeyVersions.patch.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION?updateMask=protectionLevel,externalProtectionLevelOptions" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{
"protectionLevel": "EXTERNAL_VPC",
"externalProtectionLevelOptions": {
"ekmConnectionKeyPath": "EXTERNAL_KEY_PATH",
"ekmConnectionBackendOverride": "EKM_CONNECTION_PATH"
},
}'
PROJECT_ID: identifiant du projet contenant la clé que vous souhaitez migrer.KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.EKM_CONNECTION_PATH: identifiant de ressource de la connexion EKM que vous souhaitez utiliser pour la version de clé (par exemple,projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION)EXTERNAL_KEY_PATH: nouveau chemin d'accès au matériel de clé externe existant à partir de votre connexion EKM (par exemple,v0/path/to/my/key). La connexion EKM et le chemin d'accès à la clé doivent pointer vers le même matériel de clé que l'URI de clé actuel.
Mettre à jour une version de clé pour utiliser le mode de protection externe sur Internet
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour Google Cloud CLI.
Pour mettre à jour une version de clé external-vpc existante vers le niveau de protection external, utilisez la commande kms keys versions update avec les options --protection-level et --external-key-uri :
gcloud kms keys versions update KEY_VERSION \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--protection-level "external" \
--external-key-uri EXTERNAL_KEY_URI
Remplacez les éléments suivants :
KEY_VERSION: numéro de la version de clé que vous souhaitez migrer, par exemple3.KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.EXTERNAL_KEY_URI: nouvel URI du matériel de clé externe existant dans votre EKM. L'URI doit pointer vers le même matériel de clé que la connexion EKM et la clé externe actuelles.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.
REST
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour mettre à jour une version de clé external-vpc existante au niveau de protection external, appelez la méthode CryptoKeyVersions.patch.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION?updateMask=protectionLevel,externalProtectionLevelOptions" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{
"protectionLevel": "EXTERNAL",
"externalProtectionLevelOptions": {
"externalKeyUri": "EXTERNAL_KEY_URI",
},
}'
PROJECT_ID: identifiant du projet contenant la clé que vous souhaitez migrer.KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.EXTERNAL_KEY_URI: nouvel URI du matériel de clé externe existant dans votre EKM. L'URI doit pointer vers le même matériel de clé que la connexion EKM et la clé externe actuelles.