Geschützte Ressourcen mit Cloud KMS Autokey erstellen

Auf dieser Seite erfahren Sie, wie Sie geschützte Ressourcen mit Schlüsseln erstellen, die von Cloud KMS Autokey für die Verschlüsselung erstellt wurden. Weitere Informationen zu Autokey finden Sie unter Autokey – Übersicht.

Hinweise

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud KMS Autokey User (roles/cloudkms.autokeyUser) für den Ordner oder Projekt zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Erstellen geschützter Ressourcen mit Autokey benötigen. 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.

Sie benötigen außerdem Berechtigungen zum Erstellen von Ressourcen im Autokey-Ordner oder für ein Ressourcenprojekt innerhalb des Ordners. Weitere Informationen zu den Berechtigungen, die zum Erstellen der einzelnen Ressourcen erforderlich sind, finden Sie in der dienstspezifischen Dokumentation. Sie finden diese Dokumentation, indem Sie den Dienst in der Tabelle mit CMEK-Integrationen suchen und den Link für den Ressourcentyp aufrufen, den Sie erstellen möchten.

Autokey mit Compute Engine-Ressourcen verwenden

Autokey erstellt für jedes Laufwerk, jedes Image und jedes Maschinen-Image einen neuen Schlüssel am selben Speicherort wie die Ressource, die erstellt wird.

Autokey erstellt keine neuen Schlüssel für Snapshots. Snapshots sollten denselben Schlüssel verwenden, der zum Verschlüsseln des Laufwerks verwendet wurde. Wenn Sie einen Snapshot mit der Google Cloud Console erstellen, wird der vom Laufwerk verwendete Verschlüsselungsschlüssel automatisch auf den Snapshot angewendet. Wenn Sie einen Snapshot mit der gcloud CLI, Terraform oder der Cloud KMS API erstellen, müssen Sie den Schlüssel identifizieren, mit dem das Laufwerk verschlüsselt wurde, und ihn zum Verschlüsseln des Snapshots verwenden.

Weitere Informationen zur Verwendung von CMEK mit Snapshots finden Sie unter Snapshot von einem mit CMEK verschlüsselten Laufwerk erstellen.

Geschützte Compute Engine-Ressource erstellen

Console

So erstellen Sie ein Laufwerk:

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

    Zur Seite „Laufwerke“

  2. Klicken Sie auf Laufwerk erstellen und geben Sie die Attribute für das neue Laufwerk ein.

  3. Wählen Sie unter Verschlüsselung die Option Cloud KMS-Schlüssel aus.

  4. Wählen Sie unter Schlüsseltyp die Option Cloud KMS mit Autokey aus und klicken Sie dann auf Neuen Schlüssel anfordern. Eine Meldung gibt an, wenn Ihr Schlüssel erfolgreich erstellt wurde und verwendet werden kann.

  5. Klicken Sie auf Erstellen, um die Erstellung des Laufwerks abzuschließen.

Sie können ähnlich vorgehen, um geschützte VM-Instanz-, Image- und Maschinen-Image-Ressourcen zu erstellen.

Terraform

Im folgenden Terraform-Beispiel wird ein Schlüssel-Handle erstellt und der zurückgegebene Schlüssel verwendet, um eine neue nichtflüchtige Speicherressource zu schützen:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "KEY_HANDLE"
  location               = "LOCATION"
  resource_type_selector = "compute.googleapis.com/Disk"
}

resource "google_compute_disk" "persistent_disk" {
  project = "RESOURCE_PROJECT_ID"
  name    = "DISK_NAME"
  type    = "pd-ssd"
  zone    = "ZONE"
  size    = 30
  physical_block_size_bytes = 4096
  disk_encryption_key {
    kms_key_self_link = my_key_handle.kms_key
  }
}

Ersetzen Sie Folgendes:

  • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
  • KEY_HANDLE: eine ID, die für den Schlüssel-Handle verwendet werden soll.
  • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
  • DISK_NAME: durch den Namen des neuen Laufwerks.
  • ZONE: die Zone der geschützten Ressource. Dies muss eine Zone innerhalb des Standorts sein, an dem Sie die Ressource erstellen. Wenn Sie die Ressource beispielsweise am Standort us-central1 erstellen, könnte die Zone us-central1-a sein.

