Vom Kunden verwaltete Verschlüsselungsschlüssel verwenden

Cloud Run verschlüsselt ruhende Kundeninhalte standardmäßig. Die Verschlüsselung wird von Cloud Run übernommen. Weitere Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung.

Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Cloud Run verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutzlevel, Speicherort, Rotationszeitplan, Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen, die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten zu besitzen und zu verwalten, können Sie diese auch über Cloud KMS steuern und verwalten.

Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Cloud Run-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).

Informationen zum Schutz Ihrer Daten mit CMEK für Funktionen, die mit gcloud functions-Befehlen oder der Cloud Functions v2 API erstellt wurden, finden Sie unter Daten mit CMEK schützen.

Sie sollten Folgendes beachten:

  • Dateimetadaten wie der Pfad sind nicht verschlüsselt.
  • Metadaten des Cloud Run-Dienstes oder Worker-Pools, z. B. Name oder Umgebungsvariablen, werden nicht mit dem bereitgestellten Schlüssel verschlüsselt, sondern mit einem Google-owned and Google-managed encryption key.
  • Zur Laufzeit werden der Speicher- und Dateiinhalt nicht verschlüsselt.
  • Wenn ein CMEK deaktiviert ist, werden neue Instanzen vorhandener Cloud Run-Überarbeitungen, die den Schlüssel verwenden, nicht gestartet.
  • Wenn ein CMEK deaktiviert ist, schlägt die Bereitstellung einer neuen Cloud Run-Überarbeitung fehl, sofern kein neuer gültiger Schlüssel verwendet wird.

CMEK mit Cloud KMS Autokey

Sie können CMEKs manuell erstellen, um Ihre Cloud Run-Ressourcen zu schützen, oder Cloud KMS Autokey verwenden. Mit Autokey werden Schlüsselbunde und Schlüssel bei der Ressourcenerstellung in Cloud Run auf Anfrage generiert. Dienst-Agents, die die Schlüssel für Verschlüsselungs- und Entschlüsselungsvorgänge verwenden, werden erstellt, falls sie noch nicht vorhanden sind, und erhalten dann die erforderlichen IAM-Rollen (Identity and Access Management). Weitere Informationen finden Sie unter Übersicht: Autokey.

Wenn Sie CMEK manuell einrichten möchten, folgen Sie der Anleitung zum Konfigurieren von CMEK für einen Dienst oder einen Worker-Pool.

Wenn Sie CMEK mit Autokey einrichten möchten, folgen Sie der Anleitung zum Konfigurieren von Autokeys für einen Dienst oder einen Worker-Pool.

Autokey ist nicht für Funktionen verfügbar, die mit gcloud functions-Befehlen oder der Cloud Functions v2 API erstellt wurden.

Cloud KMS-Kontingente und Cloud Run

Sie können Ihren CMEK auf eine der verfügbaren Schutzstufen setzen, um anzugeben, wie kryptografische Vorgänge ausgeführt werden. Wenn Sie CMEK in Cloud Run verwenden, können Ihre Projekte Kontingente für kryptografische Cloud KMS-Anfragen verbrauchen. CMEK-verschlüsselte Repositories können diese Kontingente beispielsweise pro Up- oder Download verbrauchen.

Ver- und Entschlüsselungsvorgänge über CMEK-Schlüssel wirken sich auf die Cloud KMS-Kontingente so aus:

  • Für in Cloud KMS generierte Software-CMEK-Schlüssel wird kein Cloud KMS-Kontingent verbraucht.
  • Bei Hardware-CMEK-Schlüsseln (manchmal auch Cloud HSM-Schlüssel genannt) werden Verschlüsselungs- und Entschlüsselungsvorgänge auf Cloud HSM-Kontingente in dem Projekt angerechnet, das den Schlüssel enthält.
  • Bei externen CMEK-Schlüsseln (manchmal auch Cloud EKM-Schlüssel genannt) werden Verschlüsselungs- und Entschlüsselungsvorgänge auf Cloud EKM-Kontingente in dem Projekt angerechnet, das den Schlüssel enthält.

Weitere Informationen finden Sie unter Cloud KMS-Kontingente.

Von CMEK betroffenes Autoscaling-Verhalten

