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 Übersicht: Autokey.
Hinweise
Bevor Sie geschützte Ressourcen mit Autokey erstellen können, müssen Sie die folgenden Vorbereitungsschritte ausführen:
- Wenn Sie noch kein Ressourcenprojekt im Autokey-Ordner haben, müssen Sie ein Projekt erstellen, in dem die Ressourcen gespeichert werden, die Sie erstellen möchten.
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud KMS Autokey User (
roles/cloudkms.autokeyUser
) für den Ordner oder das Projekt zuzuweisen, 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.
- Sie benötigen außerdem Berechtigungen zum Erstellen von Ressourcen im Autokey-Ordner oder in einem Ressourcenprojekt im Ordner. 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 einen neuen Schlüssel für jedes Laufwerk, Image und Maschinen-Image am selben Speicherort wie die Ressource, die 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 über dieTrusted Cloud -Konsole 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 Compute Engine API erstellen, müssen Sie den Schlüssel angeben, mit dem das Laufwerk verschlüsselt wurde, und diesen Schlüssel 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:
Rufen Sie in der Trusted Cloud Console die Seite Laufwerke auf.
Klicken Sie auf Laufwerk erstellen und geben Sie die Attribute für das neue Laufwerk ein.
Wählen Sie unter Verschlüsselung die Option Cloud KMS-Schlüssel aus.
Wählen Sie unter Schlüsseltyp die Option Cloud KMS mit Autokey aus und klicken Sie dann auf Neuen Schlüssel anfordern. Eine Meldung informiert Sie darüber, wann Ihr Schlüssel erstellt wurde und einsatzbereit ist.
Klicken Sie auf Erstellen, um das Laufwerk zu erstellen.
Sie können einen ähnlichen Prozess verwenden, 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 = 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 eine geschützte Ressource erstellen möchten.KEY_HANDLE
: Eine ID, die für den Schlüssel-Handle verwendet werden soll.LOCATION
: der Ort, 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 Standortus-central1
erstellen, könnte die Zoneus-central1-a
sein.
In Cloud KMS können Sie keine KeyHandle
-Ressourcen löschen. Wenn Sie ein Muster zum Erstellen und Löschen verwenden, führt der Versuch, ein KeyHandle
neu zu erstellen, zu einem ALREADY_EXISTS
-Fehler. Um dieses Problem zu vermeiden, können Sie eine zuvor erstellte KeyHandle
importieren. Weitere Informationen finden Sie auf dieser Seite unter Muster in Terraform erstellen und löschen.
API
Fordern Sie einen neuen Cloud KMS-Schlüssel an, 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 Gebühren 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 Typ der Ressource, die Sie erstellen möchten, z. B.compute.googleapis.com/Disk
.
Die Ausgabe sieht 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 den
OPERATION_ID
aus der Ausgabe. Sie benötigen diesen Wert, um die Ressourcen-ID des erstellten Schlüssels abzurufen.Suchen Sie den Cloud KMS-Schlüssel, der dem Schlüssel-Handle zugeordnet 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 Gebühren 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 Vorgangs für die Schlüsselhandle-Anfrage aus der Ausgabe des vorherigen Schritts.
Die Ausgabe sieht 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.Erstellen Sie mit dem Befehl
gcloud compute disks create
ein verschlüsseltes Laufwerk und geben Sie den Schlüssel mit dem Flag--kms-key
an: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 Ort, 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 Speicherort wie den Bucket. Der von Autokey erstellte Schlüssel wird als Standardschlüssel für den Bucket zugewiesen.
Mit Autokey werden keine Schlüssel für Objekte erstellt. Standardmäßig verwenden Objekte, die in einem Bucket erstellt werden, den Standardschlüssel des Buckets. Wenn Sie ein Objekt mit einem anderen Schlüssel als dem Standardschlüssel des Buckets 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-Schlüssel verwenden, einschließlich der von Autokey erstellten Schlüssel.
Geschützte Cloud Storage-Ressource erstellen
Console
Rufen Sie in der Trusted Cloud Console die Seite Bucket erstellen auf.
Folgen Sie der Anleitung unter Neuen Bucket erstellen, bis Sie zum Abschnitt Auswählen, wie Objektdaten geschützt werden gelangen.
Maximieren Sie unter Auswählen, wie Objektdaten geschützt werden den Bereich Datenverschlüsselung und wählen Sie dann Cloud KMS-Schlüssel aus.
Wählen Sie unter Schlüsseltyp die Option Cloud KMS mit Autokey aus und klicken Sie dann auf Neuen Schlüssel anfordern. Eine Meldung informiert Sie darüber, wann Ihr Schlüssel erstellt wurde und einsatzbereit ist.
Klicken Sie auf Erstellen, um die Erstellung des Buckets 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 = 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 eine geschützte Ressource erstellen möchten.KEY_HANDLE
: Eine ID, die für den Schlüssel-Handle verwendet werden soll.LOCATION
: der Ort, an dem Sie die geschützte Ressource erstellen möchten.BUCKET_NAME
: der Name des neuen Buckets.
In Cloud KMS können Sie keine KeyHandle
-Ressourcen löschen. Wenn Sie ein Muster zum Erstellen und Löschen verwenden, führt der Versuch, ein KeyHandle
neu zu erstellen, zu einem ALREADY_EXISTS
-Fehler. Um dieses Problem zu vermeiden, können Sie eine zuvor erstellte KeyHandle
importieren. Weitere Informationen finden Sie auf dieser Seite unter Muster in Terraform erstellen und löschen.
API
Fordern Sie einen neuen Cloud KMS-Schlüssel an, 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 Gebühren 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 Typ der Ressource, die Sie erstellen möchten, z. B.storage.googleapis.com/Bucket
.
Die Ausgabe sieht 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 den
OPERATION_ID
aus der Ausgabe. Sie benötigen diesen Wert, um die Ressourcen-ID des erstellten Schlüssels abzurufen.Suchen Sie den Cloud KMS-Schlüssel, der dem Schlüssel-Handle zugeordnet 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 Gebühren 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 Vorgangs für die Schlüsselhandle-Anfrage aus der Ausgabe des vorherigen Schritts.
Die Ausgabe sieht 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 diese Ressourcen-ID genauso verwenden wie die Ressourcen-ID für jede andere Cloud KMS-Ressource.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
: der Ort, an dem Sie den Bucket erstellen möchten.KEY_PROJECT_ID
: die Projekt-ID des Schlüsselprojekts.LOCATION
: der Ort, 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 verschiedenen BigQuery-Versionen verfügbar. Prüfen Sie, ob die von Ihnen verwendete BigQuery-Version mit Cloud KMS kompatibel ist, bevor Sie versuchen, BigQuery-Ressourcen mit Autokey zu schützen. Weitere Informationen zu BigQuery-Versionen finden Sie unter Informationen zu BigQuery-Versionen.
Für jedes neue Dataset erstellt Autokey einen neuen Schlüssel am selben Speicherort wie die Ressource selbst. Dieser wird zum Standardschlüssel des Datasets.
Mit Autokey werden keine Schlüssel für Tabellen, Abfragen, temporäre Tabellen oder Modelle erstellt. Standardmäßig werden diese Ressourcen durch den Standardschlüssel für das Dataset geschützt. Wenn Sie eine Ressource in einem Dataset mit einem anderen Schlüssel als dem Standardschlüssel des Datasets 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 Speicherort im Projekt, das BigQuery-Ressourcen enthält, einen anderen Standardschlüssel für das Projekt. 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 mit Autokey zu erstellen, müssen Sie die erforderlichen Berechtigungen haben. Weitere Informationen zum Erstellen von Datasets finden Sie unter Datasets erstellen.
Rufen Sie in der Trusted Cloud Console die Seite BigQuery auf.
Folgen Sie der Anleitung zum Erstellen eines Datasets bis zu Erweiterte Optionen > Verschlüsselung.
Wählen Sie unter Verschlüsselung die Option Cloud KMS-Schlüssel aus.
Wählen Sie unter Schlüsseltyp die Option Cloud KMS mit Autokey aus und klicken Sie dann auf Neuen Schlüssel anfordern. Eine Meldung informiert Sie darüber, wann Ihr Schlüssel erstellt wurde und einsatzbereit ist.
Klicken Sie zum Abschließen des Erstellungsvorgangs auf Dataset erstellen.
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" {
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 eine geschützte Ressource erstellen möchten.LOCATION
: der Ort, 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 nutzerfreundlicher Name für das neue Dataset.DATASET_DESCRIPTION
: eine Beschreibung für das neue Dataset.
In Cloud KMS können Sie keine KeyHandle
-Ressourcen löschen. Wenn Sie ein Muster zum Erstellen und Löschen verwenden, führt der Versuch, ein KeyHandle
neu zu erstellen, zu einem ALREADY_EXISTS
-Fehler. Um dieses Problem zu vermeiden, können Sie eine zuvor erstellte KeyHandle
importieren. Weitere Informationen finden Sie auf dieser Seite unter Muster in Terraform erstellen und löschen.
API
Fordern Sie einen neuen Cloud KMS-Schlüssel an, 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 Gebühren 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 Typ der Ressource, die Sie erstellen möchten, z. B.bigquery.googleapis.com/Dataset
.
Die Ausgabe sieht 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 den
OPERATION_ID
aus der Ausgabe. Sie benötigen diesen Wert, um die Ressourcen-ID des erstellten Schlüssels abzurufen.Suchen Sie den Cloud KMS-Schlüssel, der dem Schlüssel-Handle zugeordnet 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 Gebühren 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 Vorgangs für die Schlüsselhandle-Anfrage aus der Ausgabe des vorherigen Schritts.
Die Ausgabe sieht 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 diese Ressourcen-ID genauso verwenden wie die Ressourcen-ID für jede andere Cloud KMS-Ressource.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 Ort, 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 für das neue Dataset.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 zu erstellenden Datasets.
Weitere Informationen zum
bq
-Tool finden Sie unter bq-Befehlszeilentool entdecken.
Autokey mit Secret Manager-Ressourcen verwenden
Autokey erstellt einen einzelnen Schlüssel zum Schutz aller Secrets im selben Projekt und am selben Standort. Wenn der Schlüssel rotiert wird, wird für neue Secrets, die dem Projekt hinzugefügt werden, die neue primäre Version des Schlüssels verwendet.
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 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" {
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 eine geschützte Ressource erstellen möchten.SECRET_ID
: 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 das bereits ein Schlüssel-Handle vorhanden ist, wird eine Fehlermeldung mit den Details des vorhandenen Schlüssel-Handles zurückgegeben. Achten Sie in diesem Fall darauf, dass nur ein Block das Schlüssel-Handle erstellt. Sie können den Schlüssel-Handle mit seiner ID (KEY_HANDLE
) wiederverwenden, um zusätzliche Secrets zu erstellen, die den Schlüssel gemeinsam nutzen sollen.
In Cloud KMS können Sie keine KeyHandle
-Ressourcen löschen. Wenn Sie ein Muster zum Erstellen und Löschen verwenden, führt der Versuch, ein KeyHandle
neu zu erstellen, zu einem ALREADY_EXISTS
-Fehler. Um dieses Problem zu vermeiden, können Sie eine zuvor erstellte KeyHandle
importieren. Weitere Informationen finden Sie auf dieser Seite unter Muster in Terraform erstellen und löschen.
API
Fordern Sie einen neuen Cloud KMS-Schlüssel an, 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 Gebühren 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 Typ der Ressource, die Sie erstellen möchten, z. B.secretmanager.googleapis.com/Secret
.
Die Ausgabe sieht 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 den
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 das bereits ein Schlüssel-Handle vorhanden ist, wird eine Fehlermeldung mit den Details des vorhandenen Schlüssel-Handles zurückgegeben. Überspringen Sie in diesem Fall den nächsten Schritt und verwenden Sie die Schlüsselressourcen-ID im Feld
existingKmsKey
, um das neue Secret zu schützen.Suchen Sie den Cloud KMS-Schlüssel, der dem Schlüssel-Handle zugeordnet 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 Gebühren 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 Vorgangs für die Schlüsselhandle-Anfrage aus der Ausgabe des vorherigen Schritts.
Die Ausgabe sieht 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 diese Ressourcen-ID genauso verwenden wie die Ressourcen-ID für jede andere Cloud KMS-Ressource.Erstellen Sie mit dem Befehl
gcloud secrets create
und 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
: 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.
Autokey mit Dataflow-Ressourcen verwenden
Mit Autokey kann für jeden Dataflow-Job ein einzelner Schlüssel erstellt werden.
API
Fordern Sie einen neuen Cloud KMS-Schlüssel an, 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": "dataflow.googleapis.com/Job"}'
Ersetzen Sie Folgendes:
USER_PROJECT
: das Projekt, dem die mit dieser Anfrage verbundenen Gebühren 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.
Die Ausgabe sieht 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 den
OPERATION_ID
aus der Ausgabe. Sie benötigen diesen Wert, um die Ressourcen-ID des erstellten Schlüssels abzurufen.Suchen Sie den Cloud KMS-Schlüssel, der dem Schlüssel-Handle zugeordnet 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 Gebühren 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 Vorgangs für die Schlüsselhandle-Anfrage aus der Ausgabe des vorherigen Schritts.
Die Ausgabe sieht 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.
Create-and-destroy-Muster in Terraform
In Cloud KMS können Sie keine KeyHandle
-Ressourcen löschen. Wenn Sie Terraform und ein Create-and-Destroy-Muster verwenden und versuchen, eine KeyHandle
neu zu erstellen, wird ein ALREADY_EXISTS
-Fehler ausgegeben. Sie können dieses Problem vermeiden, indem Sie einen import
-Block verwenden. Fügen Sie den folgenden Block vor dem Block resource
für die Ressource google_kms_key_handle
ein:
import {
to = google_kms_key_handle.KEY_HANDLE
id = "projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE"
}
Nächste Schritte
- Weitere Informationen zur Verwendung von Autokey
- Weitere Informationen zur Funktionsweise von Autokey