Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK) für kontinuierliche Migrationen verwenden

Übersicht

Auf dieser Seite wird beschrieben, wie vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) mit Migrationsjobs von Database Migration Service funktionieren.

Ist CMEK das Richtige für Sie?

CMEK ist für Organisationen mit vertraulichen oder regulierten Daten gedacht, für die eigene Verschlüsselungsschlüssel verwaltet werden müssen.

Von Google und vom Kunden verwaltete Verschlüsselung im Vergleich

Mit dem CMEK-Feature für vom Kunden verwaltete Verschlüsselungsschlüssel können Sie für Daten, die über den Database Migration Service übertragen werden, Ihre eigenen kryptografischen Schlüssel verwenden. Nachdem Sie CMEK hinzugefügt haben, verwendet der Database Migration Service bei jedem API-Aufruf Ihren Schlüssel für den Datenzugriff.

CMEKs, einschließlich Software-, Hardware- und externer Schlüssel, werden alle über die Cloud Key Management Service API verwaltet.

An welchen Standorten werden CMEK-fähige Migrationsjobs des Database Migration Service unterstützt?

CMEK sind an allen Standorten des Database Migration Service verfügbar.

Informationen zu Dienstkonten

Wenn für Ihre Migrationsjobs des Database Migration Service CMEK aktiviert ist, müssen Sie den Schlüsselzugriff von Cloud Key Management Service über ein Dienstkonto anfordern.

Wenn Sie einen CMEK für ein Projekt verwenden möchten, benötigen Sie ein Dienstkonto und müssen dem Dienstkonto Zugriff auf den Schlüssel gewähren. Das Dienstkonto muss im Projekt vorhanden sein. Das Dienstkonto ist in allen Regionen sichtbar.

Schlüssel

Im Cloud Key Management Service müssen Sie einen Schlüsselbund mit einem kryptografischen Schlüssel erstellen, der für einen Standort festgelegt ist. Wenn Sie einen neuen Migrationsjob im Database Migration Service erstellen, wählen Sie diesen Schlüssel aus, um den Migrationsjob zu verschlüsseln.

Sie müssen die Schlüssel-ID und -region kennen, wenn Sie neue Migrationsjobs erstellen, die CMEK verwenden. Sie müssen die Zieldatenbanken in derselben Region wie den CMEK platzieren, der mit dem Migrationsjob verknüpft ist. Sie können ein Projekt sowohl für Schlüssel als auch für Zieldatenbanken erstellen oder für beide jeweils ein separates Projekt erstellen.

CMEK hat das folgende Format:

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]

Wie kann ich CMEK-verschlüsselte Daten dauerhaft unzugänglich machen?

Es kann vorkommen, dass Sie mit CMEK verschlüsselte Daten dauerhaft löschen möchten. Löschen Sie dazu die CMEK-Version. Sie können den Schlüsselbund oder Schlüssel nicht löschen. Sie haben aber die Möglichkeit, Schlüsselversionen des Schlüssels zu löschen.

Beschränkungen

Bei der Verwendung von CMEK gelten die folgenden Einschränkungen:

  • Sie können CMEK für einen laufenden Migrationsjob nicht aktualisieren.

  • Sie können zwar CMEK verwenden, um Daten aus der Quelldatenbank zu verschlüsseln, aber nicht, um Metadaten von Migrationsjobs wie die Migrationsjob-ID oder die IP-Adresse der Quelldatenbank zu verschlüsseln.

CMEK verwenden

Nachdem Sie CMEK kennengelernt haben, können Sie ein Dienstkonto und Schlüssel für CMEK einrichten. Außerdem erfahren Sie, wie Sie einen Migrationsjob für die Verwendung von CMEK einrichten. Weitere Informationen zu CMEK finden Sie unter Übersicht.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Cloud SDK installieren und initialisieren
  7. Achten Sie darauf, dass Ihrem Nutzerkonto die Rolle „Administrator für die Datenbankmigration“ zugewiesen ist.

    Zur IAM-Seite

  8. Enable the Cloud Key Management Service API.

    Enable the API

  9. Aktivieren Sie die Database Migration Service API.

    API aktivieren

Workflow zum Erstellen von Migrationsjobs im Database Migration Service mit CMEK

  1. Nur gcloud- und API-Nutzer:Sie benötigen ein Dienstkonto für jedes Projekt, für das vom Kunden verwaltete Verschlüsselungsschlüssel erforderlich sind. Weitere Informationen finden Sie unter Dienstkonto erstellen.

  2. Erstellen Sie einen Schlüsselbund und Schlüssel und legen Sie den Speicherort für jeden Schlüssel fest. Der Speicherort ist die Region Google Cloud .

  3. Gewähren Sie dem Dienstkonto den Schlüsselzugriff.

  4. Kopieren oder notieren Sie die Schlüssel-ID (KMS_KEY_ID) und den Speicherort für den Schlüssel sowie die ID (KMS_KEYRING_ID) für den Schlüsselbund. Sie benötigen diese Informationen, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.

  5. Rufen Sie ein Projekt auf, erstellen Sie einen Migrationsjob im Database Migration Service und verwenden Sie Ihren CMEK im Abschnitt Erweiterte Verschlüsselungsoptionen.