Das erwartete Autoscaling für Ihren Cloud Run-Dienst kann betroffen sein, wenn Sie kundenverwaltete Verschlüsselungsschlüssel verwenden. Beispielsweise kann die Latenz beim Starten neuer Instanzen aufgrund von Verzögerungen bei der Kontaktaufnahme mit externen Schlüsselverwaltungssystemen während des Schlüsselvorgangs erhöhen.

Die folgende Tabelle zeigt die möglichen Verhaltensänderungen aufgrund der Verwendung von CMEK:

CMEK-bezogener Vorgang Verhalten von Autoscaling
Schlüssel deaktiviert/gelöscht/widerrufen Neue Instanzen werden nicht gestartet.
Externer Schlüsselmanager kann nicht kontaktiert werden Wenn die Schlüsselanfrage wiederholt werden kann, werden während der Wiederholungsversuche keine Instanzen heruntergefahren und keine neuen Instanzen gestartet. Das Hochskalieren kann langsamer als erwartet erscheinen.
Wenn die Schlüsselanfrage nicht wiederholt werden kann, werden keine neuen Instanzen gestartet und laufende Instanzen nach einer Wartezeit heruntergefahren.
KMS-Kontingent überschritten Wird dieses Kontingent überschritten, werden RESOURCE_EXHAUSTED-Fehler protokolliert und neue Instanzen werden nicht gestartet. Sie können zusätzliche Kontingente anfordern, um dieses Problem zu beheben.

Hinweise

Cloud Run Zugriff auf einen Schlüssel gewähren

Führen Sie die folgenden Schritte aus, um CMEK für Cloud Run zu verwenden:

  1. Konfigurieren Sie Artifact Registry für die Verwendung von CMEK.

  2. Verwenden Sie die Docker-Kurzanleitung für Artifact Registry als Referenz, um ein Docker-Repository zu erstellen und ein Image dorthin zu übertragen.

  3. Verwenden Sie einen vorhandenen symmetrischen Cloud KMS-Schlüssel oder erstellen Sie einen neuen symmetrischen Schlüssel.

  4. Damit Cloud Run Zugriff auf den Schlüssel erhält, weisen Sie dem Cloud Run-Dienst-Agent die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler zu:

    Console

    1. Zur Seite Kryptografische Schlüssel

    2. Klicken Sie auf den Schlüsselbund für Ihren Schlüssel, um die zugehörige Seite mit der Schlüsselliste zu öffnen.

    3. Wählen Sie den Schlüssel aus und klicken Sie im rechten Tab „Berechtigungen“ auf Hauptkonto hinzufügen.

    4. Kopieren Sie im Feld Neue Hauptkonten die Cloud Run-E-Mail-Adresse des Dienst-Agents. Es hat das folgende Suffix:

      service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com.

    5. Wählen Sie im Feld Rolle auswählen Cloud KMS CryptoKey Verschlüsseler/Entschlüsseler aus.

    6. Klicken Sie auf Speichern.

    gcloud

    Verwenden Sie den folgenden gcloud kms Befehl:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
    --keyring=KEYRING \
    --location=LOCATION \
    --member serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com \
    --role='roles/cloudkms.cryptoKeyEncrypterDecrypter'

    Ersetzen Sie Folgendes:

    • KEY_NAME: der Name des Schlüssels
    • KEYRING: der Name des Schlüsselbunds
    • LOCATION: der Name Ihrer Region.
    • PROJECT_NUMBER: Die Projektnummer, in der Sie den Cloud Run-Dienst oder den Worker-Pool bereitstellen möchten.

    Sie benötigen die Berechtigung zum Verwalten von Cloud KMS-Ressourcen imGoogle Cloud -Projekt, um die IAM-Rolle roles/cloudkms.cryptoKeyEncrypterDecrypter zu gewähren. Nur IAM-Mitglieder mit der Rolle „Inhaber“ (roles/owner) oder „Cloud KMS-Administrator“ (roles/cloudkms.admin) können den Zugriff auf Cloud KMS-Ressourcen gewähren oder entziehen.

