Cloud KMS Autokey aktivieren

Auf dieser Seite erfahren Sie, wie Sie Cloud KMS Autokey für eine Ressourcenordner. Weitere Informationen zu Autokey finden Sie unter Autokey – Übersicht Die Schritte auf dieser Seite sollte von einem Sicherheitsadministrator durchgeführt werden.

Hinweise

Bevor Sie Cloud KMS Autokey aktivieren können, benötigen Sie Folgendes:

  • Eine Organisationsressource, die einen Ordner enthält, den Sie aktivieren möchten Autokey. Wenn Sie keinen Ordner haben, den Sie aktivieren möchten Autokey können Sie eine neue Ressource erstellen, . Wenn Sie Autokey für diesen Ordner aktivieren, wird Folgendes aktiviert: Autokey für alle Ressourcenprojekte im Ordner.
  • Wenn Sie Ressourcenprojekte haben, in denen Sie Autokey verwenden möchten, Sie befinden sich nicht in einem Ordner, in dem Sie Autokey aktivieren. können vorhandene Ressourcenprojekte in neue Ordner verschieben.

Erforderliche Rollen

Um die Berechtigungen zu erhalten, die Sie zum Aktivieren und Konfigurieren von Autokey benötigen, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für die Organisation oder den Ordner:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierten Rollen enthalten Berechtigungen zum Aktivieren und Konfigurieren von Autokey. 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

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Legen Sie fest, wie Sie Autokey aktivieren möchten

Sie können Autokey als Teil Ihrer Infrastruktur als Code aktivieren indem Sie mit Terraform die erforderlichen Konfigurationsänderungen vornehmen. Wenn Sie Wenn Sie Terraform verwenden möchten, um Autokey zu aktivieren, siehe Autokey aktivieren mit Terraform auf dieser Seite. Wenn Sie Terraform nicht verwenden möchten, befolgen Sie die Anweisungen im nächsten Abschnitt.

Schlüsselprojekt einrichten

Es empfiehlt sich, ein neues Schlüsselprojekt mit Cloud KMS-Ressourcen zu erstellen von Autokey erstellt. Sie sollten das Schlüsselprojekt in Ihrem Organisationsressource. Wenn Sie bereits ein Schlüsselprojekt haben, das Sie verwenden möchten Bei Schlüsseln, die von Autokey erstellt wurden, können Sie den Abschnitt Schlüsselprojekt erstellen überspringen und fortfahren. aus Autokey-Schlüsselprojekt konfigurieren auf dieser Seite.

Das Schlüsselprojekt kann im selben Ordner erstellt werden, in dem Sie den Dienst aktivieren möchten Autokey. Sie sollten keine weiteren Ressourcen im Schlüsselprojekt erstellen. Wenn Sie versuchen, durch Autokey geschützte Ressourcen im Schlüssel zu erstellen lehnt Autokey die Anforderung eines neuen Schlüssels ab.

Sie möchten zu Assured Workloads migrieren. Erstellen Sie das Schlüsselprojekt zukünftig im selben Ordner wie die Ressourcen. die durch diese Schlüssel geschützt sind.

Wenn Ihre Organisation die constraints/gcp.restrictCmekCryptoKeyProjects verwendet Einschränkung der Organisationsrichtlinie, um sicherzustellen, dass alle CMEKs vom angegebenen Schlüssel stammen Projekten ist, müssen Sie Ihr Schlüsselprojekt der Liste der zulässigen Projekte hinzufügen. Für Weitere Informationen zur CMEK-Organisationsrichtlinie finden Sie unter CMEK-Organisation. Richtlinien.

Schlüsselprojekt erstellen

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie unter Organisation auswählen die Organisationsressource aus, in der Sie ein Projekt erstellen möchten.
  3. Klicken Sie auf Projekt erstellen.
  4. Geben Sie im Fenster Neues Projekt einen Projektnamen und und wählen Sie ein Rechnungskonto aus. Ein Projektname darf nur Buchstaben, Zahlen, einfache Anführungszeichen, Bindestriche, Leerzeichen oder Ausrufezeichen zwischen 4 und 30 Zeichen.
  5. Wählen Sie als Standort die Ressource aus, der Sie übergeordnet sein möchten. für Ihr Schlüsselprojekt.
  6. 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, wobei möchten Sie das neue Schlüsselprojekt erstellen. organization eingeben, um erstellen Sie das neue Schlüsselprojekt in einer bestimmten Organisation oder geben Sie folder, um das neue Schlüsselprojekt in einem bestimmten Ordner zu erstellen.
    • PARENT_ID: die ID der Organisation oder Ordner, in dem Sie das Schlüsselprojekt erstellen möchten.

