Auf dieser Seite wird beschrieben, wie Sie Cloud KMS Autokey für einen Ressourcenordner aktivieren und konfigurieren. Weitere Informationen zu Autokey finden Sie unter Autokey – Übersicht. Die Schritte auf dieser Seite sollten von einem Sicherheitsadministrator ausgeführt werden.
Hinweise
Bevor Sie Cloud KMS Autokey aktivieren können, benötigen Sie Folgendes:
- Eine Organisationsressource, die einen Ordner enthält, für den Sie Autokey aktivieren möchten. Wenn Sie keinen Ordner haben, in dem Sie Autokey aktivieren möchten, können Sie einen neuen Ressourcenordner erstellen. Wenn Sie Autokey für diesen Ordner aktivieren, wird Autokey für alle Ressourcenprojekte im Ordner aktiviert.
- Wenn Sie Ressourcenprojekte haben, für die Sie Autokey verwenden möchten, diese sich aber nicht in einem Ordner befinden, in dem Sie Autokey aktivieren, können Sie vorhandene Ressourcenprojekte in neue Ordner verschieben.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für die Organisation oder den Ordner zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Aktivieren und Konfigurieren von Autokey benötigen:
-
Cloud KMS Autokey-Administrator (
roles/cloudkms.autokeyAdmin
) -
Ordner-IAM-Administrator (
roles/resourcemanager.folderIamAdmin
) -
Rechnungskontonutzer (
roles/billing.user
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Aktivieren und Konfigurieren von Autokey erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Zum Aktivieren und Konfigurieren von Autokey sind die folgenden Berechtigungen erforderlich:
-
cloudkms.autokeyConfigs.*
-
cloudkms.projects.showEffectiveAutokeyConfig
-
resourcemanager.folders.get
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
billing.resourceAssociations.create
Möglicherweise können Sie diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Legen Sie fest, wie Sie Autokey aktivieren möchten
Sie können Autokey im Rahmen Ihrer Infrastruktur-als-Code-Strategie aktivieren. Dazu verwenden Sie Terraform, um die erforderlichen Konfigurationsänderungen vorzunehmen. Wenn Sie Autokey mit Terraform aktivieren möchten, lesen Sie den Abschnitt Autokey mit Terraform aktivieren auf dieser Seite. Wenn Sie Terraform nicht verwenden möchten, folgen Sie zuerst der Anleitung im nächsten Abschnitt.
Schlüsselprojekt einrichten
Wir empfehlen, ein neues Schlüsselprojekt zu erstellen, das von Autokey erstellte Cloud KMS-Ressourcen enthält. Sie sollten das Schlüsselprojekt in Ihrer Organisationsressource erstellen. Wenn Sie bereits ein Schlüsselprojekt haben, das Sie für Schlüssel verwenden möchten, die von Autokey erstellt wurden, können Sie den Abschnitt Schlüsselprojekt erstellen überspringen und mit Autokey-Projekt konfigurieren auf dieser Seite fortfahren.
Das Schlüsselprojekt kann im selben Ordner erstellt werden, in dem Sie Autokey aktivieren möchten. Sie sollten keine weiteren Ressourcen im Schlüsselprojekt erstellen. Wenn Sie versuchen, durch Autokey geschützte Ressourcen im Schlüsselprojekt zu erstellen, lehnt Autokey die Anfrage für einen neuen Schlüssel ab.
Wenn Sie in Zukunft möglicherweise zu Assured Workloads migrieren möchten, erstellen Sie das Schlüsselprojekt im selben Ordner wie die Ressourcen, die durch diese Schlüssel geschützt werden.
Wenn Ihre Organisation die Organisationsrichtlinieneinschränkung constraints/gcp.restrictCmekCryptoKeyProjects
verwendet, um sicherzustellen, dass alle CMEKs von bestimmten Schlüsselprojekten stammen, müssen Sie Ihr Schlüsselprojekt der Liste der zulässigen Projekte hinzufügen. Weitere Informationen zur CMEK-Organisationsrichtlinie finden Sie unter CMEK-Organisationsrichtlinien.
Schlüsselprojekt erstellen
Console
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie unter Organisation auswählen die Organisationsressource aus, in der Sie ein Projekt erstellen möchten.
- Klicken Sie auf Projekt erstellen.
- Geben Sie im angezeigten Fenster Neues Projekt einen Projektnamen ein und wählen Sie ein Rechnungskonto aus. Ein Projektname darf nur Buchstaben, Zahlen, einfache Anführungszeichen, Bindestriche, Leerzeichen oder Ausrufezeichen enthalten und muss zwischen 4 und 30 Zeichen lang sein.
- Wählen Sie unter Standort die Ressource aus, die Sie für Ihr Schlüsselprojekt übergeordnet haben möchten.
- Klicken Sie auf Erstellen, um die Erstellung des Projekts abzuschließen.
gcloud
Erstellen Sie ein neues Projekt:
gcloud projects create PROJECT_ID \ --PARENT_TYPE=PARENT_ID
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Projekts, das den Schlüsselbund enthält.PARENT_TYPE
: der Typ der Ressource, in der Sie das neue Schlüsselprojekt erstellen möchten. Geben Sieorganization
ein, um das neue Schlüsselprojekt in einer bestimmten Organisation zu erstellen, oderfolder
, um das neue Schlüsselprojekt in einem bestimmten Ordner zu erstellen.PARENT_ID
: die ID der Organisation oder des Ordners, in der bzw. dem Sie das Schlüsselprojekt erstellen möchten.
Autokey-Schlüsselprojekt vorbereiten
Console
Aktivieren Sie die Cloud KMS API für Ihr Schlüsselprojekt.
Wenn Sie ein neues Schlüsselprojekt verwenden, gewähren Sie Ihren Cloud KMS-Administratornutzern Cloud KMS-Administratorberechtigungen für das Schlüsselprojekt:
Öffnen Sie in der Google Cloud Console die Seite IAM.
Wählen Sie das Schlüsselprojekt aus.
Klicken Sie auf
Zugriff gewähren und geben Sie dann die E-Mail-Adresse des Nutzers ein.Wählen Sie die Rolle Cloud KMS-Administrator aus.
Klicken Sie auf Speichern.
gcloud
Aktivieren Sie die Cloud KMS API für Ihr Schlüsselprojekt:
gcloud services enable cloudkms.googleapis.com
Gewähren Sie Ihren Cloud KMS-Administratornutzern Cloud KMS-Administratorberechtigungen für das Schlüsselprojekt:
gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=user:KEY_ADMIN_EMAIL
Ersetzen Sie Folgendes:
PROJECT_NUMBER
: die Projektnummer des Schlüsselprojekts.KEY_ADMIN_EMAIL
: die E-Mail-Adresse des Nutzers, der für die Verwaltung von Cloud KMS-Schlüsseln verantwortlich ist.
Cloud KMS Autokey für einen Ressourcenordner aktivieren
Console
Rufen Sie in der Google Cloud Console die Seite KMS-Steuerelemente auf.
Wählen Sie in der Kontextauswahl den Ordner aus, in dem Sie Autokey aktivieren möchten.
Klicken Sie auf Aktivieren.
Wählen Sie Ihr Schlüsselprojekt aus und klicken Sie auf Senden.
Eine Meldung bestätigt, dass Cloud KMS Autokey für den Ordner aktiviert ist.
API
Erstellen Sie die AutokeyConfig
für den Ordner, in dem Sie Autokey aktivieren möchten:
curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"key_project": "projects/PROJECT_ID"}'
Ersetzen Sie Folgendes:
FOLDER_ID
: die ID des Ordners, in dem Sie Autokey aktivieren möchten.PROJECT_ID
: die ID des Schlüsselprojekts.
Cloud KMS-Dienst-Agent einrichten
Der Cloud KMS-Dienst-Agent für ein Schlüsselprojekt erstellt im Auftrag eines Cloud KMS-Administrators Schlüssel und wendet IAM-Richtlinienbindungen während der Ressourcenerstellung an. Damit der Cloud KMS-Dienst-Agent Schlüssel erstellen und zuweisen kann, benötigt der Cloud KMS-Dienst-Agent Cloud KMS-Administratorberechtigungen.
Erstellen Sie den Cloud KMS-Dienst-Agent:
gcloud beta services identity create --service=cloudkms.googleapis.com \ --project=PROJECT_NUMBER
Ersetzen Sie
PROJECT_NUMBER
durch die Projektnummer des Schlüsselprojekts.Gewähren Sie dem Dienst-Agent Cloud KMS-Administratorberechtigungen:
gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
Ersetzen Sie
PROJECT_NUMBER
durch die Projektnummer des Schlüsselprojekts.
Autokey-Nutzerrollen gewähren
Bevor Ihre Entwickler Autokey verwenden können, müssen Sie ihnen die erforderliche Rolle gewähren. Sie können die Rolle auf Ordner- oder auf Projektebene zuweisen. Mit dieser Rolle können Entwickler beim Erstellen von Ressourcen in diesem Ordner oder Projekt Schlüssel vom Cloud KMS-Dienst-Agent anfordern.
Führen Sie einen oder beide der folgenden Schritte aus:
Weisen Sie die Rolle
roles/cloudkms.autokeyUser
auf Ordnerebene zu:gcloud resource-manager folders add-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Ersetzen Sie Folgendes:
FOLDER_ID
: die ID des Ordners, in dem Sie Autokey aktivieren möchten.USER_EMAIL
: die E-Mail-Adresse des Nutzers, dem Sie die Berechtigung zur Verwendung von Autokey erteilen möchten.
Weisen Sie die Rolle
roles/cloudkms.autokeyUser
auf Projektebene zu:gcloud projects add-iam-policy-binding PROJECT_NUMBER \ --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Ersetzen Sie Folgendes:
PROJECT_ID
: die ID des Ressourcenprojekts.USER_EMAIL
: die E-Mail-Adresse des Nutzers, dem Sie die Berechtigung zur Verwendung von Autokey erteilen möchten.
Ihre Autokey-Entwickler können jetzt bei Bedarf Schlüssel erstellen. Informationen zum Erstellen von Ressourcen, die mit Schlüsseln geschützt sind, die bei Bedarf von Autokey erstellt wurden, finden Sie unter Geschützte Ressourcen mit Autokey erstellen.
Autokey mit Terraform aktivieren
Im folgenden Terraform-Beispiel werden die folgenden Einrichtungsschritte automatisiert:
- Ressourcenordner erstellen
- Schlüsselprojekt erstellen
- Nutzerberechtigungen gewähren
- Cloud KMS-Dienst-Agent einrichten
- Autokey aktivieren
Sie müssen Ressourcenprojekte separat im Ressourcenordner erstellen.
variable "organization_ID" {
description = "Your Google Cloud Org ID"
type = string
default = "ORGANIZATION_ID"
}
variable "billing_account" {
description = "Your Google Cloud Billing Account ID"
type = string
default = "BILLING_ACCOUNT_ID"
}
/* List the users who should have the authority to enable and configure
Autokey at a folder level */
variable "autokey_folder_admins" {
type = list(string)
default = [AUTOKEY_ADMIN_USER_IDS]
}
/* List the users who should have the authority to protect their resources
with Autokey */
variable "autokey_folder_users" {
type = list(string)
default = [AUTOKEY_DEVELOPER_USER_IDS]
}
/* List the users who should have the authority to manage crypto operations in
the Autokey key project */
variable "autokey_project_kms_admins" {
type = list(string)
default = [KEY_PROJECT_ADMIN_USER_IDS]
}
/* The project ID to use for the key project. The project ID must be 6 to 30
characters with lowercase letters, digits, hyphens. The project ID must start
with a letter. Trailing hyphens are prohibited */
variable "key_management_project_ID" {
description = "Sets the project ID for the Key Management Project. This project will contain the Key Rings and Keys generated by Cloud KMS Autokey"
type = string
default = "KEY_PROJECT_ID"
}
# Create a new folder
resource "google_folder" "autokey_folder" {
parent = "organizations/${var.organization_ID}"
display_name = "autokey_folder"
}
# Set permissions for key admins to use Autokey in this folder
resource "google_folder_iam_binding" "autokey_folder_admin" {
folder = google_folder.autokey_folder.name
role = "roles/cloudkms.autokeyAdmin"
members = var.autokey_folder_admins
}
# Set permissions for users to protect resources with Autokey in this folder
resource "google_folder_iam_binding" "autokey_folder_users" {
folder = google_folder.autokey_folder.name
role = "roles/cloudkms.autokeyUser"
members = var.autokey_folder_users
}
# Create a key project to store keys created by Autokey
resource "google_project" "key_management_project" {
project_id = var.key_management_project_ID
name = var.key_management_project_ID
billing_account = var.billing_account
folder_id = google_folder.autokey_folder.name
}
output "project_number" {
value = google_project.key_management_project.number
}
# Grant role for Cloud KMS admins to use Autokey in the key project
resource "google_project_iam_binding" "autokey_project_admin" {
project = google_project.key_management_project.project_id
role = "roles/cloudkms.admin"
members = var.autokey_project_kms_admins
depends_on = [ google_project.key_management_project ]
}
# Enable the Cloud KMS API in the key project
resource "google_project_service" "enable_api" {
service = "cloudkms.googleapis.com"
project = google_project.key_management_project.project_id
disable_on_destroy = false
disable_dependent_services = false
depends_on = [google_project.key_management_project]
}
# Create Cloud KMS service agent
resource "google_project_service_identity" "KMS_Service_Agent" {
provider = google-beta
service = "cloudkms.googleapis.com"
project = google_project.key_management_project.project_id
depends_on = [google_project.key_management_project]
}
/* Grant role for the Cloud KMS service agent to use delegated
Cloud KMS admin permissions */
resource "google_project_iam_member" "autokey_project_admin" {
project = google_project.key_management_project.project_id
role = "roles/cloudkms.admin"
member = "serviceAccount:service-${google_project.key_management_project.number}@gcp-sa-cloudkms.iam.gserviceaccount.com"
}
/* Enable AutokeyConfig in this folder */
resource "google_kms_autokey_config" "autokey_config" {
provider = google-beta
folder = google_folder.autokey_folder.folder_id
key_project = google_project.key_management_project.project_id
}
Ersetzen Sie Folgendes:
BILLING_ACCOUNT_ID
: Ihre Google Cloud-Rechnungskonto-ID. Die Rechnungskonto-ID ist ein 18-stelliger alphanumerischer Wert, der durch Bindestriche getrennt ist, z. B.010101-F0FFF0-10XX01
.AUTOKEY_ADMIN_USER_IDS
: eine Liste von E-Mail-Adressen für Nutzer, die die Rolleroles/cloudkms.autokeyAdmin
haben sollten, z. B."Ariel@example.com", "Charlie@example.com"
.AUTOKEY_DEVELOPER_USER_IDS
: eine Liste von E-Mail-Adressen für Nutzer, die die Rolleroles/cloudkms.autokeyUser
haben sollten, z. B."Kalani@example.com", "Mahan@example.com"
.KEY_PROJECT_ADMIN_USER_IDS
: eine Liste von E-Mail-Adressen für Nutzer, die die Rolleroles/cloudkms.admin
haben sollten, z. B."Sasha@example.com", "Nur@example.com"
.KEY_PROJECT_ID
: Die ID, die für das Schlüsselprojekt verwendet werden soll, z. B.autokey-key-project
.
Autokey-Nutzung erzwingen
Wenn Sie die Verwendung von Autokey in einem Ordner erzwingen möchten, können Sie die IAM-Zugriffssteuerung mit CMEK-Organisationsrichtlinien kombinieren. Dazu werden Berechtigungen für die Schlüsselerstellung aus anderen Hauptkonten als dem Cloud KMS-Dienst-Agent entfernt. Anschließend müssen alle Ressourcen mithilfe des Autokey-Schlüsselprojekts durch einen CMEK geschützt werden.
Führen Sie die folgenden Schritte aus, um die Autokey-Nutzung in einem Ordner zu erzwingen:
Entfernen Sie den Zugriff, um Schlüssel manuell im Schlüsselprojekt zu erstellen. Wenn Schlüssel nicht manuell erstellt werden können, können in diesem Projekt nur Schlüssel erstellt werden, die von Autokey erstellt wurden. Weitere Informationen zur Zugriffssteuerung finden Sie unter Zugriffssteuerung mit IAM.
Legen Sie eine Organisationsrichtlinie für den Ordner fest, um zu verlangen, dass Ressourcen mit einem CMEK mit der Einschränkung
constraints/gcp.restrictNonCmekServices
geschützt werden müssen. Weitere Informationen finden Sie unter CMEK-Schutz verlangen.Legen Sie eine Organisationsrichtlinie für den Ordner fest, die erfordert, dass Schlüssel, die für CMEK verwendet werden, aus dem Autokey-Schlüsselprojekt mit der Einschränkung
constraints/gcp.restrictCmekCryptoKeyProjects
stammen müssen. Weitere Informationen finden Sie unter Verwendung von Cloud KMS-Schlüsseln für CMEK einschränken.
Autokey deaktivieren
Cloud KMS Autokey ist auf Ordnerebene aktiviert und deaktiviert. Dieselben Rollen, die Autokey für einen Ordner aktivieren können, können Autokey für diesen Ordner deaktivieren. Wenn Sie Autokey für einen Ordner deaktivieren möchten, müssen Sie das AutokeyConfig
löschen, um die Verknüpfung zwischen dem Ordner und dem Autokey-Projekt zu entfernen.
Nachdem die Autokey-Konfiguration für den Ordner entfernt wurde, kann der Cloud KMS-Dienst-Agent keine Schlüssel für Entwickler mehr erstellen, wenn diese Ressourcen im Ordner erstellen. Durch das Entfernen der Verknüpfung zwischen dem Ordner und dem Schlüsselprojekt wird der Autokey im Ordner deaktiviert. Wir empfehlen jedoch, auch die IAM-Bindungen für die Rollen roles/cloudkms.autokeyAdmin
und roles/cloudkms.autokeyUser
zu entfernen.
Das Deaktivieren von Autokey hat keine Auswirkungen auf vorhandene Schlüssel im Schlüsselprojekt. Sie können diese Schlüssel weiterhin verwenden, um Ihre Ressourcen zu schützen.
AutokeyConfig löschen
Console
Rufen Sie in der Google Cloud Console die Seite KMS-Steuerelemente auf.
Wählen Sie in der Kontextauswahl den Ordner aus, in dem Sie Autokey deaktivieren möchten.
Klicken Sie auf Deaktivieren.
Es wird eine Meldung angezeigt, in der Sie aufgefordert werden, die Deaktivierung von Autokey zu bestätigen.
Klicken Sie auf Bestätigen, um Autokey zu deaktivieren.
Eine Meldung bestätigt, dass Cloud KMS Autokey für den Ordner deaktiviert ist.
API
Löschen Sie den Inhalt von AutokeyConfig
für den Ordner, in dem Sie Autokey deaktivieren möchten:
curl "https://cloudkms.googleapis.com/v1/folders/FOLDER_ID/autokeyConfig?updateMask=keyProject" \
--request "PATCH" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{}'
Ersetzen Sie Folgendes:
FOLDER_ID
: die ID des Ordners, in dem Sie Autokey deaktivieren möchten.
Autokey-Rollen widerrufen
Optional: Widerrufen Sie die Rolle
roles/cloudkms.autokeyAdmin
:gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyAdmin \ --member=user:USER_EMAIL
Ersetzen Sie Folgendes:
FOLDER_ID
: die ID des Ordners, in dem Sie Autokey deaktiviert haben.USER_EMAIL
: die E-Mail-Adresse des Nutzers, dem Sie die Berechtigung zum Verwalten von Autokey entziehen möchten.
Optional: Widerrufen Sie die Rolle
roles/cloudkms.autokeyUser
auf Ordnerebene:gcloud resource-manager folders remove-iam-policy-binding \ FOLDER_ID --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Ersetzen Sie Folgendes:
FOLDER_ID
: die ID des Ordners, in dem Sie Autokey deaktiviert haben.USER_EMAIL
: die E-Mail-Adresse des Nutzers, dem Sie die Berechtigung zur Verwendung von Autokey entziehen möchten.
Optional: Widerrufen Sie die Rolle
roles/cloudkms.autokeyUser
auf Projektebene:gcloud projects remove-iam-policy-binding RESOURCE_PROJECT_NUMBER \ --role=roles/cloudkms.autokeyUser \ --member=user:USER_EMAIL
Ersetzen Sie Folgendes:
RESOURCE_PROJECT_NUMBER
: die Projektnummer eines Ressourcenprojekts in dem Ordner, in dem Sie Autokey deaktiviert haben.USER_EMAIL
: die E-Mail-Adresse des Nutzers, dem Sie die Berechtigung zur Verwendung von Autokey entziehen möchten.
Optional: Wenn Sie das Schlüsselprojekt nicht weiter für Autokey für andere Ordner verwenden möchten, widerrufen Sie die Rolle
roles/cloudkms.admin
für den Cloud KMS-Dienst-Agent:gcloud projects remove-iam-policy-binding KEY_PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=serviceAccount:service-KEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
Ersetzen Sie
KEY_PROJECT_NUMBER
durch die numerische ID des Schlüsselprojekts.Optional: Wenn Sie die im Schlüsselprojekt erstellten Schlüssel nicht mehr verwenden möchten, widerrufen Sie die Rolle
roles/cloudkms.admin
für den Cloud KMS-Administrator:gcloud projects remove-iam-policy-binding KEY_PROJECT_NUMBER \ --role=roles/cloudkms.admin \ --member=user:KEY_ADMIN_EMAIL
Ersetzen Sie Folgendes:
KEY_PROJECT_NUMBER
: die Projektnummer des Schlüsselprojekts.USER_EMAIL
: die E-Mail-Adresse des Nutzers, dem Sie die Berechtigung zur Verwendung von Autokey entziehen möchten.
Nächste Schritte
- Weitere Informationen zur Verwendung von Autokey
- Weitere Informationen zur Funktionsweise von Autokey
- Ihre Autokey-Entwickler können jetzt geschützte Ressourcen mit Autokey erstellen.