CMEK für einen Dienst konfigurieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Console

  1. Rufen Sie in der Google Cloud Console Cloud Run auf:

    Zu Cloud Run

  2. Wählen Sie im Cloud Run-Navigationsmenü Dienste aus und klicken Sie auf Container bereitstellen, um einen neuen Dienst zu konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen aus und klicken Sie dann auf Container, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.

  4. Klicken Sie auf den Tab Sicherheit.

    Bild

    • Unter Verschlüsselung:
      1. Wählen Sie Cloud KMS-Schlüssel aus.
      2. Wählen Sie unter Schlüsseltyp die Option Cloud KMS aus.
      3. Wählen Sie im Menü Cloud KMS-Schlüssel auswählen eine der folgenden Optionen aus:
        • Wählen Sie Projekt wechseln aus, wenn Sie einen Schlüssel aus einem anderen Projekt verwenden müssen. Sie können auf einen Schlüssel aus einem anderen Projekt verweisen, wenn das Dienstkonto Ihres Projekts auf den Schlüssel für Verschlüsselungs- und Entschlüsselungsvorgänge zugreifen kann.

        • Wählen Sie Schlüssel manuell eingeben aus, um das Secret aus einem Projekt im folgenden Format einzugeben: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

        So kopieren Sie den Ressourcennamen aus einem anderen Projekt, auf das Sie Zugriff haben, und fügen es ein:

        • Zur Seite Kryptografische Schlüssel.
        • Klicken Sie auf den Schlüsselbund.
        • Wählen Sie den Namen des ausgewählten Schlüsselbunds aus und klicken Sie auf Aktionen.
        • Wählen Sie im Menü Ressourcenname kopieren aus und fügen Sie ihn in das Feld Name der Schlüsselressource aus dem vorherigen Schritt ein.

      4. Wählen Sie im Menü Schlüsselwiderrufsaktion eine der folgenden Optionen aus:
        • Neue Containerinstanz verhindern: Nach dem Widerrufen des CMEK-Schlüssels werden keine neuen Instanzen mehr gestartet.

        • So bald wie möglich herunterfahren: Nach der Sperrung des CMEK-Schlüssels werden keine neuen Instanzen gestartet und vorhandene Instanzen werden heruntergefahren.

        • Benutzerdefinierte Shutdown-Verzögerung: Geben Sie die Anzahl der Stunden an, bevor der Dienst heruntergefahren wird.

  5. Klicken Sie auf Erstellen oder Bereitstellen.

gcloud

Verwenden Sie einen der folgenden Befehle, um einen Schlüssel für einen Dienst festzulegen:

gcloud run deploy SERVICE \
--image IMAGE_URL \
--key KEY \
--post-key-revocation-action-type KEY_REVOCATION_ACTION
--encryption-key-shutdown-hours SHUTDOWN_HOURS
gcloud run services update SERVICE --key KEY
--post-key-revocation-action-type KEY_REVOCATION_ACTION
--encryption-key-shutdown-hours SHUTDOWN_HOURS

Ersetzen Sie Folgendes:

  • SERVICE: der Name Ihres Dienstes.
  • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest Wenn Sie Artifact Registry verwenden, muss das Repository REPO_NAME bereits erstellt sein. Die URL hat das Format LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
  • KEY: der voll qualifizierte Schlüsselname im folgenden Format: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.
  • KEY_REVOCATION_ACTION: shut-down oder prevent-new, je nach Ihren Einstellungen für den Widerruf von Schlüsseln.
  • SHUTDOWN_HOURS: die Verzögerung in Stunden, bevor der Dienst nach dem Widerrufen heruntergefahren wird.

YAML

  1. Wenn Sie einen neuen Dienst erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Dienst aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aktualisieren Sie die folgenden CMEK-Annotationen auf die gewünschten Werte:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/encryption-key: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME
            run.googleapis.com/post-key-revocation-action-type: KEY_REVOCATION_ACTION
            run.googleapis.com/encryption-key-shutdown-hours: SHUTDOWN_HOURS
          name: REVISION

    Ersetzen Sie Folgendes:

    • SERVICE: Der Name Ihres Cloud Run-Dienstes.
    • PROJECT_NAME: der Name des Projekts, in dem der Schlüssel erstellt wurde.
    • LOCATION: der Ort, an dem der Schlüssel erstellt wurde Muss mit dem Standort des Cloud Run-Dienstes übereinstimmen.
    • KEYRING_NAME: Der Name des Schlüsselbunds.
    • KEY_NAME: der Name des Schlüssels
    • KEY_REVOCATION_ACTION: shut-down oder prevent-new, je nach Ihren Einstellungen für den Widerruf von Schlüsseln.
    • SHUTDOWN_HOURS: die Verzögerung in Stunden, bevor der Dienst nach dem Widerrufen heruntergefahren wird.
    • REVISION durch einen neuen Überarbeitungsnamen oder löschen (falls vorhanden). Wenn Sie einen neuen Überarbeitungsnamen angeben, muss er die folgenden Kriterien erfüllen:
      • Beginnt mit SERVICE-
      • Enthält nur Kleinbuchstaben, Ziffern und -
      • Endet nicht mit -
      • Darf nicht mehr als 63 Zeichen enthalten
  3. Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:

    gcloud run services replace service.yaml