Für Ihren Migrationsjob im Database Migration Service ist jetzt CMEK aktiviert.

Dienstkonto erstellen

Sie müssen für jedes Projekt ein Dienstkonto erstellen, das CMEK erfordert.

Gewähren Sie eine der folgenden Rollen, um zuzulassen, dass ein Nutzer Dienstkonten verwalten kann:

  • Dienstkontonutzer (roles/iam.serviceAccountUser): Umfasst Berechtigungen zum Auflisten von Dienstkonten, Abrufen von Details zu einem Dienstkonto und zum Übernehmen der Identität eines Dienstkontos.
  • Dienstkontoadministrator (roles/iam.serviceAccountAdmin): Umfasst Berechtigungen zum Auflisten von Dienstkonten und zum Abrufen von Details zu einem Dienstkonto. Umfasst außerdem Berechtigungen zum Erstellen, Aktualisieren und Löschen von Dienstkonten sowie zum Ansehen oder Ändern der Richtlinie für den Database Migration Service für Oracle zu AlloyDB für PostgreSQL für ein Dienstkonto.

Derzeit können Sie die Art von Dienstkonto, die Sie für vom Kunden verwaltete Verschlüsselungsschlüssel benötigen, nur mit gcloud-Befehlen erstellen.

Führen Sie den folgenden Befehl aus, um ein Dienstkonto mit gcloud zu erstellen:

gcloud beta services identity create \
--service=datamigration.googleapis.com\
--project=PROJECT_ID

Der vorherige Befehl gibt den Namen eines Dienstkontos zurück. Sie verwenden diesen Dienstkontonamen, während Sie dem Dienstkonto Zugriff auf den Schlüssel gewähren.

Schlüssel erstellen

Sie können den Schlüssel im selben Google Cloud -Projekt wie den Migrationsjob im Database Migration Service oder in einem separaten Nutzerprojekt erstellen. Der Speicherort des Cloud KMS-Schlüsselbunds muss mit der Region der Zieldatenbank übereinstimmen, die mit dem Migrationsjob verknüpft ist. Multiregionale und globale Schlüssel werden nicht unterstützt. Wenn die Regionen nicht übereinstimmen, können Sie den Migrationsjob nicht erstellen.

So erstellen Sie einen Cloud KMS-Schlüssel:

Konsole

  1. Rufen Sie in der Google Cloud Console die Seite Kryptografische Schlüssel auf.
  2. Klicken Sie auf KeyRing erstellen.
  3. Fügen Sie einen Schlüsselbundnamen hinzu. Notieren Sie sich diesen Namen, da Sie ihn benötigen, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.
  4. Fügen Sie einen Schlüsselbund-Speicherort hinzu.
  5. Klicken Sie auf Erstellen. Die Seite Schlüssel erstellen wird geöffnet.
  6. Fügen Sie einen Schlüsselnamen hinzu.
  7. Wählen Sie einen Zweck (symmetrisch oder asymmetrisch) aus.
  8. Wählen Sie einen Rotationszeitraum und ein Startdatum aus.
  9. Klicken Sie auf Erstellen.
  10. Klicken Sie in der Tabelle Schlüssel auf die drei Punkte in der letzten Spalte und wählen Sie Ressourcen-ID kopieren aus oder notieren Sie sich die ID. Das ist die KMS_KEY_ID. Sie benötigen diese ID, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.KMS_KEY_ID

gcloud

  1. Erstellen Sie einen neuen Schlüsselbund.
    gcloud kms keyrings create KMS_KEYRING_ID \
    --location=REGION
      
    Notieren Sie sich diesen Namen. Sie benötigen ihn, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.
  2. Erstellen Sie einen Schlüssel im Schlüsselbund.
    gcloud kms keys create KMS_KEY_ID \
    --location=REGION \
    --keyring=KMS_KEYRING_ID \
    --purpose=encryption
      
    Notieren Sie sich diesen Namen. Sie benötigen ihn, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.

Dienstkonto Zugriff auf den Schlüssel gewähren

Die folgende Vorgehensweise bezieht sich auf die Verwendung von gcloud und der API.

Verwenden Sie den folgenden Code, um dem Dienstkonto Zugriff zu gewähren:

gcloud kms keys add-iam-policy-binding KMS_KEY_ID \
--location=REGION \
--keyring=KMS_KEYRING_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Migrationsjob im Database Migration Service mit CMEK erstellen

Wenn Sie einen Migrationsjob im Database Migration Service erstellen, können Sie die Verschlüsselung Ihrer Daten mithilfe Ihres CMEK-Schlüssels verwalten.

Schlüsselversionen deaktivieren und reaktivieren

Sehen Sie sich die folgenden Themen an: