Workstation-Ressourcen mit CMEK verschlüsseln

Cloud Workstations verwendet standardmäßig einen von Google verwalteten Verschlüsselungsschlüssel, um Workstationressourcen wie VMs und nichtflüchtige Speicher zu verschlüsseln, wenn ruhende Daten vorhanden sind. Wenn Sie für die Schlüssel zum Schutz Ihrer Daten bestimmte Compliance- oder regulatorische Anforderungen haben, können Sie mit dem Cloud Key Management Service (Cloud KMS) vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) verwenden.

Weitere allgemeine Informationen zu CMEK sowie deren Aktivierung finden Sie in der Cloud KMS-Dokumentation.

Hinweise

Projekte erstellen

  1. Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl zwei Google Cloud-Projekte aus oder erstellen Sie sie:

    • Ein Schlüsselprojekt enthält Ihre Cloud KMS-Ressourcen, einschließlich eines Schlüsselbunds und eines symmetrischen Verschlüsselungsschlüssels.

    • Ein Workstationprojekt enthält Workstations, die mit einem CMEK-Schlüssel verschlüsselt sind.

    Sie können für Ihr Schlüsselprojekt und Ihr Workstationprojekt dasselbe Projekt verwenden. Als Best Practice empfehlen wir jedoch, zwei Projekte für die Aufgabentrennung zu nutzen.

  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. Prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

  3. Aktivieren Sie die erforderlichen APIs in jedem Projekt.

  4. Installieren und initialisieren Sie die gcloud-Befehlszeile. Führen Sie den folgenden Befehl aus, um die gcloud-Befehlszeile zu initialisieren:

    gcloud init
    

Erforderliche Rollen

Obwohl Sie die Rollen „Cloud KMS-Administrator“ und „Cloud Workstations Admin“ derselben Person zuweisen können, empfehlen wir beim Zuweisen von Rollen das Prinzip der geringsten Berechtigung. Als Best Practice sollten Sie diese Rollen zwei separaten Personen zuweisen und diese koordinieren lassen, anstatt Cloud KMS zu bitten, auch Ihr Cloud Workstations-Administrator zu sein. Weitere Informationen finden Sie in den Best Practices für die Sicherheit und zum Sicheren Verwenden von IAM.

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Einrichten von CMEK benötigen:

  • Wenn Sie der Cloud KMS-Administrator sind, bitten Sie Ihren Administrator, Ihnen die folgende Rolle zu gewähren, damit Sie Cloud KMS-Ressourcen erstellen und verwalten können: Cloud KMS-Administrator (roles/cloudkms.admin) für Ihr Schlüsselprojekt.
  • Wenn Sie der Cloud Workstations Admin sind, bitten Sie Ihren Administrator, Ihnen die folgende Rolle zu gewähren, damit Sie Workstations erstellen und aktualisieren können: Cloud Workstations Admin (roles/workstations.admin) in Ihrem Workstation-Projekt.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Schlüsselbund und Verschlüsselungsschlüssel erstellen

Erstellen Sie in Ihrem Schlüsselprojekt einen Schlüssel und speichern Sie die Ressourcen-ID des Schlüssels:

  1. Erstellen Sie einen Schlüsselbund oder wählen Sie einen aus.

    Sie können Schlüsselbunde für verschiedene Dienste freigeben. Als Best Practice empfehlen wir jedoch, für jede geschützte Ressource einen anderen Schlüssel zu verwenden. Siehe Aufgabentrennung.

  2. Erstellen Sie einen symmetrischen Verschlüsselungsschlüssel.

    Erstellen Sie den CMEK-Schlüssel und die Workstationkonfiguration unbedingt in derselben Region.

  3. Rufen Sie die Ressourcen-ID des Schlüssels ab und speichern Sie sie für einen späteren Schritt.

Auf Workstationkonfigurationen prüfen

Wenn in der Google Cloud Console keine Workstationkonfigurationen verfügbar sind, bitten Sie Ihren Cloud Workstations-Administrator, eine Workstationkonfiguration für Sie zu erstellen. Alternativ benötigen Sie die IAM-Rolle „Cloud Workstations Admin“ für das Projekt, damit Sie diese Ressourcen selbst erstellen können.

Kundenverwaltete Verschlüsselungsschlüssel verwenden

Wenn Sie einen CMEK in einer Workstationkonfiguration verwenden möchten, aktivieren Sie CMEK über die Google Cloud Console oder die gcloud-Befehlszeile.

Console