Terraform

Informationen zum Anwenden oder Entfernen einer Terraform-Konfiguration finden Sie unter Grundlegende Terraform-Befehle.

Fügen Sie der Ressource google_cloud_run_v2_service in Ihrer Terraform-Konfiguration Folgendes hinzu.

resource "google_cloud_run_v2_service" "default" {
  name     = "SERVICE"
  location = "europe-west1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    encryption_key = "projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
  }
}

Ersetzen Sie Folgendes:

  • SERVICE: Der Name Ihres Cloud Run-Dienstes.
  • PROJECT_NAME: der Name des Projekts, in dem der Schlüssel erstellt wurde.
  • LOCATION: der Ort, an dem der Schlüssel erstellt wurde Muss mit dem Standort des Cloud Run-Dienstes übereinstimmen.
  • KEYRING_NAME: Der Name des Schlüsselbunds.
  • KEY_NAME: der Name des Schlüssels

Autokey für Dienste verwenden

Aktivieren Sie Cloud KMS Autokey, falls noch nicht geschehen.

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Console

  1. Rufen Sie in der Google Cloud Console Cloud Run auf:

    Zu Cloud Run

  2. Wählen Sie im Cloud Run-Navigationsmenü Dienste aus und klicken Sie auf Container bereitstellen, um einen neuen Dienst zu konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Wenn Sie einen neuen Dienst konfigurieren, füllen Sie die Seite mit den anfänglichen Diensteinstellungen aus und klicken Sie dann auf Container, Netzwerk, Sicherheit, um die Seite zur Dienstkonfiguration zu maximieren.

  4. Klicken Sie auf den Tab Sicherheit.

    Bild

    • Unter Verschlüsselung:
      1. Wählen Sie im Menü Schlüsseltyp die Option Cloud KMS mit Autokey aus.
      2. Klicken Sie auf Schlüssel anfordern.
      3. Klicken Sie auf Erstellen.

        Die Details des Schlüssels werden nach dem Erstellen der Ressource angezeigt.

      4. Wählen Sie im Menü Schlüsselwiderrufsaktion eine der folgenden Optionen aus:
        • Neue Containerinstanz verhindern: Nach dem Widerrufen des CMEK-Schlüssels werden keine neuen Instanzen mehr gestartet.

        • So bald wie möglich herunterfahren: Nach dem Widerrufen des CMEK-Schlüssels werden keine neuen Instanzen gestartet und vorhandene Instanzen werden heruntergefahren.

        • Benutzerdefinierte Shutdown-Verzögerung: Geben Sie die Anzahl der Stunden an, bevor der Dienst heruntergefahren wird.

  5. Klicken Sie auf Erstellen oder Bereitstellen.

Sicherheitseinstellungen für Dienste ansehen

So rufen Sie die Sicherheitseinstellungen für Ihren Cloud Run-Dienst auf:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dienste für Cloud Run auf:

    Zu Cloud Run

  2. Klicken Sie auf Ihren Dienst, um die Seite Dienstdetails zu öffnen.

  3. Klicken Sie auf den Tab Überarbeitungen.

  4. Im Detailbereich auf der rechten Seite ist die Sicherheitseinstellung auf dem Tab Sicherheit aufgeführt.

gcloud

  1. Führen Sie den folgenden Befehl aus, um die Sicherheitseinstellungen aufzurufen:

    gcloud run services describe SERVICE
  2. Suchen Sie in der zurückgegebenen Konfiguration nach der Sicherheitseinstellung.

