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:
- 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.
-
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.
- 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:
Rufen Sie in der Google 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 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.
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 Standortus-central1
erstellen, könnte die Zoneus-central1-a
sein.
API
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.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.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
Rufen Sie in der Google Cloud Console die Seite Bucket erstellen auf.
Folgen Sie der Anleitung zum Erstellen eines neuen Buckets bis zum Punkt Auswählen, wie Objektdaten geschützt werden sollen.
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.
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.
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
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.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.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-NamenLOCATION
: 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.
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Folgen Sie der Anleitung zum Erstellen eines Datasets, bis gelangen Sie zu Erweiterte Optionen > Verschlüsselung.
Wählen Sie unter Verschlüsselung die Option Cloud KMS-Schlüssel aus.
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.
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
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.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.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
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.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.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
- Weitere Informationen zur Verwendung von Autokey
- Weitere Informationen zur Funktionsweise von Autoschlüssel