In diesem Dokument wird beschrieben, wie Sie Ihre Cloud EKM-Schlüssel zwischen den Schutzstufen „Extern über Internet“ (EXTERNAL) und „Extern über VPC“ (EXTERNAL_VPC) migrieren. Die Migration externer Schlüssel wird nur für die gcloud CLI und die Cloud KMS API unterstützt.
Anwendungsfälle für die Migration
Wenn ein Schlüssel die Schutzstufe EXTERNAL oder EXTERNAL_VPC hat, können Sie Folgendes tun:
- Rotieren Sie den Schlüssel, um eine neue Schlüsselversion mit einem anderen Cloud EKM-Schutzniveau als der übergeordnete Schlüssel zu erstellen. Sie können beispielsweise einen Schlüssel mit dem Schutzniveau
EXTERNALrotieren, um eine neue Schlüsselversion mit dem SchutzniveauEXTERNAL_VPCzu erstellen. - Aktualisieren Sie eine Schlüsselversion, um eine andere Cloud EKM-Schutzstufe für dasselbe Schlüsselmaterial zu verwenden. Sie können beispielsweise eine Schlüsselversion mit dem Schutzniveau
EXTERNALaktualisieren, um stattdessen dasselbe Schlüsselmaterial und dieselbe Schlüsselversionsressource mit dem SchutzniveauEXTERNAL_VPCzu verwenden. - Sie können einen
EXTERNAL_VPC-Schlüssel rotieren oder eineEXTERNAL_VPC-Schlüsselversion aktualisieren, um einen anderenEkmConnectionals den übergeordneten Schlüssel zu verwenden.
Wenn Sie eine vorhandene Schlüsselversion zwischen den beiden Cloud EKM-Schutzstufen migrieren, können Sie ändern, wie Sie auf Ihr externes Schlüsselmaterial zugreifen, ohne Ihre Anwendungen neu konfigurieren oder Ihre Daten neu verschlüsseln zu müssen. Außerdem gibt es keine Ausfallzeiten. Ihr migrierter Schlüssel verwendet dasselbe Schlüsselmaterial und dieselbe Ressourcen-ID.
Wenn Sie eine Schlüsselversion vom Schutzlevel EXTERNAL zum Schutzlevel EXTERNAL_VPC migrieren, verknüpfen Sie eine EkmConnection-Ressource mit der Schlüsselversion und fügen die ekmConnectionKeyPath hinzu. Wenn Sie eine Schlüsselversion von der Schutzstufe EXTERNAL_VPC zur Schutzstufe EXTERNAL migrieren, fügen Sie einen externalKeyUri hinzu, um EkmConnection und ekmConnectionKeyPath zu ersetzen.
Wenn einer Schlüsselversion ein EkmConnection zugeordnet ist, wird diese Verbindung für alle Schlüsselversionsvorgänge verwendet, auch wenn der übergeordnete Schlüssel ein anderes EkmConnection hat.
Zu „Extern über VPC“ migrieren
Durch die Migration vom Schutzniveau „Extern über Internet“ zum Schutzniveau „Extern über VPC“ wird die Zuverlässigkeit Ihrer Cloud EKM-Schlüssel verbessert. Sie profitieren von den Vorteilen von VPC-Netzwerken (Virtual Private Cloud), einschließlich einer robusten Isolation und besserem Betriebssupport.
Sie können auch zwischen verschiedenen VPC-Konfigurationen migrieren, z. B. von der Verwendung von VPC mit Partner Interconnect zur Verwendung von VPC mit Dedicated Interconnect.
Hinweis
Bevor Sie Cloud EKM-Schlüssel migrieren können, benötigen Sie Folgendes:
- Ein Google Cloud -Projekt, in dem sowohl die Abrechnung als auch die Cloud KMS API aktiviert sind.
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud KMS-Administrator (
roles/cloudkms.admin) für das Projekt oder eine übergeordnete Ressource zuzuweisen, um die Berechtigung zu erhalten, die Sie zum Migrieren externer Schlüssel benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.Diese vordefinierte Rolle enthält die Berechtigung
cloudkms.cryptoKeys.update, die zum Migrieren externer Schlüssel erforderlich ist.Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
- Wenn Sie zum Schutzniveau „Extern über das Internet“ (
EXTERNAL) migrieren, müssen Sie Cloud EKM über das Internet einrichten, falls noch nicht geschehen. - Wenn Sie zur Schutzstufe „Extern über VPC“ (
EXTERNAL_VPC) migrieren oder zu einem neuen VPC-Netzwerk migrieren, müssen Sie eine EKM-Verbindung erstellen, falls noch nicht geschehen.
Neue manuell verwaltete externe Schlüsselversion über VPC erstellen
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst Google Cloud CLI installieren oder ein Upgrade ausführen.
Wenn Sie eine neue externe Schlüsselversion über VPC für einen vorhandenen Cloud EKM-Schlüssel erstellen möchten, verwenden Sie den Befehl kms keys versions create mit den Flags --protection-level, --crypto-key-backend und --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
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.EKM_CONNECTION_PATH: Die Ressourcen-ID der EKM-Verbindung, die Sie für die neue Schlüsselversion verwenden möchten, z. B.projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION.EXTERNAL_KEY_PATH: der Pfad zur neuen externen Schlüsselversion aus Ihrer EKM-Verbindung, z. B.v0/path/to/my/key.
Wenn der übergeordnete Schlüssel
Wenn der Schlüssel ein symmetrischer Verschlüsselungsschlüssel ist und Sie die neue Schlüsselversion zur primären Version machen möchten, fügen Sie das Flag --primary hinzu.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
REST
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Wenn Sie eine neue Version für externe Schlüssel über eine VPC für einen vorhandenen Cloud EKM-Schlüssel erstellen möchten, rufen Sie die Methode CryptoKeyVersions.create auf.
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: die Kennung des Projekts, das den Schlüssel enthält, den Sie rotieren möchten.KEY_NAME: der Name des SchlüsselsKEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.EKM_CONNECTION_PATH: Die Ressourcen-ID der EKM-Verbindung, die Sie für die neue Schlüsselversion verwenden möchten, z. B.projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION.EXTERNAL_KEY_PATH: der Pfad zur neuen externen Schlüsselversion aus Ihrer EKM-Verbindung, z. B.v0/path/to/my/key.
Mit diesem Befehl wird eine neue Schlüsselversion erstellt, die jedoch nicht als primäre Version festgelegt wird.
Informationen zum Festlegen der neuen Schlüsselversion als primäre Version finden Sie unter Vorhandene Version als primäre Schlüsselversion festlegen.
Neue Version für externe Schlüssel über das Internet erstellen
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst Google Cloud CLI installieren oder ein Upgrade ausführen.
Wenn Sie eine neue externe Schlüsselversion über das Internet für einen vorhandenen Cloud EKM-Schlüssel erstellen möchten, verwenden Sie den Befehl kms keys versions create mit den Flags --protection-level und --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
Ersetzen Sie Folgendes:
KEY_NAME: Der Name des Schlüssels.KEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.EXTERNAL_KEY_URI: Der URI der neuen externen Schlüsselversion.
Wenn der Schlüssel ein symmetrischer Verschlüsselungsschlüssel ist und Sie die neue Schlüsselversion zur primären Version machen möchten, fügen Sie das Flag --primary hinzu.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
REST
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Wenn Sie eine neue Version für externe Schlüssel über das Internet für einen vorhandenen Cloud EKM-Schlüssel erstellen möchten, rufen Sie die Methode CryptoKeyVersions.create auf.
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: die Kennung des Projekts, das den Schlüssel enthält, den Sie rotieren möchten.KEY_NAME: der Name des SchlüsselsKEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.EXTERNAL_KEY_URI: Der URI der neuen externen Schlüsselversion.
Mit diesem Befehl wird eine neue Schlüsselversion erstellt, die jedoch nicht als primäre Version festgelegt wird.
Informationen zum Festlegen der neuen Schlüsselversion als primäre Version finden Sie unter Vorhandene Version als primäre Schlüsselversion festlegen.
Schlüsselversion für den Schutzmodus „Extern über VPC“ aktualisieren
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst Google Cloud CLI installieren oder ein Upgrade ausführen.
Wenn Sie eine vorhandene external-Schlüsselversion auf das Schutzlevel external-vpc aktualisieren möchten, verwenden Sie den Befehl kms keys versions update mit den Flags --protection-level, --crypto-key-backend und --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
Ersetzen Sie Folgendes:
KEY_VERSION: die Nummer der Schlüsselversion, die Sie migrieren möchten, z. B.3.KEY_NAME: der Name des SchlüsselsKEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.EKM_CONNECTION_PATH: Der Ressourcen-Identifier der EKM-Verbindung, die Sie für die Schlüsselversion verwenden möchten, z. B.projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTIONEXTERNAL_KEY_PATH: Der neue Pfad zum vorhandenen externen Schlüsselmaterial aus Ihrer EKM-Verbindung, z. B.v0/path/to/my/key. Die EKM-Verbindung und der Schlüsselpfad müssen auf dasselbe Schlüsselmaterial wie der aktuelle Schlüssel-URI verweisen.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
REST
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Wenn Sie eine vorhandene external-Schlüsselversion auf das Schutzlevel external-vpc aktualisieren möchten, rufen Sie die Methode CryptoKeyVersions.patch auf.
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: die Kennung des Projekts, das den Schlüssel enthält, den Sie migrieren möchten.KEY_NAME: der Name des SchlüsselsKEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.EKM_CONNECTION_PATH: Der Ressourcen-Identifier der EKM-Verbindung, die Sie für die Schlüsselversion verwenden möchten, z. B.projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTIONEXTERNAL_KEY_PATH: Der neue Pfad zum vorhandenen externen Schlüsselmaterial aus Ihrer EKM-Verbindung, z. B.v0/path/to/my/key. Die EKM-Verbindung und der Schlüsselpfad müssen auf dasselbe Schlüsselmaterial wie der aktuelle Schlüssel-URI verweisen.
Schlüsselversion aktualisieren, um den Schutzmodus „Extern über das Internet“ zu verwenden
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst Google Cloud CLI installieren oder ein Upgrade ausführen.
Wenn Sie eine vorhandene external-vpc-Schlüsselversion auf das Schutzlevel external aktualisieren möchten, verwenden Sie den Befehl kms keys versions update mit den Flags --protection-level und --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
Ersetzen Sie Folgendes:
KEY_VERSION: die Nummer der Schlüsselversion, die Sie migrieren möchten, z. B.3.KEY_NAME: der Name des SchlüsselsKEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.EXTERNAL_KEY_URI: Der neue URI für das vorhandene externe Schlüsselmaterial in Ihrem EKM. Der URI muss auf dasselbe Schlüsselmaterial wie die aktuelle EKM-Verbindung und der externe Schlüssel verweisen.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.
REST
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Wenn Sie eine vorhandene external-vpc-Schlüsselversion auf das Schutzlevel external aktualisieren möchten, rufen Sie die Methode CryptoKeyVersions.patch auf.
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: die Kennung des Projekts, das den Schlüssel enthält, den Sie migrieren möchten.KEY_NAME: der Name des SchlüsselsKEY_RING: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION: der Cloud KMS-Speicherort des Schlüsselbunds.EXTERNAL_KEY_URI: Der neue URI für das vorhandene externe Schlüsselmaterial in Ihrem EKM. Der URI muss auf dasselbe Schlüsselmaterial wie die aktuelle EKM-Verbindung und der externe Schlüssel verweisen.