Zusätzliche Konfiguration für quellenbasierte Bereitstellungen

Quellbereitstellungen für Cloud Run und Funktionen erfordern einen zusätzlichen Build-Schritt. Damit dieser Schritt CMEK-konform ist, müssen Sie Folgendes tun:

  1. Erstellen Sie einen eigenen CMEK-verschlüsselten Cloud Storage-Bucket. Weitere Informationen finden Sie in der CMEK-Dokumentation für Cloud Storage.

  2. Laden Sie den Quellcode als ZIP-Archivdatei in den CMEK-verschlüsselten Speicher-Bucket hoch.

  3. Erstellen Sie ein eigenes CMEK-verschlüsseltes Artifact Registry-Repository. Weitere Informationen finden Sie in der CMEK-Dokumentation für Artifact Registry. In diesem Repository werden Artefakte gespeichert, die im Build-Prozess erstellt wurden.

  4. Stellen Sie die Funktion bereit und übergeben Sie die Build-Ressourcen mit den Flags --source und --image.

    gcloud run deploy FUNCTION \
        --key KEY \
        --source CUSTOM_BUCKET_WITH_SOURCE_CODE \
        --image CUSTOM_AR_REPOSITORY \
        --function FUNCTION_ENTRYPOINT \
        --base-image BASE_IMAGE \
        --region REGION

Ersetzen Sie Folgendes:

  • FUNCTION: Der Name der Funktion, die Sie bereitstellen. Sie können diesen Parameter auch weglassen, werden dann jedoch nach dem Namen gefragt.

  • KEY: der voll qualifizierte Schlüsselname im folgenden Format: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

  • CUSTOM_BUCKET_WITH_SOURCE_CODE: Der URI eines Cloud Storage-Speicherorts, an dem der Quellcode gespeichert ist. Verwenden Sie das folgende Format: gs://BUCKET_NAME/PATH_TO_SOURCE.

  • CUSTOM_AR_REPOSITORY: Der URI eines Artifact Registry-Repositorys im Format REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME.

  • FUNCTION_ENTRYPOINT: Der Einstiegspunkt zur Funktion in Ihrem Quellcode. Dies ist der Code, der von Cloud Run ausgeführt wird, wenn Ihre Funktion ausgeführt wird. Der Wert dieses Flags muss ein Funktionsname oder ein voll qualifizierter Klassenname sein, der in Ihrem Quellcode vorhanden ist.

  • BASE_IMAGE: Die Basisbildumgebung für Ihre Funktion. Weitere Informationen zu Basis-Images und den in den einzelnen Images enthaltenen Paketen finden Sie unter Laufzeit-Basis-Images.

  • REGION: die Google Cloud Region, in der Sie Ihre Funktion bereitstellen möchten. Beispiel: europe-west1

Wenn Sie Eventarc zum Auslösen Ihrer Funktionen verwenden, sollten Sie sich außerdem mit der CMEK-Konfiguration für Eventarc vertraut machen. Insbesondere ist in solchen Fällen eine vollständige Einhaltung erforderlich, bei der die Kanäle, die den verwendeten Ereignistypen entsprechen, verschlüsselt werden.

CMEK-Widerruf für Dienste testen

Wenn Sie prüfen möchten, ob der CMEK-Schutz funktioniert, können Sie den Schlüssel deaktivieren, den Sie zum Aktivieren von CMEK für einen Dienst verwendet haben. Versuchen Sie dann, den Dienst aufzurufen:

  1. Führen Sie den folgenden Befehl aus, um zu prüfen, ob der Dienst aufgerufen werden kann:

    curl SERVICE_URL

    Ersetzen Sie SERVICE_URL durch die Dienst-URL. Sie finden sie nach der Bereitstellung in der Konsolen-UI: Die Container-URL wird neben dem Text URL: angezeigt.

  2. Schlüsselversion deaktivieren

  3. Warten Sie die Anzahl an SHUTDOWN_HOURS ab, die Sie angegeben haben. Wenn Sie die Anzahl der Stunden für das Herunterfahren nicht angegeben haben, aktivieren Sie den Schlüssel wieder und bearbeiten oder stellen Sie den Dienst noch einmal mit einem Wert von mindestens einer Stunde bereit. Wenn Sie Quellcode bereitgestellt haben, versuchen Sie, ihn aufzurufen. Der Versuch sollte fehlschlagen.

  4. Nachdem Sie die Anzahl an SHUTDOWN_HOURS abgewartet haben, führen Sie den folgenden Befehl noch einmal aus und bestätigen Sie, dass der Dienst nicht mehr zugänglich ist:

     curl SERVICE_URL
     

  5. Nachdem Sie geprüft haben, ob die Schlüsselversion deaktiviert ist, aktivieren Sie den Schlüssel.