API

  1. Fordern Sie einen neuen Cloud KMS-Schlüssel an, indem Sie einen KeyHandle erstellen:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Ersetzen Sie Folgendes:

    • USER_PROJECT: Das Projekt, dem die Gebühren für diese Anfrage in Rechnung gestellt werden.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
    • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
    • RESOURCE_TYPE: der Ressourcentyp, den Sie erstellen möchten, z. B. compute.googleapis.com/Disk

    Die Ausgabe sieht in etwa so aus:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Notieren Sie sich die OPERATION_ID aus der Ausgabe. Sie benötigen diesen Wert, um die Ressourcen-ID des erstellten Schlüssels abzurufen.

  2. Suchen Sie den Cloud KMS-Schlüssel, der mit dem Schlüssel-Handle verknüpft ist:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Ersetzen Sie Folgendes:

    • USER_PROJECT: Das Projekt, dem die Gebühren für diese Anfrage in Rechnung gestellt werden.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
    • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
    • OPERATION_ID: Die ID des Schlüssel-Handle-Anfragevorgangs aus der Ausgabe des vorherigen Schritts.

    Die Ausgabe sieht in etwa so aus:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Der Wert des Elements kmsKey in der Ausgabe ist die vollständige Ressourcen-ID des Schlüssels, der von Autokey für diese Ressource erstellt wurde. Sie können diese Ressourcen-ID genauso verwenden wie die Ressourcen-ID für jede andere Cloud KMS-Ressource.

  3. Erstellen Sie mit dem Befehl gcloud compute disks create und dem Flag --kms-key ein verschlüsseltes Laufwerk:

    gcloud compute disks create DISK_NAME \
      --kms-key projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
    

    Ersetzen Sie Folgendes:

    • DISK_NAME: durch den Namen des neuen Laufwerks.
    • KEY_PROJECT_ID: die Projekt-ID des Schlüsselprojekts.
    • LOCATION: Der Standort, an dem Sie die Ressource erstellen möchten.
    • KEY_NAME: der Name des Schlüssels, der in der Ausgabe des vorherigen Schritts zurückgegeben wurde.

Autokey mit Cloud Storage-Ressourcen verwenden

Autokey erstellt einen neuen Schlüssel am selben Ort wie der Bucket. Der von Autokey erstellte Schlüssel wird als Bucket-Standardschlüssel zugewiesen.

Autokey erstellt keine Schlüssel für Objekte. Standardmäßig wird für Objekte, die in einem Bucket erstellt werden, der Standardschlüssel des Buckets verwendet. Wenn Sie ein Objekt mit einem anderen Schlüssel als dem Bucket-Standardschlüssel verschlüsseln möchten, können Sie manuell einen CMEK erstellen und diesen Schlüssel beim Erstellen des Objekts verwenden.

Wenn Sie den einem Bucket zugewiesenen Standardschlüssel ändern möchten, können Sie einen beliebigen vorhandenen CMEK verwenden, einschließlich der von Autokey erstellten Schlüssel.

Geschützte Cloud Storage-Ressource erstellen

Console

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

    Zur Seite „Bucket erstellen“

  2. Folgen Sie der Anleitung unter Neuen Bucket erstellen, bis Sie zu Wählen Sie aus, wie Objektdaten geschützt werden angezeigt werden.

  3. Maximieren Sie unter Auswählen, wie Objektdaten geschützt werden den Abschnitt Datenverschlüsselung und wählen Sie dann Cloud KMS-Schlüssel aus.

  4. Wählen Sie unter Schlüsseltyp die Option Cloud KMS mit Autokey aus und klicken Sie dann auf Neuen Schlüssel anfordern. Eine Meldung gibt an, wenn Ihr Schlüssel erfolgreich erstellt wurde und verwendet werden kann.

  5. Klicken Sie auf Erstellen, um die Bucket-Erstellung abzuschließen.

Terraform

Im folgenden Terraform-Beispiel wird ein Schlüssel-Handle erstellt und der zurückgegebene Schlüssel verwendet, um einen neuen Storage-Bucket zu schützen:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "KEY_HANDLE"
  location               = "LOCATION"
  resource_type_selector = "storage.googleapis.com/Bucket"
}

resource "google_storage_bucket" "simple_bucket_name" {
  name                        = "BUCKET_NAME"
  location                    = "LOCATION"
  force_destroy               = true
  project                     = "RESOURCE_PROJECT_ID"
  uniform_bucket_level_access = true
  encryption {
    default_kms_key_name      = my_key_handle.kms_key
  }
}

Ersetzen Sie Folgendes:

  • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
  • KEY_HANDLE: eine ID, die für den Schlüssel-Handle verwendet werden soll.
  • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
  • BUCKET_NAME: der Name des neuen Buckets.

