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 Autokey finden Sie unter Übersicht über Autokey.

Hinweise

Um die Berechtigungen zu erhalten, die Sie zum Erstellen geschützter Ressourcen mit Autokey benötigen, bitten Sie Ihren Administrator, Ihnen Die IAM-Rolle Cloud KMS Autokey User (roles/cloudkms.autokeyUser) für den Ordner oder das Projekt. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

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

Sie benötigen außerdem Berechtigungen zum Erstellen von Ressourcen im Ordner „Autokey“ oder im ein Ressourcenprojekt im Ordner. Weitere Informationen zu den Berechtigungen die zum Erstellen der einzelnen Ressourcen erforderlich sind, finden Sie in der dienstspezifischen Dokumentation. Ich finden Sie diese Dokumentation, indem Sie den Dienst in den CMEK-Integrationen suchen. 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. Snapshots sollten die Methode Schlüssel, mit dem das Laufwerk verschlüsselt wurde. Wenn Sie einen Snapshot mit der Methode In der Google Cloud Console wird der vom Laufwerk verwendete Verschlüsselungsschlüssel auf den Snapshot angewendet wird. 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 erstellen von einem mit CMEK verschlüsselten Laufwerk.

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 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 die Erstellung des Laufwerks abzuschließen.

Mit einem ähnlichen Verfahren können Sie eine geschützte VM-Instanz, und Maschinen-Image-Ressourcen.

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 Datei 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. Für 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 Gebühren in Rechnung gestellt werden sollen die mit dieser Anfrage verknüpft sind.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.
    • LOCATION: der Standort, an dem Sie die geschützten Ressource.
    • 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 Gebühren in Rechnung gestellt werden sollen die mit dieser Anfrage verknüpft sind.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.
    • LOCATION: der Standort, an dem Sie die geschützten Ressource.
    • 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 können Sie die ID genauso verwenden, wie Sie sie auch für andere Cloud KMS-Ressource.

  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 Standort, an dem Sie die .
    • 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 einen beliebigen vorhandener CMEK, einschließlich von Autokey erstellten Schlüsseln.

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 Bucket erstellen. bis Sie zu Wählen Sie aus, wie Objektdaten geschützt werden sollen angezeigt werden.

  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. In einer Meldung wird angezeigt, erstellt und einsatzbereit.

  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 Gebühren in Rechnung gestellt werden sollen die mit dieser Anfrage verknüpft sind.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.
    • LOCATION: der Standort, an dem Sie die geschützten Ressource.
    • RESOURCE_TYPE: der Ressourcentyp, den Sie verwenden möchten create, 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 Gebühren in Rechnung gestellt werden sollen die mit dieser Anfrage verknüpft sind.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.
    • LOCATION: der Standort, an dem Sie die geschützten Ressource.
    • 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ü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 Standort, an dem Sie die .
    • 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 möchten eine Ressource in einem Dataset mit einem anderen Schlüssel als dem Dataset schützen. Standardschlüssel ist, können Sie manuell einen CMEK erstellen und diesen Schlüssel beim Erstellen der .

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 zu Projektstandardschlüssel verwenden, siehe 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 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 Gebühren in Rechnung gestellt werden sollen die mit dieser Anfrage verknüpft sind.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.
    • 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 Gebühren in Rechnung gestellt werden sollen die mit dieser Anfrage verknüpft sind.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.
    • LOCATION: der Standort, an dem Sie die geschützten Ressource.
    • 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 mit Cloud KMS Autokey kompatibel, wenn Ressourcen mit Terraform oder der REST API erstellen.

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, ein Schlüssel-Handle für ein Secret im selben Projekt zu erstellen, für die bereits ein Schlüssel-Handle existiert, wird in einer Fehlermeldung der Details zum vorhandenen Schlüssel-Handle. Achten Sie in diesem Fall darauf, haben einen Block, der den Schlüsselziehpunkt erstellt. Sie können den Schlüssel-Handle wiederverwenden, indem Sie seine ID (KEY_HANDLE), um zusätzliche Secrets zu erstellen, die teilen Sie den Schlüssel.

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 Gebühren in Rechnung gestellt werden sollen die mit dieser Anfrage verknüpft sind.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.
    • LOCATION: der Standort, an dem Sie die geschützten Ressource.
    • RESOURCE_TYPE: der Ressourcentyp, den Sie verwenden möchten create, 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. Das brauchst du , 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. In diesem Fall können Sie im nächsten Schritt und geben Sie im Feld existingKmsKey die Schlüsselressourcen-ID ein um dein 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 Gebühren in Rechnung gestellt werden sollen die mit dieser Anfrage verknüpft sind.
    • RESOURCE_PROJECT_ID: die Projekt-ID der Ressource im Autokey-Ordner, den Sie erstellen möchten, eine geschützte Ressource sein.
    • LOCATION: der Standort, an dem Sie die geschützten Ressource.
    • 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 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 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