Gewähren Sie Ihrem Compute Engine-Dienstkonto und Ihrem Compute Engine-Dienst-Agent die Cloud KMS-Rolle CryptoKey Encrypter/Decrypter und die Cloud KMS-Betrachter-Rolle:

  1. Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.

    Zur Schlüsselverwaltung

  2. Klicken Sie auf den Namen des Schlüsselbunds, der den Schlüssel enthält.

  3. Klicken Sie das Kästchen für den Schlüssel an, den Sie verwenden möchten.

    Der Tab Berechtigungen wird als Bereich angezeigt.

  4. Geben Sie im Dialogfeld Mitglieder hinzufügen die E-Mail-Adresse des Compute Engine-Dienstkontos und des Compute Engine-Dienst-Agents an, dem Sie Zugriff gewähren möchten.

  5. Wählen Sie im Drop-down-Menü Rolle auswählen die Option Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.

  6. Klicken Sie auf Weitere Rolle hinzufügen.

  7. Wählen Sie im Drop-down-Menü Rolle auswählen die Option Cloud KMS-Betrachter aus.

  8. Klicken Sie auf Speichern.

So aktivieren Sie CMEK über die Google Cloud Console:

  1. Führen Sie die Schritte unter Workstationkonfiguration erstellen aus.

  2. Suchen Sie bei der Angabe Ihrer Maschinenkonfiguration zum Abschnitt Erweiterte Optionen.

  3. Klicken Sie auf expand_more Maximieren und wählen Sie Vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) verwenden aus.

    1. Wählen Sie im Feld Vom Kunden verwalteten Schlüssel auswählen den vom Kunden verwalteten Verschlüsselungsschlüssel aus, den Sie in Ihrem Schlüsselprojekt erstellt haben.

      Wenn der von Ihnen erstellte Schlüssel nicht aufgeführt ist, klicken Sie auf Schlüssel manuell eingeben, um den Schlüssel anhand der Ressourcen-ID auszuwählen. Geben Sie dann die zuvor notierte Ressourcen-ID ein.

    2. Wählen Sie im Feld Dienstkonto das vom Schlüssel verwendete Dienstkonto aus.

  4. Führen Sie die anderen Schritte aus, um die Workstationkonfiguration zu erstellen.

  5. Erstellen, starten und starten Sie die Workstationkonfiguration, um die nichtflüchtigen Speicher in Ihrem Projekt mit dem angegebenen Cloud KMS-Schlüssel zu verschlüsseln.

gcloud