API

  1. Fordern Sie einen neuen Cloud KMS-Schlüssel an, indem Sie einen KeyHandle erstellen:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Ersetzen Sie Folgendes:

    • USER_PROJECT: Das Projekt, dem die Gebühren für diese Anfrage in Rechnung gestellt werden.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
    • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
    • RESOURCE_TYPE: der Ressourcentyp, den Sie erstellen möchten, z. B. storage.googleapis.com/Bucket

    Die Ausgabe sieht in etwa so aus:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Notieren Sie sich die OPERATION_ID aus der Ausgabe. Sie benötigen diesen Wert, um die Ressourcen-ID des erstellten Schlüssels abzurufen.

  2. Suchen Sie den Cloud KMS-Schlüssel, der mit dem Schlüssel-Handle verknüpft ist:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Ersetzen Sie Folgendes:

    • USER_PROJECT: Das Projekt, dem die Gebühren für diese Anfrage in Rechnung gestellt werden.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
    • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
    • OPERATION_ID: Die ID des Schlüssel-Handle-Anfragevorgangs aus der Ausgabe des vorherigen Schritts.

    Die Ausgabe sieht in etwa so aus:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Der Wert des Elements kmsKey in der Ausgabe ist die vollständige Ressourcen-ID des Schlüssels, der von Autokey für diese Ressource erstellt wurde. Sie können diese Ressourcen-ID auf dieselbe Weise verwenden wie die Ressourcen-ID für jede andere Cloud KMS-Ressource.

  3. Erstellen Sie mit dem Befehl gcloud storage buckets create und dem Flag --default-encryption-key einen verschlüsselten Bucket:

    gcloud storage buckets create gs://BUCKET_NAME \
        --location=LOCATION \
        --default-encryption-key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME
    

    Ersetzen Sie Folgendes:

    • BUCKET_NAME: der Name des neuen Buckets. Der Bucket-Name muss den Anforderungen für Bucket-Namen entsprechen.
    • LOCATION ist der Standort, an dem Sie den Bucket erstellen möchten.
    • KEY_PROJECT_ID: die Projekt-ID des Schlüsselprojekts.
    • LOCATION: Der Standort, an dem Sie die Ressource erstellen möchten.
    • KEY_NAME: der Name des Schlüssels, der in der Ausgabe des vorherigen Schritts zurückgegeben wurde.

Autokey mit BigQuery-Ressourcen verwenden

Cloud KMS ist in mehreren BigQuery-Versionen verfügbar. Prüfen Sie, ob die verwendete Version von BigQuery mit Cloud KMS kompatibel ist, bevor Sie versuchen, BigQuery-Ressourcen mit Autokey zu schützen. Weitere Informationen zu BigQuery-Versionen finden Sie unter BigQuery-Versionen.

Für jedes neue Dataset erstellt Autokey einen neuen Schlüssel am selben Ort wie die Ressource selbst. Dieser wird zum Standardschlüssel des Datasets.

Autokey erstellt keine Schlüssel für Tabellen, Abfragen, temporäre Tabellen oder Modelle. Standardmäßig werden diese Ressourcen durch den Dataset-Standardschlüssel geschützt. Wenn Sie eine Ressource in einem Dataset mit einem anderen Schlüssel als dem Dataset-Standardschlüssel schützen möchten, können Sie manuell einen CMEK erstellen und diesen Schlüssel beim Erstellen der Ressource verwenden.

Verwenden Sie für Abfragen und temporäre Tabellen, die sich nicht in einem Dataset befinden, die Standardschlüssel des Projekts. Verwenden Sie für jeden Standort im Projekt, der BigQuery-Ressourcen enthält, einen anderen Projektstandardschlüssel. Weitere Informationen zur Verwendung von Standardschlüsseln für Projekte finden Sie unter Standardschlüssel für das Projekt festlegen.

Weitere Informationen zur Verwendung von CMEK mit BigQuery finden Sie unter Vom Kunden verwaltete Cloud KMS-Schlüssel.

Geschützte BigQuery-Ressource erstellen

Console

Bevor Sie versuchen, ein BigQuery-Dataset mit Autokey zu erstellen, müssen Sie die erforderlichen Berechtigungen haben. Weitere Informationen zum Erstellen von Datasets finden Sie unter Datasets erstellen.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Folgen Sie der Anleitung unter Dataset erstellen, bis Sie zu Erweiterte Optionen > Verschlüsselung gelangen.

  3. Wählen Sie unter Verschlüsselung die Option Cloud KMS-Schlüssel aus.

  4. Wählen Sie unter Schlüsseltyp die Option Cloud KMS mit Autokey aus und klicken Sie dann auf Neuen Schlüssel anfordern. Eine Meldung gibt an, wenn Ihr Schlüssel erfolgreich erstellt wurde und verwendet werden kann.

  5. Klicken Sie auf Dataset erstellen, um die Erstellung des Datasets abzuschließen.