Autokey-Schlüsselprojekt vorbereiten

Console

  1. Aktivieren Sie die Cloud KMS API für Ihr Schlüsselprojekt.

    API aktivieren

  2. Wenn Sie ein neues Schlüsselprojekt verwenden, gewähren Sie Cloud KMS Administratorberechtigungen für das Schlüsselprojekt zu Ihrem Cloud KMS Administratornutzer:

    1. Öffnen Sie in der Google Cloud Console die Seite IAM.

      IAM aufrufen

    2. Wählen Sie das Schlüsselprojekt aus.

    3. Klicken Sie auf Erteilen Zugriff und geben Sie dann die E-Mail-Adresse des Nutzers ein.

    4. Wählen Sie die Rolle Cloud KMS-Administrator aus.

    5. Klicken Sie auf Speichern.

gcloud

  1. Aktivieren Sie die Cloud KMS API für Ihr Schlüsselprojekt:

    gcloud services enable cloudkms.googleapis.com
    
  2. Cloud KMS-Administratorberechtigungen für das Schlüsselprojekt gewähren an Ihre Cloud KMS-Administratornutzer senden:

    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üssels Projekt arbeiten.
    • KEY_ADMIN_EMAIL: die E-Mail-Adresse des Nutzers die für die Verwaltung von Cloud KMS-Schlüsseln zuständig ist.

Cloud KMS Autokey für einen Ressourcenordner aktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite KMS-Steuerelemente auf.

    Los bis hin zu KMS-Einstellungen

  2. Wählen Sie in der Kontextauswahl den Ordner aus, den Sie aktivieren möchten. Autokey.

  3. Klicken Sie auf Aktivieren.

  4. 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 Datei AutokeyConfig für den Ordner, den Sie aktivieren möchten. Autokey:

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 beim Erstellen von Ressourcen IAM-Richtlinienbindungen im Namen eines Nutzers an. Cloud KMS-Administrator. Damit Sie Schlüssel erstellen und zuweisen können, muss der Cloud KMS-Dienst-Agent erfordert Cloud KMS-Administrator Berechtigungen.

  1. 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üssels. Projekt arbeiten.

  2. 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üssels. Projekt arbeiten.

Autokey-Nutzerrollen gewähren

Bevor Ihre Entwickler Autokey verwenden können, müssen Sie ihnen die Berechtigung erteilen erforderliche Rolle. Sie können die Rolle auf Ordnerebene oder auf Projektebene gewähren. Mit dieser Rolle können Entwickler Schlüssel vom Cloud KMS anfordern Dienst-Agent beim Erstellen von Ressourcen in diesem Ordner oder Projekt.

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 Ordner, in dem Sie Autokey aktivieren möchten.
    • USER_EMAIL: die E-Mail-Adresse des Nutzers, an den 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, an den Sie die Berechtigung zur Verwendung von Autokey erteilen möchten.

Ihre Autokey-Entwickler können jetzt bei Bedarf Schlüssel erstellen. Weitere Informationen zum Erstellen von Ressourcen, die mit Schlüsseln geschützt sind, die bei Bedarf von Autokey erstellt wurden, Siehe 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-Abrechnung Konto-ID. Die Rechnungskonto-ID ist ein 18-stelliger alphanumerischer Wert durch Bindestriche getrennt, z. B. 010101-F0FFF0-10XX01.
  • AUTOKEY_ADMIN_USER_IDS: eine Liste der E-Mail-Adressen für Nutzer, die die Rolle roles/cloudkms.autokeyAdmin haben sollten – für Beispiel: "Ariel@example.com", "Charlie@example.com".
  • AUTOKEY_DEVELOPER_USER_IDS: eine Liste der E-Mail-Adressen für Nutzer, die die Rolle roles/cloudkms.autokeyUser haben sollten – für Beispiel: "Kalani@example.com", "Mahan@example.com".
  • KEY_PROJECT_ADMIN_USER_IDS: eine Liste der E-Mail-Adressen für Nutzer, die die Rolle roles/cloudkms.admin haben sollten, z. B. "Sasha@example.com", "Nur@example.com"
  • KEY_PROJECT_ID: die ID, die für den Schlüssel verwendet werden soll Projekt erstellen, z. B. autokey-key-project.