Im folgenden Beispiel wird eine IAM-Rolle zugewiesen, die Zugriff auf einen Cloud KMS-Schlüssel bietet. Anschließend wird CMEK aktiviert, indem dieser Schlüssel in der Workstationkonfiguration angegeben wird:

  1. Gewähren Sie dem KMS-Dienstkonto und dem Compute Engine-Dienst-Agent für Ihr Workstationprojekt die Cloud KMS-Rolle CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) für den CMEK-Schlüssel. Dadurch kann der Compute Engine-Dienst mit dem angegebenen CMEK-Schlüssel verschlüsselte Ressourcen in Ihrem Projekt erstellen.

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    
      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:service-WORKSTATIONS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • KEY_NAME: der Name des Schlüssels
    • LOCATION ist der Name der Region, in der Sie Ihren Schlüsselbund erstellt haben.
    • KEY_RING: der Name des Schlüsselbunds.
    • WORKSTATIONS_PROJECT_NUMBER: die automatisch generierte, eindeutige numerische Kennung, die als erster Teil des Compute Engine-Standarddienstkontos des Workstation-Projekts enthalten ist.
    • KMS_PROJECT_ID: Projekt-ID, ein eindeutiger String, der verwendet wird, um Ihr Cloud KMS-Projekt von allen anderen Projekten in Google Cloud zu unterscheiden.

    Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.

  2. Verwenden Sie den folgenden Befehl, um das Dienstkonto zur Workstationverwaltung für Ihr Workstationprojekt abzurufen:

    gcloud beta services identity create --service=workstations.googleapis.com \
        --project=WORKSTATIONS_PROJECT_ID
    

    Ersetzen Sie WORKSTATIONS_PROJECT_ID durch die Projekt-ID Ihrer Workstation.

  3. Gewähren Sie dem Dienstkonto zur Workstationverwaltung für Ihr Projekt die Cloud KMS-Betrachterrolle (roles/cloudkms.viewer) für den CMEK-Schlüssel. Dadurch kann der Workstationdienst die Schlüsselrotation erkennen und Ressourcen nach Bedarf in Ihrem Projekt neu verschlüsseln.

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT \
        --role roles/cloudkms.viewer \
        --project KMS_PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • KEY_NAME: der Name des Schlüssels
    • LOCATION ist der Name der Region, in der Sie Ihren Schlüsselbund erstellt haben.
    • KEY_RING: der Name des Schlüsselbunds.
    • WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT: das Dienstkonto für die Workstation-Verwaltung, das Sie im obigen Schritt erhalten haben.
    • KMS_PROJECT_ID: die Projekt-ID, ein eindeutiger String, der verwendet wird, um Ihr Cloud KMS-Schlüsselprojekt von allen anderen Projekten in Google Cloud zu unterscheiden.

    Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help aus.

  4. Optional: Wenn Sie noch keinen Workstationcluster erstellt haben, erstellen Sie einen solchen mit dem CLI-Befehl clusters create gcloud.

    gcloud workstations clusters create \
        WORKSTATIONS_CLUSTER_NAME --region=LOCATION \
        --project=WORKSTATIONS_PROJECT_NUMBER
    

    Ersetzen Sie Folgendes:

    • WORKSTATIONS_CLUSTER_NAME: der Name des Workstationclusters.
    • LOCATION: der Name der Region für Ihren Workstationcluster.
    • WORKSTATIONS_PROJECT_NUMBER: die automatisch generierte, eindeutige numerische Kennung, die als erster Teil des Compute Engine-Standarddienstkontos des Workstation-Projekts enthalten ist
  5. Wenn Sie bereits einen Cluster erstellt haben, erstellen Sie eine Workstationkonfiguration mit den encryption_key-Einstellungen.

    Führen Sie den folgenden gcloud-Befehl über die Befehlszeile aus, um eine Workstationkonfiguration mit dem Maschinentyp e2-standard-2, einer Inaktivitätszeit von 3600s und CMEK-verschlüsselten Workstation-Ressourcen zu erstellen:

    gcloud workstations configs create WORKSTATIONS_CONFIG_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --region=LOCATION \
      --machine-type="e2-standard-2" \
      --idle-timeout=3600 \
      --kms-key="projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
      --kms-key-service-account="WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --project=WORKSTATIONS_PROJECT_NUMBER
    

    Ersetzen Sie Folgendes:

    • WORKSTATIONS_CONFIG_NAME: der Name der Workstationkonfiguration.
    • WORKSTATIONS_CLUSTER_NAME: der Name Ihres Workstationclusters
    • LOCATION: der Name der Region für Ihren Cluster.
    • KMS_PROJECT_ID: Projekt-ID, ein eindeutiger String, der dazu dient, Ihr Projekt von allen anderen in Google Cloud zu unterscheiden.
    • KEY_RING: der Name des Schlüsselbunds.
    • KEY_NAME: der Name des Schlüssels
    • WORKSTATIONS_PROJECT_NUMBER: die automatisch generierte, eindeutige numerische Kennung, die als erster Teil des Compute Engine-Standarddienstkontos des Workstation-Projekts enthalten ist

    Nachdem Sie eine Workstationkonfiguration erstellt haben, verschlüsselt Cloud KMS die nichtflüchtigen Speicher in Ihrem Projekt mit dem angegebenen Cloud KMS-Schlüssel.

Cloud KMS-Kontingente und Cloud Workstations

Wenn Sie CMEK in Cloud Workstations verwenden, können Ihre Projekte Kontingente für kryptografische Cloud KMS-Anfragen nutzen. CMEK-verschlüsselte Repositories können diese Kontingente beispielsweise pro Up- oder Download verbrauchen. Verschlüsselungs- und Entschlüsselungsvorgänge mit CMEK-Schlüsseln wirken sich nur dann auf Cloud KMS-Kontingente aus, wenn Sie Hardwareschlüssel (Cloud HSM) oder externe Schlüssel (Cloud EKM) verwenden. Weitere Informationen finden Sie unter Cloud KMS-Kontingente.

Externe Schlüssel

Sie können Cloud External Key Manager (Cloud EKM) verwenden, um Daten in Google Cloud mit von Ihnen verwalteten externen Schlüsseln zu verschlüsseln.

Wenn Sie einen Cloud EKM-Schlüssel verwenden, hat Google keine Kontrolle über die Verfügbarkeit Ihres extern verwalteten Schlüssels. Wenn der Schlüssel nicht mehr verfügbar ist, kann Ihre Workstation nicht gestartet werden.

Weitere Überlegungen zur Verwendung externer Schlüssel finden Sie unter Cloud External Key Manager.

Nächste Schritte