Bootlaufwerk einer TPU-VM mit einem vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) mit Compute Engine verschlüsseln

Cloud TPU verschlüsselt ruhende Kundeninhalte standardmäßig. Die Verschlüsselung wird von Cloud TPU übernommen. 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 Cloud TPU verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über ihre Schutzebene, ihren Speicherort, ihren Rotationszeitplan, ihre Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem 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 Cloud TPU-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).

Wenn Sie einen CMEK verwenden möchten, erstellen Sie einen Schlüsselbund. Erstellen Sie den Schlüsselbund am selben Standort, an dem Sie Ihre TPU-VM oder Ihren TPU-Slice erstellen. Eine TPU-VM in der Zone us-central1-a kann beispielsweise nur einen Schlüssel in der Region us-central1 verwenden.

Erstellen Sie als Nächstes einen Schlüssel in Ihrem Schlüsselbund. Nachdem Sie einen CMEK erstellt haben, gewähren Sie dem Compute Engine-Dienstkonto Zugriff auf Ihren Schlüssel.

Verwendung des Schlüssels erlauben

Weisen Sie dem Compute Engine-Dienst-Agenten in Ihrem Google Cloud -Projekt die IAM-Rolle Cloud KMS CryptoKey-Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) für den Cloud KMS-Schlüssel zu. Wenn Sie diese Rolle zuweisen, kann der Compute Engine-Dienst auf Ihren Verschlüsselungsschlüssel zugreifen und ihn verwenden.

Wählen Sie eine der folgenden Optionen aus, um dem Compute Engine-Dienst-Agenten die Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter zuzuweisen:

gcloud

Führen Sie dazu diesen Befehl aus:

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

Ersetzen Sie Folgendes:

  • KEY_NAME: Name des Schlüssels.
  • LOCATION: Der Speicherort, an dem Sie Ihren Schlüsselbund erstellt haben.
  • RING_NAME: Name des Schlüsselbunds.
  • PROJECT_NUMBER: Ihre Google Cloud Projektnummer.
  • KEY_PROJECT_ID: Ihre Projekt-ID.

Console

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

    Zu „Schlüsselverwaltung“

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

  3. Klicken Sie auf den Namen des Schlüssels, den Sie ändern möchten.

  4. Klicken Sie auf Berechtigungen.

  5. Klicken Sie auf Zugriff gewähren. Der Bereich Zugriff erlauben wird geöffnet.

  6. Geben Sie im Feld Neue Hauptkonten den Namen des Compute Engine-Dienst-Agents ein:

    service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
    

    Ersetzen Sie PROJECT_NUMBER durch die Google Cloud Projektnummer.

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

  8. Klicken Sie auf Speichern.

TPU-VM mit einem CMEK erstellen

Sie können einen CMEK angeben, wenn Sie eine TPU-VM oder eine Instanzvorlage für eine verwaltete Instanzgruppe (MIG) mit dem Flag --boot-disk-kms-key erstellen.

Einzelne TPU-VM-Instanz mit einem CMEK erstellen

Wenn Sie beim Erstellen einer einzelnen TPU-VM einen CMEK angeben möchten, verwenden Sie das Flag --boot-disk-kms-key im Befehl gcloud compute instances create:

  gcloud compute instances create TPU_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --maintenance-policy=TERMINATE \
    --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME

Ersetzen Sie die folgenden Platzhalter:

  • TPU_NAME: Ein Name für Ihre TPU-VM.
  • MACHINE_TYPE: Der Maschinentyp für die TPU-VM, z. B. ct6e-standard-8t.
  • IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das Flag --image. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem-Images.
  • IMAGE_PROJECT: Das Projekt, das das Betriebssystem-Image enthält. Bei TPU-Images ist dies ubuntu-os-accelerator-images.
  • ZONE: Die Zone für die TPU-VM, z. B. us-central1-b.
  • KEY_PROJECT_ID: Das Projekt, das den Verschlüsselungsschlüssel enthält.
  • REGION: Region, in der Sie Ihren Schlüsselbund erstellt haben.
  • RING_NAME: Name des Schlüsselbunds.
  • KEY_NAME: Name des Schlüssels.

MIG mit einem Single-Host-Slice mit einem CMEK erstellen