CMEK für einen Worker-Pool konfigurieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Console

  1. Rufen Sie in der Google Cloud Console Cloud Run auf:

    Zu Cloud Run

  2. Wählen Sie im Menü Worker-Pools aus und klicken Sie auf Container bereitstellen, um einen neuen Worker-Pool zu konfigurieren. Wenn Sie einen vorhandenen Workerpool konfigurieren möchten, klicken Sie auf den Workerpool und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Wenn Sie einen neuen Worker-Pool konfigurieren, füllen Sie die Seite mit den anfänglichen Worker-Pool-Einstellungen aus und klicken Sie dann auf Container, Netzwerk, Sicherheit, um die Seite zur Konfiguration von Worker-Pools zu maximieren.

  4. Klicken Sie auf den Tab Sicherheit.

    Bild

    • Unter Verschlüsselung:
      1. Wählen Sie Cloud KMS-Schlüssel aus.
      2. Wählen Sie unter Schlüsseltyp die Option Cloud KMS aus.
      3. Wählen Sie im Menü Cloud KMS-Schlüssel auswählen eine der folgenden Optionen aus:
        • Wählen Sie Projekt wechseln aus, wenn Sie einen Schlüssel aus einem anderen Projekt verwenden müssen. Sie können auf einen Schlüssel aus einem anderen Projekt verweisen, wenn das Dienstkonto Ihres Projekts auf den Schlüssel für Verschlüsselungs- und Entschlüsselungsvorgänge zugreifen kann.

        • Wählen Sie Schlüssel manuell eingeben aus, um das Secret aus einem Projekt im folgenden Format einzugeben: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.

        So kopieren Sie den Ressourcennamen aus einem anderen Projekt, auf das Sie Zugriff haben, und fügen es ein:

        • Zur Seite Kryptografische Schlüssel.
        • Klicken Sie auf den Schlüsselbund.
        • Wählen Sie den Namen des ausgewählten Schlüsselbunds aus und klicken Sie auf Aktionen.
        • Wählen Sie im Menü Ressourcenname kopieren aus und fügen Sie ihn in das Feld Name der Schlüsselressource aus dem vorherigen Schritt ein.

      4. Wählen Sie im Menü Schlüsselwiderrufsaktion eine der folgenden Optionen aus:
        • Neue Containerinstanz verhindern: Nach dem Widerrufen des CMEK-Schlüssels werden keine neuen Instanzen mehr gestartet.

        • So bald wie möglich herunterfahren: Nach der Sperrung des CMEK-Schlüssels werden keine neuen Instanzen gestartet und vorhandene Instanzen werden heruntergefahren.

        • Benutzerdefinierte Shutdown-Verzögerung: Geben Sie die Anzahl der Stunden an, bevor der Dienst heruntergefahren wird.

  5. Klicken Sie auf Erstellen oder Bereitstellen.

gcloud

Verwenden Sie einen der folgenden Befehle, um einen Schlüssel für einen Worker-Pool festzulegen:

gcloud run worker-pools deploy WORKER_POOL \
--image IMAGE_URL \
--key KEY \
--post-key-revocation-action-type KEY_REVOCATION_ACTION
--encryption-key-shutdown-hours SHUTDOWN_HOURS
gcloud run worker-pools update WORKER_POOL --key KEY
--post-key-revocation-action-type KEY_REVOCATION_ACTION
--encryption-key-shutdown-hours SHUTDOWN_HOURS

Ersetzen Sie Folgendes:

  • WORKER_POOL: Der Name Ihres Worker-Pools.
  • IMAGE_URL: die URL des Container-Images.
  • KEY: der voll qualifizierte Schlüsselname im folgenden Format: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.
  • KEY_REVOCATION_ACTION: shut-down oder prevent-new.
  • SHUTDOWN_HOURS: die Anzahl der Stunden, die gewartet werden soll, bevor der Worker-Pool nach dem Widerrufen heruntergefahren wird.

