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. Weitere Informationen zu Autoschlüssel finden Sie unter Autoschlüssel – Übersicht.

Hinweise

Bevor Sie geschützte Ressourcen mit Autokey erstellen können, müssen Sie führen Sie die folgenden Schritte aus, um sich vorzubereiten:

  1. Wenn Sie im Autokey-Ordner noch kein Ressourcenprojekt haben, müssen Sie ein Projekt erstellen, um die Ressourcen zu speichern, die Sie erstellen möchten.
  2. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud KMS Autokey User (roles/cloudkms.autokeyUser) für den Ordner oder das Projekt zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen geschützter Ressourcen mit Autokey benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

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

  3. Außerdem benötigen Sie Berechtigungen zum Erstellen von Ressourcen im Autokey-Ordner oder in einem Ressourcenprojekt im Ordner. Weitere Informationen zur Berechtigungen, die zum Erstellen der einzelnen Ressourcen erforderlich sind, finden Sie in den Dokumentation. Sie finden diese Dokumentation, indem Sie den Dienst in den CMEK und rufen Sie den Link für den Ressourcentyp auf, die 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 in denselben Standort wie die Ressource, die gerade erstellt wird.

Autokey erstellt keine neuen Schlüssel für Snapshots. Für Snapshots sollte derselbe Schlüssel verwendet werden, der auch für die Verschlüsselung 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 dem Cloud KMS API verwenden, müssen Sie den Schlüssel identifizieren, mit dem das Laufwerk verschlüsselt ist, verwenden Sie diesen Schlüssel, um den Snapshot zu verschlüsseln.

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

Führen Sie die folgenden Schritte aus, um ein Laufwerk zu erstellen:

  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 als Schlüsseltyp die Option Cloud KMS mit Autokey aus und klicken Sie auf Fordern Sie einen neuen Schlüssel an. In einer Meldung wird angezeigt, erstellt und einsatzbereit.

  5. Klicken Sie auf Erstellen, um das Laufwerk anzulegen.

Sie können ein ähnliches Verfahren anwenden, um geschützte VM-Instanzen, Images und Maschinen-Image-Ressourcen zu erstellen.

Terraform

Im folgenden Terraform-Beispiel wird ein Schlüssel-Handle erstellt und den zurückgegebenen Schlüssel zum Schutz einer neuen nichtflüchtigen Speicherressource:

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 = google_kms_key_handle.my_key_handle.kms_key
  }
}

Ersetzen Sie Folgendes:

  • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie ein geschütztes .
  • KEY_HANDLE: eine ID, die für den Schlüssel-Handle verwendet werden soll.
  • LOCATION: der Speicherort, 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:

    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 mit dieser Anfrage verbundenen Kosten 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 Speicherort, an dem Sie die geschützte Ressource erstellen möchten.
    • RESOURCE_TYPE: der Ressourcentyp, den Sie verwenden möchten create, 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. Diesen Wert benötigen Sie 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 mit dieser Anfrage verbundenen Kosten 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 Speicherort, an dem Sie die geschützte Ressource erstellen möchten.
    • OPERATION_ID: Die ID der Schlüssel-Handle-Anfrage. Vorgang 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 von Schlüssel, der von Autokey für diese Ressource erstellt wurde. Sie können diese Ressourcen-ID wie die Ressourcen-ID für jede andere Cloud KMS-Ressource verwenden.

  3. Mit dem gcloud compute disks create ein verschlüsseltes Laufwerk erstellen mit dem Parameter --kms-key-Flag:

    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 Speicherort, an dem Sie die Ressource erstellen möchten.
    • KEY_NAME: der Name des Schlüssels, der in der Ausgabe von zurückgegeben wird aus dem vorherigen Schritt.

Autokey mit Cloud Storage-Ressourcen verwenden

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

Autokey erstellt keine Schlüssel für Objekte. Standardmäßig werden Objekte, die in für einen Bucket verwenden Sie den Bucket-Standardschlüssel. Wenn Sie ein Objekt mithilfe einer anderen Schlüssel als den Bucket-Standardschlüssel haben, können Sie manuell einen CMEK erstellen und beim Erstellen des Objekts verwenden.