Wenn Sie einen CMEK mit einer MIG verwenden möchten, geben Sie den Schlüssel beim Erstellen der Instanzvorlage an.

  1. Erstellen Sie mit dem Flag --boot-disk-kms-key eine Instanzvorlage:

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --machine-type=MACHINE_TYPE \
        --maintenance-policy=TERMINATE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
    

    Ersetzen Sie die folgenden Platzhalter:

    • INSTANCE_TEMPLATE_NAME: Ein Name für Ihre Instanzvorlage.
    • MACHINE_TYPE: Der Maschinentyp für die TPU-VM, z. B. ct6e-standard-8t.
    • IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das Flag --image. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem-Images.
    • IMAGE_PROJECT: Das Projekt, das das Betriebssystem-Image enthält. Bei TPU-Images ist dies ubuntu-os-accelerator-images.
    • KEY_PROJECT_ID: Das Projekt, das den Verschlüsselungsschlüssel enthält.
    • REGION: Region, in der Sie Ihren Schlüsselbund erstellt haben.
    • RING_NAME: Name des Schlüsselbunds.
    • KEY_NAME: Name des Schlüssels.
  2. MIG mit der Vorlage erstellen:

    gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --template=INSTANCE_TEMPLATE_NAME \
        --zone=ZONE \
        --size=MIG_SIZE
    

    Ersetzen Sie die folgenden Platzhalter:

    • MIG_NAME: Ein Name für Ihre MIG.
    • MIG_SIZE: Die Anzahl der TPU-VMs in der MIG.
    • INSTANCE_TEMPLATE_NAME: Name der zu verwendenden Instanzvorlage.
    • ZONE: Die Zone für die TPU-VM, z. B. us-central1-b.
    • MIG_SIZE: Die Anzahl der TPU-VMs in der MIG. Legen Sie für eine TPU-VM mit einem einzelnen Host die Größe auf 1 fest.

MIG mit einem Multi-Host-Slice mit einem CMEK erstellen

Wenn Sie eine MIG mit mehreren Hosts erstellen, geben Sie den Verschlüsselungsschlüssel in der Instanzvorlage an.

  1. Erstellen Sie die Instanzvorlage.

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME
        --machine-type=MACHINE_TYPE \
        --maintenance-policy=TERMINATE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
    

    Ersetzen Sie die folgenden Platzhalter:

    • INSTANCE_TEMPLATE_NAME: Ein Name für Ihre Instanzvorlage.
    • MACHINE_TYPE: Der Maschinentyp für die TPU-VM, z. B. ct6e-standard-8t.
    • IMAGE_FAMILY: Die Betriebssystem-Image-Familie für die TPU-VM. Wenn Sie eine bestimmte Betriebssystemversion installieren möchten, verwenden Sie das Flag --image. Weitere Informationen zu Betriebssystem-Images finden Sie unter Betriebssystem-Images.
    • IMAGE_PROJECT: Das Projekt, das das Betriebssystem-Image enthält. Bei TPU-Images ist dies ubuntu-os-accelerator-images.
    • KEY_PROJECT_ID: Das Projekt, das den Verschlüsselungsschlüssel enthält.
    • REGION: Region, in der Sie Ihren Schlüsselbund erstellt haben.
    • RING_NAME: Name des Schlüsselbunds.
    • KEY_NAME: Name des Schlüssels.
  2. Erstellen Sie eine Arbeitslastrichtlinie.

    Mit dem folgenden Befehl wird eine Arbeitslastrichtlinie erstellt:

    gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \
    --type=high-throughput \
    --accelerator-topology=TOPOLOGY
    

    Ersetzen Sie die folgenden Platzhalter:

    • WORKLOAD_POLICY_NAME: Der Name Ihrer Arbeitslastrichtlinie.
    • TOPOLOGY: Die Topologie der TPU-VMs, z. B. 4x4x8.
  3. Erstellen Sie die MIG.

    gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --target-size-policy-mode=bulk \
        --template=INSTANCE_TEMPLATE_NAME \
        --zone=ZONE \
        --default-action-on-vm-failure=do-nothing \
        --workload-policy=WORKLOAD_POLICY_NAME
    

    Ersetzen Sie die folgenden Platzhalter:

    • MIG_NAME: Name der MIG.
    • MIG_SIZE: Die Anzahl der VMs in der MIG. Dieser Wert wird anhand der in der Arbeitslastrichtlinie angegebenen Topologie validiert.
    • INSTANCE_TEMPLATE_NAME: Der Name Ihrer Instanzvorlage.
    • ZONE: Die Zone für Ihre MIG.
    • WORKLOAD_POLICY_NAME: Der Name Ihrer Arbeitslastrichtlinie.

Informationen zum Erstellen von TPU-VMs mit CMEKs mit GKE finden Sie in der GKE-Dokumentation unter Kundenverwaltete Verschlüsselungsschlüssel (Customer Managed Encryption Keys, CMEK) verwenden.

Gelöschte oder widerrufene CMEKs

Wenn ein CMEK widerrufen oder gelöscht wird, wird eine TPU-VM, die ein mit dem gelöschten oder widerrufenen CMEK verschlüsseltes Bootlaufwerk verwendet, nicht automatisch heruntergefahren. Die TPU-VM greift weiterhin auf Daten auf dem verschlüsselten Bootlaufwerk zu, bis Sie die VM herunterfahren oder neu starten. So können Sie Ihre Daten wiederherstellen, wenn Sie den Zugriff auf einen widerrufenen oder gelöschten Schlüssel wiederherstellen. Wenn Sie einen Schlüssel wieder aktivieren, können Sie Ihre TPU-VM starten oder reparieren. Das Bootlaufwerk wird dann erfolgreich entschlüsselt und geladen.