Auf dieser Seite erfahren Sie, wie Sie den Cloud KMS-Autoschlüssel für einen Ressourcenordner aktivieren und konfigurieren. Weitere Informationen zu Autokey finden Sie unter 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 mit einem Ordner, 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 Admin (
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.
Festlegen, wie Autoschlüssel aktiviert werden soll
Sie können Autokey als Teil Ihrer Infrastruktur-als-Code-Strategie aktivieren, indem Sie mit Terraform die erforderlichen Konfigurationsänderungen vornehmen. Wenn Sie Autokey mit Terraform aktivieren möchten, lesen Sie den Hilfeartikel Autokey mit Terraform aktivieren auf dieser Seite. Wenn Sie Terraform nicht verwenden möchten, folgen Sie 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 von Autokey erstellte Schlüssel verwenden möchten, können Sie den Abschnitt Schlüsselprojekt erstellen überspringen und mit Autokey-Schlüsselprojekt 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, im Schlüsselprojekt von Autokey geschützte Ressourcen zu erstellen, 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 durch diese Schlüssel geschützten Ressourcen.
Wenn Ihre Organisation die Organisationsrichtlinieneinschränkung constraints/gcp.restrictCmekCryptoKeyProjects
verwendet, um dafür zu sorgen, dass alle CMEKs aus bestimmten wichtigen Projekten stammen, müssen Sie Ihr wichtiges Projekt der Liste der zulässigen Projekte hinzufügen. Weitere Informationen zu CMEK-Organisationsrichtlinien 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 Speicherort die Ressource aus, die die übergeordnete Ressource für Ihr Hauptprojekt 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 Ressourcentyp, in dem Sie das neue Schlüsselprojekt erstellen möchten. Geben Sieorganization
ein, um das neue Schlüsselprojekt unter einer bestimmten Organisation zu erstellen, oderfolder
, um es unter 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 in Ihrem 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 allen anderen Cloud KMS-Administratoren die Rolle Cloud KMS-Administrator zuzuweisen:
Ö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 Admin aus.
Klicken Sie auf Speichern.
gcloud
Aktivieren Sie die Cloud KMS API in Ihrem 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 und allen anderen Cloud KMS-Administratoren 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-Einstellungen 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 Hauptprojekt aus und klicken Sie auf Senden.
In einer Meldung wird 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 Schlüssel und wendet IAM-Richtlinienbindungen beim Erstellen von Ressourcen im Namen eines Cloud KMS-Administrators an. Damit der Cloud KMS-Dienst-Agent Schlüssel erstellen und zuweisen kann, benötigt er 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 Hauptprojekts.Die Ausgabe sieht in 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 Subdomain
gcp-sa-ekms
) erstellt wurde. Mit dem Befehl wird jedoch auch der Cloud KMS-Dienst-Agent (mit der Subdomaingcp-sa-cloudkms
) erstellt. Dies ist der Dienst-Agent, den Sie später in dieser Anleitung verwenden.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 Hauptprojekts.
Autokey-Nutzerrollen gewähren
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 beim Erstellen von Ressourcen in diesem Ordner oder Projekt Schlüssel vom Cloud KMS-Dienst-Agenten anfordern.
Führe 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 auf Projektebene die Rolle
roles/cloudkms.autokeyUser
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 nach Bedarf Schlüssel erstellen. Informationen zum Erstellen von Ressourcen, die mit Schlüsseln geschützt sind, die bei Bedarf von Autokey erstellt werden, 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 im Ressourcenordner separat 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
: Die ID Ihres Google Cloud-Rechnungskontos. 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 mit E-Mail-Adressen von Nutzern, die die Rolleroles/cloudkms.autokeyAdmin
haben sollen, z. B."Ariel@example.com", "Charlie@example.com"
.AUTOKEY_DEVELOPER_USER_IDS
: Eine Liste mit E-Mail-Adressen von Nutzern, die die Rolleroles/cloudkms.autokeyUser
haben sollen, z. B."Kalani@example.com", "Mahan@example.com"
.KEY_PROJECT_ADMIN_USER_IDS
: eine Liste mit E-Mail-Adressen von Nutzern, 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 Berechtigungen zum Erstellen von Schlüsseln von anderen Hauptpersonen als dem Cloud KMS-Dienst-Agent entfernt und dann wird gefordert, dass alle Ressourcen mit CMEK geschützt werden, wobei das Autokey-Schlüsselprojekt verwendet wird.
So erzwingen Sie die Verwendung von Autokey in einem Ordner:
Entziehen Sie den Zugriff auf das Erstellen von Schlüsseln manuell 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 zur Zugriffssteuerung finden Sie unter Zugriffssteuerung mit IAM.
Legen Sie eine Organisationsrichtlinie für den Ordner fest, die erfordert, dass Ressourcen mit einem CMEK geschützt werden müssen, und verwenden Sie dazu die Einschränkung
constraints/gcp.restrictNonCmekServices
. Weitere Informationen finden Sie unter CMEK-Schutz erzwingen.Legen Sie eine Organisationsrichtlinie für den Ordner fest, die vorschreibt, dass die für CMEK verwendeten Schlüssel aus dem Autokey-Schlüsselprojekt stammen müssen, und verwenden Sie dabei 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 für diesen Ordner auch deaktiviert werden. Wenn Sie Autokey für einen Ordner deaktivieren möchten, müssen Sie das Häkchen bei 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-Dienstagent 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-Einstellungen auf.
Wählen Sie in der Kontextauswahl den Ordner aus, in dem Sie Autokey deaktivieren möchten.
Klicken Sie auf Deaktivieren.
Sie werden aufgefordert, zu bestätigen, dass Sie Autoschlüssel deaktivieren möchten.
Klicken Sie auf Bestätigen, um Autoschlüssel zu deaktivieren.
In einer Meldung wird bestätigt, dass Cloud KMS Autokey für den Ordner deaktiviert ist.
API
Entfernen Sie das Häkchen für den Ordner, in dem Sie Autokey deaktivieren möchten:AutokeyConfig
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, für den Sie die Berechtigung zum Verwalten von Autoschlüssel widerrufen 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 für Autokey nicht mehr für andere Ordner verwenden möchten, widerrufen Sie die Rolle
roles/cloudkms.admin
für den Cloud KMS-Dienst-Agenten: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 Hauptprojekts.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 Autoschlüssel
- Ihre Autokey-Entwickler können jetzt geschützte Ressourcen mit Autokey erstellen.