Terraform

Im folgenden Terraform-Beispiel wird ein Schlüssel-Handle erstellt und der zurückgegebene Schlüssel verwendet, um ein neues Dataset zu schützen:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "test-key-handle"
  location               = "LOCATION"
  resource_type_selector = "bigquery.googleapis.com/Dataset"
}

resource "google_bigquery_dataset" "dataset" {
  dataset_id                  = "DATASET_ID"
  friendly_name               = "DATASET_NAME"
  description                 = "DATASET_DESCRIPTION"
  location                    = "LOCATION"
  default_table_expiration_ms = 3600000

  default_encryption_configuration {
    kms_key_name = my_key_handle.kms_key
  }
}

Ersetzen Sie Folgendes:

  • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
  • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
  • DATASET_ID: Die ID, die für das neue Dataset verwendet werden soll.
  • DATASET_NAME: ein verständlicher Name für das neue Dataset.
  • DATASET_DESCRIPTION: Eine Beschreibung des neuen Datasets.

API

  1. Fordern Sie einen neuen Cloud KMS-Schlüssel an, indem Sie einen KeyHandle erstellen:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Ersetzen Sie Folgendes:

    • USER_PROJECT: Das Projekt, dem die Gebühren für diese Anfrage in Rechnung gestellt werden.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
    • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
    • RESOURCE_TYPE: der Ressourcentyp, den Sie erstellen möchten, z. B. bigquery.googleapis.com/Dataset

    Die Ausgabe sieht in etwa so aus:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Notieren Sie sich die OPERATION_ID aus der Ausgabe. Sie benötigen diesen Wert, um die Ressourcen-ID des erstellten Schlüssels abzurufen.

  2. Suchen Sie den Cloud KMS-Schlüssel, der mit dem Schlüssel-Handle verknüpft ist:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Ersetzen Sie Folgendes:

    • USER_PROJECT: Das Projekt, dem die Gebühren für diese Anfrage in Rechnung gestellt werden.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
    • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
    • OPERATION_ID: Die ID des Schlüssel-Handle-Anfragevorgangs aus der Ausgabe des vorherigen Schritts.

    Die Ausgabe sieht in etwa so aus:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Der Wert des Elements kmsKey in der Ausgabe ist die vollständige Ressourcen-ID des Schlüssels, der von Autokey für diese Ressource erstellt wurde. Sie können diese Ressourcen-ID auf dieselbe Weise verwenden wie die Ressourcen-ID für jede andere Cloud KMS-Ressource.

  3. Erstellen Sie mit dem Befehl bq mk und dem Flag --destination_kms_key ein verschlüsseltes Dataset.

    bq --location=LOCATION mk \
        --dataset \
        --default_kms_key=projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME \
        --default_table_expiration=TABLE_EXPIRATION \
        --description="DATASET_DESCRIPTION" \
        RESOURCE_PROJECT_ID:DATASET_ID
    

    Ersetzen Sie Folgendes:

    • LOCATION: Der Standort, an dem Sie das Dataset erstellen möchten.
    • KEY_PROJECT_ID: die Projekt-ID des Schlüsselprojekts.
    • KEY_NAME: der Name des Schlüssels, der in der Ausgabe des vorherigen Schritts zurückgegeben wurde.
    • TABLE_EXPIRATION: die Standardlebensdauer neuer Tabellen in diesem Dataset in Sekunden.
    • DATASET_DESCRIPTION: Eine Beschreibung des neuen Datasets.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
    • DATASET_ID: die ID des Datasets, das Sie erstellen.

    Weitere Informationen zum bq-Tool finden Sie unter Das bq-Befehlszeilentool kennenlernen.

Autokey mit Secret Manager-Ressourcen verwenden

Autokey erstellt einen einzelnen Schlüssel, um alle Secrets im selben Projekt und am selben Standort zu schützen. Wenn der Schlüssel rotiert wird, verwenden neue Secrets, die dem Projekt hinzugefügt werden, die neue primäre Version des Schlüssels.

Secret Manager ist nur mit Cloud KMS Autokey kompatibel, wenn Ressourcen mit Terraform oder der REST API erstellt werden.

Geschützte Secret Manager-Ressource erstellen

Terraform

Im folgenden Terraform-Beispiel wird ein Schlüssel-Handle erstellt und der zurückgegebene Schlüssel verwendet, um ein neues Secret mit automatischer Replikation zu schützen:

