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

Auf dieser Seite wird beschrieben, wie kundenverwaltete Verschlüsselungsschlüssel (CMEK) mit Migrationsjobs von Database Migration Service funktionieren.

In Database Migration Service (für Oracle zu Cloud SQL for PostgreSQL) werden inaktive Kundendaten standardmäßig verschlüsselt. Der Database Migration Service (für Oracle zu Cloud SQL for PostgreSQL) übernimmt die Verschlüsselung für Sie. Weitere Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung.

Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie kundenverwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Database Migration Service (für Oracle zu Cloud SQL for PostgreSQL) verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutzlevel, Speicherort, Rotationszeitplan, Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem die Schlüsselnutzung verfolgen, Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen, die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten zu besitzen und zu verwalten, können Sie diese auch über Cloud KMS steuern und verwalten.

Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Database Migration Service-Ressourcen (für Oracle zu Cloud SQL for PostgreSQL) der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).

Regionen, in denen der Database Migration Service CMEK unterstützt

CMEK ist an allen Standorten von Database Migration Service verfügbar.

CMEK mit Cloud KMS Autokey

Sie können CMEKs manuell erstellen, um Ihre Database Migration Service-Ressourcen (für Oracle zu Cloud SQL for PostgreSQL) zu schützen, oder dazu Cloud KMS Autokey verwenden. Mit Autokey werden Schlüsselbunde und Schlüssel bei der Ressourcenerstellung oder -aktualisierung in Database Migration Service (für Oracle zu Cloud SQL for PostgreSQL) auf Anfrage generiert. Dienst-Agents, die die Schlüssel für Verschlüsselungs- und Entschlüsselungsvorgänge verwenden, werden erstellt, falls sie noch nicht vorhanden sind, und erhalten dann die erforderlichen IAM-Rollen (Identity and Access Management). Weitere Informationen finden Sie unter Übersicht: Autokey.

Informationen zu Dienstkonten

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

Wenn Sie einen CMEK in einem 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.

Informationen zu Schlüsseln

In 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 in 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 dem Migrationsjob zugeordnet ist. Sie können ein Projekt für Schlüssel und Zieldatenbanken oder separate Projekte für beide erstellen.

CMEK verwendet 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 zwar den Schlüsselbund oder Schlüssel nicht löschen, aber Sie können Versionen des Schlüssels löschen.

Schlüssel rotieren und ändern

Schlüsselversionen rotieren

Wenn Sie einen Schlüssel in Cloud Key Management Service rotieren, um eine neue Primärschlüsselversion zu erstellen, verwendet Database Migration Service automatisch die neue Primärschlüsselversion, um neue temporäre Daten zu verschlüsseln, die während der Migration geschrieben werden. Sie müssen den Migrationsjob nicht aktualisieren oder neu erstellen, wenn Sie einen Schlüssel rotieren.

Vorhandene temporäre Migrationsdaten laufen innerhalb von acht Tagen automatisch ab. Löschen oder deaktivieren Sie keine früheren Schlüsselversionen, während ein aktiver Migrationsjob noch Daten liest, die mit diesen Versionen verschlüsselt wurden.

Informationen zum Rotieren von Schlüsseln, die Ihre Cloud SQL for PostgreSQL-Zielinstanz schützen, finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK) in Cloud SQL for PostgreSQL verwenden.

Zu einem anderen Schlüssel wechseln

Sie können den mit einem Migrationsjob verknüpften CMEK ändern, solange der Migrationsjob als Entwurf gespeichert ist. Weitere Informationen finden Sie unter Entwurf eines Migrationsjobs aktualisieren.

Nachdem ein Migrationsjob gestartet wurde, können Sie den CMEK nicht mehr ändern. Wenn Sie einen anderen CMEK für einen bereits gestarteten Migrationsjob verwenden möchten, erstellen Sie einen neuen Migrationsjob und konfigurieren Sie ihn mit dem neuen Schlüssel.

Beschränkungen

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

  • Sie können den CMEK für einen Migrationsjob nicht mehr aktualisieren, nachdem der Migrationsjob gestartet wurde. Sie können den CMEK nur ändern, solange der Migrationsjob als Entwurf gespeichert ist.

  • Sie können CMEK zwar zum Verschlüsseln von Daten aus der Quelldatenbank verwenden, aber nicht zum Verschlüsseln von Metadaten des Migrationsjobs, z. B. der Job-ID des Migrationsjobs, der IP-Adresse der Quelldatenbank usw.

CMEK verwenden

Nachdem Sie nun mit CMEK vertraut sind, 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.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify 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. Aktivieren Sie die Cloud Key Management Service API, falls sie noch nicht aktiviert ist.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    API aktivieren

  9. Aktivieren Sie die Database Migration Service API.

    API aktivieren

Workflow zum Erstellen von Migrationsjobs in Database Migration Service mit CMEK

  1. Nur gcloud- und API-Nutzer: Achten Sie darauf, dass Sie für jedes Projekt, für das CMEK erforderlich ist, ein Dienstkonto haben. Weitere Informationen finden Sie unter Dienstkonto erstellen.

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

  3. Gewähren Sie dem Dienstkonto Zugriff auf den Schlüssel.

  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 in Database Migration Service und verwenden Sie Ihren CMEK im Abschnitt Erweiterte Verschlüsselungsoptionen.

Ihr Migrationsjob in Database Migration Service ist jetzt mit CMEK aktiviert.

Dienstkonto erstellen

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

Wenn Sie einem Nutzer die Verwaltung von Dienstkonten ermöglichen möchten, weisen Sie eine der folgenden Rollen zu:

  • 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 Database Migration Service-Richtlinie (für Oracle zu Cloud SQL for PostgreSQL) für ein Dienstkonto.

Derzeit können Sie nur gcloud-Befehle verwenden, um die Art von Dienstkonto zu erstellen, die Sie für CMEK benötigen.

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 Schlüssel Zugriff auf das Dienstkonto gewähren.

Schlüssel erstellen

Sie können den Schlüssel im selben Google Cloud -Projekt wie den Migrationsjob in Database Migration Service oder in einem separaten Nutzerprojekt erstellen. Der Standort des Cloud KMS-Schlüsselbunds muss mit der Region der Zieldatenbank übereinstimmen, die dem Migrationsjob zugeordnet 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:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Migrationsjobs auf.

    Zur Seite „Kryptografische Schlüssel”

  2. Klicken Sie auf Schlüsselbund 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. Dies ist der KMS_KEY_ID. Sie benötigen die KMS_KEY_ID, wenn Sie dem Schlüssel Zugriff auf das Dienstkonto gewähren.

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.

Dem Schlüssel Zugriff auf das Dienstkonto 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@datamigrationiam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Migrationsjob in Database Migration Service mit CMEK erstellen

Wenn Sie einen Migrationsjob erstellen, können Sie Ihren CMEK verwenden, um die Verschlüsselung Ihrer Daten zu verwalten.

Schlüsselversionen deaktivieren und reaktivieren

Sehen Sie sich die folgenden Themen an: