Auf dieser Seite erfahren Sie, wie Sie Cloud KMS Autokey für einen Ressourcenordner aktivieren und konfigurieren. Weitere Informationen zu Autokey finden Sie unter Übersicht: Autokey. Die Schritte auf dieser Seite sollten von einem Sicherheitsadministrator ausgeführt werden.
Hinweise
Bevor Sie Cloud KMS Autokey aktivieren können, müssen folgende Voraussetzungen erfüllt sein:
- Eine Organisationsressource, die einen Ordner enthält, in dem 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, in denen Sie Autokey verwenden möchten, die 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 zuzuweisen, 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 auf Projekte, Ordner und Organisationen 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
Die folgenden Berechtigungen sind erforderlich, um Autokey zu aktivieren und zu konfigurieren:
-
cloudkms.autokeyConfigs.*
-
cloudkms.projects.showEffectiveAutokeyConfig
-
resourcemanager.folders.get
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
billing.resourceAssociations.create
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Entscheiden, wie Sie Autokey aktivieren möchten
Sie können Autokey als Teil Ihrer Infrastruktur-als-Code-Strategie aktivieren, indem Sie die erforderlichen Konfigurationsänderungen mit Terraform vornehmen. 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 die von Autokey erstellten 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 von Autokey erstellte Schlüssel verwenden möchten, können Sie den Abschnitt Schlüsselprojekt erstellen überspringen und auf dieser Seite mit Autokey-Schlüsselprojekt konfigurieren fortfahren.
Das Schlüsselprojekt kann im selben Ordner erstellt werden, in dem Sie Autokey aktivieren möchten. Sie sollten keine anderen Ressourcen im Schlüsselprojekt erstellen. Wenn Sie versuchen, Ressourcen zu erstellen, die durch Autokey im Schlüsselprojekt geschützt sind, lehnt Autokey die Anfrage für einen neuen Schlüssel ab.
Wenn Sie in Zukunft zu Assured Workloads migrieren möchten, erstellen Sie das Schlüsselprojekt im selben Ordner wie die Ressourcen, die durch diese Schlüssel geschützt sind.
Wenn Ihre Organisation die Organisationsrichtlinieneinschränkung constraints/gcp.restrictCmekCryptoKeyProjects
verwendet, um sicherzustellen, dass alle CMEKs aus angegebenen Schlüsselprojekten stammen, müssen Sie Ihr Schlüsselprojekt der Liste der zulässigen Projekte hinzufügen. Weitere Informationen zu CMEK-Organisationsrichtlinien finden Sie unter CMEK-Organisationsrichtlinien.
Schlüsselprojekt erstellen
Console
- Rufen Sie in der Google Cloud Console die Seite Ressourcen verwalten auf.
- 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 Speicherort die Ressource aus, die das übergeordnete Element für Ihr Schlüsselprojekt sein soll.
- Klicken Sie auf Erstellen, um das Projekt zu erstellen.
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 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 Cloud KMS-Administratorberechtigungen für das Schlüsselprojekt. Wiederholen Sie die folgenden Schritte, um sich selbst und jedem anderen Cloud KMS-Administrator die Rolle Cloud KMS-Administrator zuzuweisen:
Rufen Sie in der Google Cloud Console die Seite IAM auf.
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 Cloud KMS-Administratorberechtigungen für das Schlüsselprojekt. Wiederholen Sie den folgenden Befehl, um sich selbst und allen anderen Cloud KMS-Administratornutzern die Rolle
roles/cloudkms.admin
zuzuweisen: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, für den 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, für den 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 Schlüssel und wendet IAM-Richtlinienbindungen bei der Ressourcenerstellung im Namen eines menschlichen Cloud KMS-Administrators an. Damit Schlüssel erstellt und zugewiesen werden können, benötigt der Cloud KMS-Dienst-Agent die Berechtigungen des Cloud KMS-Administrators.
Cloud KMS-Dienst-Agent erstellen:
gcloud beta services identity create --service=cloudkms.googleapis.com \ --project=PROJECT_NUMBER
Ersetzen Sie
PROJECT_NUMBER
durch die Projektnummer des Schlüsselprojekts.Die Ausgabe sieht etwa so aus:
Service identity created: service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com
Die Ausgabe des Befehls gibt an, dass das Cloud EKM-Dienstkonto (mit der Unterdomäne
gcp-sa-ekms
) erstellt wurde. Mit dem Befehl wird jedoch auch der Cloud KMS-Dienst-Agent (mit dergcp-sa-cloudkms
-Subdomain) erstellt, den Sie später in dieser Anleitung verwenden.Erteilen 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 zuweisen
Bevor Ihre Entwickler Autokey verwenden können, müssen Sie ihnen die erforderliche Rolle zuweisen. Sie können die Rolle auf Ordner- oder Projektebene zuweisen. Mit dieser Rolle können Entwickler Schlüssel vom Cloud KMS-Dienst-Agent anfordern, während sie Ressourcen in diesem Ordner oder Projekt erstellen.
Wählen Sie einen oder beide der folgenden Schritte aus:
So 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.
So weisen Sie die Rolle
roles/cloudkms.autokeyUser
auf Projektebene zu:gcloud projects add-iam-policy-binding PROJECT_ID \ --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 Schlüssel bei Bedarf erstellen. Informationen zum Erstellen von Ressourcen, die mit Schlüsseln geschützt sind, die von Autokey bei Bedarf erstellt werden, finden Sie unter Geschützte Ressourcen mit Autokey erstellen.
Autokey mit Terraform aktivieren
Das folgende Terraform-Beispiel automatisiert die folgenden Einrichtungsschritte:
- Ressourcenordner erstellen
- Schlüsselprojekt erstellen
- Nutzerberechtigungen erteilen
- 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 = "projects/${google_project.key_management_project.project_id}"
}
Ersetzen Sie Folgendes:
BILLING_ACCOUNT_ID
: Ihre Google Cloud Abrechnungskonto-ID. Die Rechnungskonto-ID ist ein alphanumerischer Wert aus 18 Zeichen, der durch Bindestriche getrennt ist, z. B.010101-F0FFF0-10XX01
.AUTOKEY_ADMIN_USER_IDS
: Eine Liste der E-Mail-Adressen der Nutzer, die die Rolleroles/cloudkms.autokeyAdmin
haben sollen, z. B."Ariel@example.com", "Charlie@example.com"
.AUTOKEY_DEVELOPER_USER_IDS
: Eine Liste der E-Mail-Adressen der Nutzer, die die Rolleroles/cloudkms.autokeyUser
haben sollen, 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 sollen, 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 IAM-Zugriffssteuerungen mit CMEK-Organisationsrichtlinien kombinieren. Dazu werden die Berechtigungen zum Erstellen von Schlüsseln für andere Principals als den Cloud KMS-Dienst-Agent entfernt. Anschließend muss für alle Ressourcen CMEK mit dem Autokey-Schlüsselprojekt verwendet werden.
So erzwingen Sie die Verwendung von Autokey in einem Ordner:
Entziehen Sie den Zugriff zum manuellen Erstellen von Schlüsseln im Schlüsselprojekt. Wenn Schlüssel nicht manuell erstellt werden können, können in diesem Projekt nur von Autokey erstellte Schlüssel erstellt werden. Weitere Informationen zum Steuern des Zugriffs finden Sie unter Zugriffssteuerung mit IAM.
Legen Sie eine Organisationsrichtlinie für den Ordner fest, um zu erzwingen, dass Ressourcen mit einem CMEK geschützt werden müssen. Verwenden Sie dazu die Einschränkung
constraints/gcp.restrictNonCmekServices
. Weitere Informationen finden Sie unter CMEK-Schutz erforderlich.Legen Sie eine Organisationsrichtlinie für den Ordner fest, um zu erzwingen, dass Schlüssel, die für CMEK verwendet werden, aus dem Autokey-Schlüsselprojekt stammen müssen. Verwenden Sie dazu die Einschränkung
constraints/gcp.restrictCmekCryptoKeyProjects
. Weitere Informationen finden Sie unter Verwendung von Cloud KMS-Schlüsseln für CMEK einschränken.
Autokey deaktivieren
Cloud KMS Autokey wird auf Ordnerebene aktiviert und deaktiviert. Mit denselben Rollen, mit denen Autokey für einen Ordner aktiviert werden kann, kann Autokey auch für diesen Ordner deaktiviert werden. Wenn Sie Autokey für einen Ordner deaktivieren möchten, müssen Sie das AutokeyConfig
entfernen, um die Verknüpfung zwischen dem Ordner und dem Autokey-Schlüsselprojekt aufzuheben.
Nachdem die Autokey-Konfiguration für den Ordner entfernt wurde, kann der Cloud KMS-Dienst-Agent keine Schlüssel mehr für Entwickler erstellen, wenn diese Ressourcen im Ordner erstellen. Wenn Sie die Verknüpfung zwischen dem Ordner und dem Schlüsselprojekt entfernen, wird 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 zum Schutz Ihrer Ressourcen verwenden.
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, für den Sie Autokey deaktivieren möchten.
Klicken Sie auf Deaktivieren.
Sie werden aufgefordert, die Deaktivierung von Autokey zu bestätigen.
Wenn Sie Autokey deaktivieren möchten, klicken Sie auf Bestätigen.
Eine Meldung bestätigt, dass Cloud KMS Autokey für den Ordner deaktiviert ist.
API
Entfernen Sie das Häkchen bei AutokeyConfig
für den Ordner, in dem Sie die automatische Schlüsselzuweisung 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 entziehen
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, für den Sie die Berechtigung zur Verwendung von Autokey widerrufen 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 im Ordner, in dem Sie Autokey deaktiviert haben.USER_EMAIL
: die E-Mail-Adresse des Nutzers, für den Sie die Berechtigung zur Verwendung von Autokey widerrufen möchten.
Optional: Wenn Sie das Schlüsselprojekt nicht mehr 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, für den Sie die Berechtigung zur Verwendung von Autokey widerrufen 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.