YAML

  1. Wenn Sie einen neuen Worker-Pool erstellen, überspringen Sie diesen Schritt. Wenn Sie einen vorhandenen Worker-Pool aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud run worker-pools describe WORKER_POOL --format export > workerpool.yaml
  2. Aktualisieren Sie die folgenden CMEK-Annotationen in der WorkerPool-Konfiguration:

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/encryption-key: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME
            run.googleapis.com/post-key-revocation-action-type: KEY_REVOCATION_ACTION
            run.googleapis.com/encryption-key-shutdown-hours: SHUTDOWN_HOURS

    Ersetzen Sie Folgendes:

    • WORKER_POOL: Der Name Ihres Worker-Pools.
    • PROJECT_NAME: der Name des Projekts, in dem der Schlüssel erstellt wurde.
    • LOCATION: der Ort, an dem der Schlüssel erstellt wurde Muss mit dem Standort des Cloud Run-Worker-Pools übereinstimmen.
    • KEYRING_NAME: Der Name des Schlüsselbunds.
    • KEY_NAME: der Name des Schlüssels
    • KEY_REVOCATION_ACTION: shut-down oder prevent-new, je nach Ihren Einstellungen für den Widerruf von Schlüsseln.
    • SHUTDOWN_HOURS: die Anzahl der Stunden, die gewartet werden soll, bevor der Worker-Pool nach dem Widerrufen heruntergefahren wird.
  3. Ersetzen Sie den Worker-Pool mit dem folgenden Befehl durch seine neue Konfiguration:

    gcloud run worker-pools replace workerpool.yaml

Autokey für Worker-Pools verwenden

Aktivieren Sie Cloud KMS Autokey, falls noch nicht geschehen.

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Console

  1. Rufen Sie in der Google Cloud Console Cloud Run auf:

    Zu Cloud Run

  2. Wählen Sie im Menü Worker-Pools aus und klicken Sie auf Container bereitstellen, um einen neuen Worker-Pool zu konfigurieren. Wenn Sie einen vorhandenen Workerpool konfigurieren möchten, klicken Sie auf den Workerpool und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Wenn Sie einen neuen Worker-Pool konfigurieren, füllen Sie die Seite mit den anfänglichen Worker-Pool-Einstellungen aus und klicken Sie dann auf Container, Netzwerk, Sicherheit, um die Seite zur Konfiguration von Worker-Pools zu maximieren.

  4. Klicken Sie auf den Tab Sicherheit.

    Bild

    • Unter Verschlüsselung:
      1. Wählen Sie im Menü Schlüsseltyp die Option Cloud KMS mit Autokey aus.
      2. Klicken Sie auf Schlüssel anfordern.
      3. Klicken Sie auf Erstellen.

        Die Details des Schlüssels werden nach dem Erstellen der Ressource angezeigt.

      4. Wählen Sie im Menü Schlüsselwiderrufsaktion eine der folgenden Optionen aus:
        • Neue Containerinstanz verhindern: Nach dem Widerrufen des CMEK-Schlüssels werden keine neuen Instanzen mehr gestartet.

        • So bald wie möglich herunterfahren: Nach dem Widerrufen des CMEK-Schlüssels werden keine neuen Instanzen gestartet und vorhandene Instanzen werden heruntergefahren.

        • Benutzerdefinierte Shutdown-Verzögerung: Geben Sie die Anzahl der Stunden an, bevor der Dienst heruntergefahren wird.

  5. Klicken Sie auf Erstellen oder Bereitstellen.

Sicherheitseinstellungen für Worker-Pools ansehen

So rufen Sie die Sicherheitseinstellungen für Ihren Cloud Run-Worker-Pool auf:

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Cloud Run-Worker-Pools“ auf:

    Zu Cloud Run-Worker-Pools

  2. Klicken Sie auf Ihren Worker-Pool, um die Seite Worker-Pooldetails zu öffnen.

  3. Klicken Sie auf den Tab Überarbeitungen.

  4. Suchen Sie in den Konfigurationsdetails nach der Sicherheitseinstellung.