Wenn Sie den einem Bucket zugewiesenen Standardschlüssel ändern möchten, können Sie jeden vorhandenen CMEK verwenden, einschließlich von Autokey erstellter 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 zum Erstellen eines neuen Buckets bis zum Punkt Auswählen, wie Objektdaten geschützt werden sollen.

  3. Maximieren Sie unter Wählen Sie aus, wie Objektdaten geschützt werden sollen das Feld Daten Verschlüsselung und wählen Sie dann Cloud KMS-Schlüssel aus.

  4. Wählen Sie als Schlüsseltyp die Option Cloud KMS mit Autokey aus und klicken Sie auf Fordern Sie einen neuen Schlüssel an. Sie werden per Meldung darüber informiert, wenn der Schlüssel erfolgreich erstellt wurde und einsatzbereit ist.

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

Terraform

Im folgenden Terraform-Beispiel wird ein Schlüssel-Handle erstellt und den zurückgegebenen Schlüssel zum Schutz eines neuen Storage-Buckets:

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      = google_kms_key_handle.my_key_handle.kms_key
  }
}

Ersetzen Sie Folgendes:

  • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie ein geschütztes .
  • KEY_HANDLE: eine ID, die für den Schlüssel-Handle verwendet werden soll.
  • LOCATION: der Speicherort, an dem Sie die geschützte Datei 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:

    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 mit dieser Anfrage verbundenen Kosten 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ützten Ressource.
    • RESOURCE_TYPE: Der Typ der Ressource, die 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. Das brauchst du , 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 mit dieser Anfrage verbundenen Kosten 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 Speicherort, an dem Sie die geschützte Ressource erstellen möchten.
    • OPERATION_ID: Die ID der Schlüssel-Handle-Anfrage. Vorgang 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 kmsKey-Elements in der Ausgabe ist die vollständige Ressourcen-ID des Schlüssels, der von Autokey für diese Ressource erstellt wurde. Sie können können Sie diese Ressourcen-ID genauso verwenden, wie Sie sie für jede andere andere Cloud KMS-Ressource.

  3. Verschlüsselten Bucket mit dem gcloud storage buckets create erstellen mit dem Parameter --default-encryption-key-Flag:

    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. Die Bucket-Name muss dem Anforderungen für Bucket-Namen
    • LOCATION: der Standort, an dem Sie die Bucket.
    • KEY_PROJECT_ID: die Projekt-ID des Schlüsselprojekts.
    • LOCATION: der Speicherort, an dem Sie die Ressource erstellen möchten.
    • KEY_NAME: der Name des Schlüssels, der in der Ausgabe von zurückgegeben wird aus dem vorherigen Schritt.

Autokey mit BigQuery-Ressourcen verwenden

Cloud KMS ist in mehreren BigQuery-Versionen verfügbar. Marke ob die verwendete BigQuery-Version mit Cloud KMS verwenden, bevor Sie versuchen, Autokey zum Schutz BigQuery-Ressourcen Weitere Informationen zu BigQuery finden Sie unter Informationen zu BigQuery-Versionen.

Für jedes neue Dataset erstellt Autokey einen neuen Schlüssel am selben Speicherort als Ressource selbst, die zum Standardschlüssel des Datasets wird.

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 Datensatz mit einem anderen Schlüssel als dem Standardschlüssel des Datensatzes schützen möchten, können Sie einen CMEK manuell 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, Projekt Standardschlüssel. Verwenden Sie für jeden Speicherort im das BigQuery-Ressourcen enthält. Weitere Informationen zur Verwendung von Projekt-Standardschlüsseln finden Sie unter Projekt-Standardschlüssel 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 Autokey verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Weitere Informationen 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 zum Erstellen eines Datasets, bis gelangen Sie zu Erweiterte Optionen > Verschlüsselung.

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

  4. Wählen Sie als Schlüsseltyp die Option Cloud KMS mit Autokey aus und klicken Sie auf Fordern Sie einen neuen Schlüssel an. In einer Meldung wird angezeigt, erstellt und einsatzbereit.

  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 den zurückgegebenen Schlüssel zum Schutz eines neuen Datasets:

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" {
  project                     = "RESOURCE_PROJECT_ID"
  dataset_id                  = "DATASET_ID"
  friendly_name               = "DATASET_NAME"
  description                 = "DATASET_DESCRIPTION"
  location                    = "LOCATION"
  default_table_expiration_ms = 3600000

  default_encryption_configuration {
    kms_key_name = google_kms_key_handle.my_key_handle.kms_key
  }
}