Autokey-Nutzung erzwingen

Wenn Sie die Verwendung von Autokey innerhalb eines Ordners erzwingen möchten, können Sie dies tun indem Sie IAM-Zugriffssteuerungen mit CMEK-Organisationsrichtlinien kombinieren. Dies funktioniert von Entfernen von Berechtigungen zur Schlüsselerstellung für andere Hauptkonten als das einen Cloud KMS-Dienst-Agent erstellt haben, durch einen CMEK mit dem Autokey-Schlüsselprojekt geschützt.

Führen Sie die folgenden Schritte aus, um die Autokey-Nutzung in einem Ordner zu erzwingen:

  1. Entfernen Sie den Zugriff, um Schlüssel manuell im Schlüsselprojekt zu erstellen. Wenn Schlüssel nicht manuell erstellt wurden, können nur mit Autokey erstellte Schlüssel erstellt werden. in diesem Projekt. Weitere Informationen zur Zugriffssteuerung finden Sie unter Zugriffssteuerung mit IAM

  2. Legen Sie eine Organisationsrichtlinie für den Ordner fest, die erfordert, dass Ressourcen geschützt mit einem CMEK unter Verwendung des constraints/gcp.restrictNonCmekServices Einschränkung. Weitere Informationen finden Sie unter CMEK-Schutz anfordern

  3. Legen Sie eine Organisationsrichtlinie für den Ordner fest, um zu verlangen, dass Schlüssel für CMEK verwendet werden muss aus dem Autokey-Schlüsselprojekt stammen und den constraints/gcp.restrictCmekCryptoKeyProjects-Einschränkung. Weitere Informationen finden Sie unter Verwendung von Cloud KMS-Schlüsseln für CMEK beschränken

Autokey deaktivieren

Cloud KMS Autokey ist auf Ordnerebene aktiviert und deaktiviert. Das Gleiche Rollen, die Autokey für einen Ordner aktivieren können, können Autokey deaktivieren. für diesen Ordner. Um Autokey für einen Ordner zu deaktivieren, müssen Sie den AutokeyConfig, um die Verknüpfung zwischen dem Ordner und dem Autokey-Schlüsselprojekt.

Nachdem die Autokey-Konfiguration für den Ordner entfernt wurde, Der Cloud KMS-Dienst-Agent kann keine Schlüssel für Entwickler mehr erstellen, wenn werden Ressourcen im Ordner erstellt. Die Verknüpfung zwischen Ordner und Das Schlüsselprojekt deaktiviert Autokey im Ordner. Wir haben jedoch empfehlen, auch die IAM-Bindungen für die Die Rollen roles/cloudkms.autokeyAdmin und roles/cloudkms.autokeyUser.

Das Deaktivieren von Autokey hat keine Auswirkungen auf vorhandene Schlüssel im Schlüsselprojekt. Ich können diese Schlüssel weiterhin zum Schutz Ihrer Ressourcen verwenden.

AutokeyConfig löschen

Console

  1. Rufen Sie in der Google Cloud Console die Seite KMS-Steuerelemente auf.

    Los bis hin zu KMS-Einstellungen

  2. Wählen Sie in der Kontextauswahl den Ordner aus, den Sie deaktivieren möchten. Autokey.

  3. Klicken Sie auf Deaktivieren.

    Es wird eine Meldung angezeigt, in der Sie aufgefordert werden, die Deaktivierung zu bestätigen. Autokey.

  4. 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, den Sie deaktivieren möchten. Autokey:

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

  1. 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 in dem Sie Autokey deaktiviert haben.
    • USER_EMAIL: die E-Mail-Adresse des Nutzers, für den Sie die Berechtigung zum Verwalten von Autokey widerrufen möchten.
  2. 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 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.
  3. 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 von Ein Ressourcenprojekt in dem 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.
  4. Optional: Wenn Sie das Schlüsselprojekt nicht weiter für Autokey für andere Ordner, Rolle roles/cloudkms.admin widerrufen 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.

  5. Optional: Wenn Sie die im Schlüssel erstellten Schlüssel nicht mehr verwenden möchten Projekt, Rolle roles/cloudkms.admin für Cloud KMS widerrufen 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