gcloud

  1. Verwenden Sie den folgenden Befehl:

    gcloud run worker-pools describe WORKER_POOL
  2. Suchen Sie in der zurückgegebenen Konfiguration nach der Sicherheitseinstellung.

Audit-Logs und Fehlermeldungen verstehen

Wenn Sie für das Monitoring der Audit-Logs zuständig sind, besteht Ihre Aufgabe möglicherweise darin, CMEK-Vorgänge in Ihrem Cloud Run-Dienst oder Worker-Pool zu prüfen. In diesem Fall müssen Sie die zugehörigen Audit-Logs verstehen.

Wenn Sie für das Beheben und Beheben von Laufzeitfehlern für Ihren Cloud Run-Dienst oder Worker-Pool zuständig sind, müssen Sie möglicherweise CMEK-bezogene Fehler beheben, die während des Vorgangs der Cloud Run-Ressource protokolliert werden.

Die folgenden Abschnitte enthalten Informationen, die für die vorhergehenden Aufgaben erforderlich sind.

Audit-Logs

KMS-Audit-Logs bieten einen Audit-Trail für jeden Vorgang, der mit einem Schlüssel ausgeführt wird. Für CMEK-fähige Cloud Run-Ressourcen fügt Cloud Run einen spezifischen Aufruferkontext für Cloud Run hinzu, der angibt, warum das System auf den Kundenschlüssel zugegriffen hat. In der folgenden Tabelle sind die Kontexte aufgeführt, die in den Audit-Logs angezeigt werden können:

Grund für Schlüsselzugriff Beschreibung
Decrypting CMEK-encrypted layer during container clone start. Wird bei jedem Start einer neuen Instanz protokolliert.
Encrypting a newly created data-encryption-key w/ the customer-managed-encryption-key. Wird während der Bereitstellung eines CMEK-fähigen Dienstes oder Worker-Pools protokolliert, wobei der Datenverschlüsselungsschlüssel vom CMEK verpackt wird.
Decrypting an existing encrypted data-encryption-key, under the same customer-managed-encryption-key, to be used to encrypt container contents. Wird protokolliert, wenn eine neue Instanz gestartet wird, die eine Entschlüsselung des Images erfordert.
Performing an encrypt operation on dummy data to check the customer-managed-encryption-key status and access. Wird bei einer Validierungsprüfung des Schlüssels protokolliert, die regelmäßig durchgeführt wird.
Performing a decrypt operation on dummy data to check the customer-managed-encryption-key status and access. Wird bei einer Validierungsprüfung des Schlüssels protokolliert, die regelmäßig durchgeführt wird.

Weitere Informationen zum Format und Inhalt von Audit-Logs finden Sie auf der Seite KMS-Audit-Logging.

Fehlermeldungen

Beachten Sie, dass von einem externen Schlüsselverwaltungssystem bereitgestellte Fehlermeldungen direkt an die Cloud Run-Logs für Ihren Dienst weitergeleitet werden.

Die folgende Tabelle enthält die CMEK-Fehlermeldungen, die Sie möglicherweise sehen, zusammen mit Beschreibungen und möglichen Abhilfemaßnahmen.

Meldung Beschreibung
User's service account does not have CMEK decrypter permission. Service account: %s Lösung: Cloud Run-Ressource Zugriff auf den Schlüssel gewähren
User's KMS operation quota has been exceeded. CMEK key: %s Die CMEK-fähige Ressource hat KMS-Kontingente überschritten. Lösung: Fordern Sie ein höheres KMS-Kontingent an
User's CMEK key has been disabled. CMEK key: %s Der CMEK wurde widerrufen. Lösung: Ändern Sie den CMEK-Schlüssel der Ressource und stellen Sie sie noch einmal bereit.
User's CMEK key has been destroyed. CMEK key: %s Der CMEK wurde gelöscht. Lösung: Ändern Sie den CMEK-Schlüssel der Ressource und stellen Sie sie noch einmal bereit.
User's CMEK key has been scheduled for deletion. CMEK Key: %s Der CMEK-Schlüssel wurde zum Löschen geplant. Lösung: Ändern Sie den CMEK-Schlüssel der Ressource und stellen Sie sie noch einmal bereit.

Nächste Schritte