Ersetzen Sie Folgendes:

  • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie ein geschütztes .
  • LOCATION: der Speicherort, an dem Sie die geschützte Datei 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 für das neue Dataset.

API

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

    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 mit dieser Anfrage verbundenen Kosten 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ützten Ressource.
    • RESOURCE_TYPE: der Ressourcentyp, den Sie verwenden möchten create, 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. Das brauchst du , 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 mit dieser Anfrage verbundenen Kosten 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 Speicherort, an dem Sie die geschützte Ressource erstellen möchten.
    • OPERATION_ID: Die ID der Schlüssel-Handle-Anfrage. Vorgang 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 können Sie diese Ressourcen-ID genauso verwenden, wie Sie sie für jede andere andere Cloud KMS-Ressource.

  3. Verschlüsseltes Dataset mit dem bq mk erstellen mit dem Parameter --destination_kms_key.

    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 die Dataset.
    • KEY_PROJECT_ID: die Projekt-ID des Schlüsselprojekts.
    • KEY_NAME: der Name des Schlüssels, der in der Ausgabe von zurückgegeben wird aus dem vorherigen Schritt.
    • TABLE_EXPIRATION: die Standardlebensdauer für neue Tabellen in diesem Dataset in Sekunden.
    • DATASET_DESCRIPTION: eine Beschreibung für das neue Dataset.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.
    • DATASET_ID: die ID des Datasets, das Sie verwenden erstellen.

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

Autokey mit Secret Manager-Ressourcen verwenden

Autokey erstellt einen einzelnen Schlüssel, um alle Secrets im selben Projekt zu schützen und den Standort haben. Wenn der Schlüssel rotiert wird, verwenden neue Secrets, die dem Projekt hinzugefügt werden, das neue Primärversion des Schlüssels.

Secret Manager ist nur dann 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 den zurückgegebenen Schlüssel, 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" {
  project   = "RESOURCE_PROJECT_ID"
  secret_id = "SECRET_ID"

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

Ersetzen Sie Folgendes:

  • RESOURCE_PROJECT_ID: die Projekt-ID des Ressourcenprojekts im Autokey-Ordner, in dem Sie ein geschütztes .
  • SECRET_ID ist die ID, die für das neue Secret verwendet werden soll.

Wenn Sie versuchen, einen Schlüssel-Handle für ein Secret im selben Projekt und an demselben Speicherort zu erstellen, für den bereits ein Schlüssel-Handle vorhanden ist, werden in einer Fehlermeldung die Details des vorhandenen Schlüssel-Handles zurückgegeben. Achten Sie in diesem Fall darauf, haben einen Block, der den Schlüsselziehpunkt erstellt. Sie können den Schlüssel-Handle mit seiner ID (KEY_HANDLE) wiederverwenden, um zusätzliche Secrets zu erstellen, die denselben Schlüssel verwenden sollen.

API

  1. Erstellen Sie einen neuen Cloud KMS-Schlüssel, indem Sie eine 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 mit dieser Anfrage verbundenen Kosten 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ützten Ressource.
    • RESOURCE_TYPE: Der Typ der Ressource, die 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, im selben Projekt ein Schlüssel-Handle für ein Secret zu erstellen und Speicherort, für den bereits ein Schlüssel-Handle existiert, wird eine Fehlermeldung angezeigt. gibt die Details des vorhandenen Schlüssel-Handles zurück. Überspringen Sie in diesem Fall den nächsten Schritt und verwenden Sie die Schlüsselressourcen-ID im Feld existingKmsKey, um Ihr neues Geheimnis 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 mit dieser Anfrage verbundenen Kosten 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 Speicherort, an dem Sie die geschützte Ressource erstellen möchten.
    • OPERATION_ID: Die ID der Schlüssel-Handle-Anfrage. Vorgang 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 können Sie diese Ressourcen-ID genauso verwenden, wie Sie sie für jede andere andere Cloud KMS-Ressource.

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

    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: 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 von zurückgegeben wird aus dem vorherigen Schritt.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.

Nächste Schritte