resource "google_kms_key_handle" "my_key_handle" {
  provider               = google-beta
  project                = "RESOURCE_PROJECT_ID"
  name                   = "test-key-handle"
  location               = "global"
  resource_type_selector = "secretmanager.googleapis.com/Secret"
}

resource "google_secret_manager_secret" "my_secret" {
  secret_id = "SECRET_ID"

  replication {
    auto {
      customer_managed_encryption {
        kms_key_name = my_key_handle.kms_key
      }
    }
  }
}

Ersetzen Sie Folgendes:

  • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
  • SECRET_ID ist die ID, die für das neue Secret verwendet werden soll.

Wenn Sie versuchen, ein Schlüssel-Handle für ein Secret im selben Projekt und am selben Standort zu erstellen, für die bereits ein Schlüssel-Handle existiert, gibt eine Fehlermeldung die Details des vorhandenen Schlüssel-Handles zurück. Achten Sie in diesem Fall darauf, dass nur ein Block den Schlüssel-Handle erstellt. Sie können das Schlüssel-Handle mit seiner ID (KEY_HANDLE) wiederverwenden, um zusätzliche Secrets zu erstellen, die den Schlüssel gemeinsam nutzen sollen.

API

  1. Fordern Sie einen neuen Cloud KMS-Schlüssel an, indem Sie einen KeyHandle erstellen:

    curl -H "Content-Type: application/json" \
        -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X POST https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles \
        -d '{"resource_type_selector": "RESOURCE_TYPE"}'
    

    Ersetzen Sie Folgendes:

    • USER_PROJECT: Das Projekt, dem die Gebühren für diese Anfrage in Rechnung gestellt werden.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
    • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
    • RESOURCE_TYPE: der Ressourcentyp, den Sie erstellen möchten, z. B. secretmanager.googleapis.com/Secret

    Die Ausgabe sieht in etwa so aus:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
      }
    }
    

    Notieren Sie sich die OPERATION_ID aus der Ausgabe. Sie benötigen diesen Wert, um die Ressourcen-ID des erstellten Schlüssels abzurufen.

    Wenn Sie versuchen, ein Schlüssel-Handle für ein Secret im selben Projekt und am selben Standort zu erstellen, für die bereits ein Schlüssel-Handle existiert, werden in einer Fehlermeldung die Details des vorhandenen Schlüssel-Handles zurückgegeben. In diesem Fall können Sie den nächsten Schritt überspringen und im Feld existingKmsKey die Schlüsselressourcen-ID verwenden, um Ihr neues Secret zu schützen.

  2. Suchen Sie den Cloud KMS-Schlüssel, der mit dem Schlüssel-Handle verknüpft ist:

    curl -H "X-Goog-User-Project: USER_PROJECT" \
        -H "Authorization: Bearer TOKEN" \
        -X GET https://cloudkms.googleapis.com/v1/projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
    

    Ersetzen Sie Folgendes:

    • USER_PROJECT: Das Projekt, dem die Gebühren für diese Anfrage in Rechnung gestellt werden.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.
    • LOCATION: Der Standort, an dem Sie die geschützte Ressource erstellen möchten.
    • OPERATION_ID: Die ID des Schlüssel-Handle-Anfragevorgangs aus der Ausgabe des vorherigen Schritts.

    Die Ausgabe sieht in etwa so aus:

    {
      "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
        "name": "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE",
        "kmsKey": "projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
        "resourceTypeSelector": "RESOURCE_TYPE"
      }
    }
    

    Der Wert des Elements kmsKey in der Ausgabe ist die vollständige Ressourcen-ID des Schlüssels, der von Autokey für diese Ressource erstellt wurde. Sie können diese Ressourcen-ID auf dieselbe Weise verwenden wie die Ressourcen-ID für jede andere Cloud KMS-Ressource.

  3. Erstellen Sie mit dem Befehl gcloud secrets create mit dem Flag --kms-key-name ein verschlüsseltes Secret mit automatischer Replikation.

    gcloud secrets create "SECRET_ID" \
        --replication-policy "automatic" \
        --kms-key-name "projects/KEY_PROJECT_ID/locations/global/keyRings/autokey/cryptoKeys/KEY_NAME" \
        --project "RESOURCE_PROJECT_ID"
    

    Ersetzen Sie Folgendes:

    • SECRET_ID ist die ID, die für das neue Secret verwendet werden soll.
    • KEY_PROJECT_ID: die Projekt-ID des Schlüsselprojekts.
    • KEY_NAME: der Name des Schlüssels, der in der Ausgabe des vorherigen Schritts zurückgegeben wurde.
    • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie eine geschützte Ressource erstellen möchten.

Nächste Schritte