Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Daten mit CMEK schützen
Auf dieser Seite finden Sie zusätzliche Informationen zum Schutz Ihrer Daten mit vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) für Funktionen, die mit gcloud functions-Befehlen oder der Cloud Functions v2 API erstellt wurden.
Eine ausführliche Beschreibung von CMEK, einschließlich manueller Einrichtung, Verwendung von Autokey und Testen des CMEK-Schutzes, finden Sie in der Cloud Run-Dokumentation.
Die folgenden Arten von Cloud Run Functions-Daten werden bei der Verwendung eines CMEK verschlüsselt:
Der Funktionsquellcode, für die Bereitstellung hochgeladen und von Google in Cloud Storage gespeichert, wird für den Build-Prozess verwendet.
Die Ergebnisse des Funktions-Build-Prozesses, einschließlich:
Das Container-Image, das aus Ihrem Funktionsquellcode erstellt wurde.
Jede Instanz der Funktion, die bereitgestellt wird.
Der Funktions-Build-Prozess selbst wird durch einen sitzungsspezifischen Schlüssel geschützt, der für jeden Build eindeutig generiert wird. Weitere Informationen finden Sie unter CMEK-Compliance in Cloud Build. Beachten Sie außerdem Folgendes:
Dateimetadaten wie Dateisystempfade oder Änderungszeitstempel sind nicht verschlüsselt.
Wenn ein CMEK-Schlüssel deaktiviert ist, kann das Container-Image nicht bereitgestellt werden und neue Instanzen können nicht gestartet werden.
Der CMEK-Schutz von Cloud Run Functions gilt nur für von Google verwaltete Cloud Run Functions-Ressourcen. Sie sind für den Schutz von Daten und Ressourcen verantwortlich, die von Ihnen verwaltet werden, z. B. Ihre Quellcode-Repositories, Ereigniskanäle im Kundenprojekt oder alle Dienste, die von Ihren Funktionen verwendet werden.
Hinweise
Erstellen Sie einen Schlüssel für eine einzelne Region, um Ihre Funktionen zu verschlüsseln. Informationen zum Erstellen eines Schlüssels finden Sie unter Symmetrische Verschlüsselungsschlüssel erstellen.
Führen Sie für ereignisgesteuerte Funktionen die zusätzlichen Einrichtungsschritte aus, die unter CMEK für einen Google-Kanal aktivieren beschrieben werden.
Dienstkonten Zugriff auf den Schlüssel gewähren
Für alle Funktionen müssen Sie den folgenden Dienstkonten Zugriff auf den Schlüssel gewähren:
Cloud Run Functions-Dienst-Agent (service-PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com)
Wenn Sie diesen Dienstkonten Zugriff auf den Schlüssel gewähren möchten, fügen Sie jedes Dienstkonto als Hauptkonto des Schlüssels hinzu und weisen Sie dem Dienstkonto dann die Rolle Cloud KMS CryptoKey Encrypter/Decrypter zu:
Console
Rufen Sie in der Google Cloud Console die Seite „Cloud Key Management Service“ auf: Zur Cloud KMS-Seite
Klicken Sie auf den Namen des Schlüsselbunds, der den ausgewählten Schlüssel enthält.
Klicken Sie auf den Namen des Schlüssels, um die Schlüsseldetails aufzurufen.
Klicken Sie im Tab Berechtigungen auf Zugriff erlauben.
Geben Sie im Feld Neue Hauptkonten die E-Mail-Adressen aller drei Dienstkonten oben ein, um allen drei Konten gleichzeitig Berechtigungen zuzuweisen.
Wählen Sie im Menü Rolle auswählenCloud KMS CryptoKey Verschlüsseler/Entschlüsseler aus.
Klicken Sie auf Speichern.
gcloud
Führen Sie für jedes der oben genannten Dienstkonten den folgenden Befehl aus:
KEY_RING: der Name des Schlüsselbunds Beispiel: my-keyring
LOCATION: der Speicherort des Schlüssels Beispiel: us-central1
SERVICE_AGENT_EMAIL: die E-Mail-Adresse des Dienstkontos
CMEK für eine Funktion aktivieren
Nachdem Sie ein Artifact Registry-Repository mit aktiviertem CMEK eingerichtet und Cloud Run Functions Zugriff auf Ihren Schlüssel gewährt haben, können Sie CMEK für Ihre Funktion aktivieren.
Führen Sie den folgenden Befehl aus, um CMEK für eine Funktion zu aktivieren:
FUNCTION: Name der Funktion, für die CMEK aktiviert werden soll Beispiel: cmek-function.
KEY: der voll qualifizierte Schlüsselname im folgenden Format: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME.
REPOSITORY: Der voll qualifizierte Artifact Registry-Repository-Name im folgenden Format: projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY.
YOUR_SOURCE_LOCATION: Wenn Sie CMEK für eine bereits vorhandene Funktion aktivieren, achten Sie darauf, dass der gewünschte Quellcode neu bereitgestellt wird, indem Sie diesen Parameter explizit angeben.
FLAGS...: Zusätzliche Flags, die möglicherweise zur Bereitstellung der Funktion erforderlich sind, insbesondere für Bereitstellungen vom Typ „Erstellen“. Weitere Informationen finden Sie unter Cloud Run Functions-Funktion bereitstellen.
CMEK ist für die Funktion aktiviert. Optional können Sie CMEK-Organisationsrichtlinien aktivieren, um zu erzwingen, dass alle neuen Funktionen CMEK-konform sind.
Beachten Sie, dass Cloud Run Functions immer die primäre Version eines Schlüssels für den CMEK-Schutz verwendet. Sie können keine bestimmte Schlüsselversion angeben, die beim Aktivieren von CMEK für die Funktionen verwendet werden soll.
Wenn ein Schlüssel gelöscht oder deaktiviert wird oder die erforderlichen Berechtigungen widerrufen werden, werden aktive Instanzen von Funktionen, die durch diesen Schlüssel geschützt sind, nicht heruntergefahren.
Funktionsausführungen, die bereits ausgeführt werden, werden auch weiterhin ausgeführt, aber neue Ausführungen schlagen fehl, solange Cloud Run Functions keinen Zugriff auf den Schlüssel hat.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-19 (UTC)."],[[["\u003cp\u003eCloud Run functions encrypts customer content at rest by default using Google default encryption, but offers the option to use customer-managed encryption keys (CMEKs) for greater control.\u003c/p\u003e\n"],["\u003cp\u003eUsing CMEKs with Cloud Run functions allows you to manage key protection level, location, rotation schedule, access permissions, and cryptographic boundaries, and view audit logs.\u003c/p\u003e\n"],["\u003cp\u003eCMEK protection in Cloud Run functions encrypts function source code, container images, and deployed function instances, while file metadata remains unencrypted.\u003c/p\u003e\n"],["\u003cp\u003eEnabling CMEK requires granting specific service accounts (Cloud Run, Artifact Registry, Cloud Storage, etc.) access to the encryption key and creating a CMEK-protected Artifact Registry repository.\u003c/p\u003e\n"],["\u003cp\u003eDisabling the CMEK key will prevent new function instances from starting and new executions from occurring, but existing function executions will continue until completion.\u003c/p\u003e\n"]]],[],null,["# Protect your data with CMEK\n===========================\n\nThis page provides supplemental information for protecting your data with\ncustomer-managed encryption keys (CMEKs) for functions created using\n[`gcloud functions`](/sdk/gcloud/reference/functions) commands or the\n[Cloud Functions v2 API](/functions/docs/reference/rest).\n\nFor a detailed description of CMEK, including manual setup, using Autokey,\nand testing CMEK protection, refer to [Cloud Run documentation](/run/docs/securing/using-cmek).\n\nThe following types of Cloud Run functions data are encrypted when using a\nCMEK:\n\n- Function source code uploaded for deployment and stored by Google in Cloud Storage, used in the build process.\n- The results of the function build process, including:\n - The container image built from your function source code.\n - Each instance of the function that is deployed.\n\nThe function build process itself is protected by an ephemeral key uniquely\ngenerated for each build. See\n[CMEK compliance in Cloud Build](/build/docs/securing-builds/cmek) for more\ninformation. Additionally, note the following:\n\n- File metadata, such as file system paths or modification timestamps,\n is not encrypted.\n\n- If a key is disabled, the container image cannot be deployed and new\n instances cannot start.\n\n- Cloud Run functions CMEK protection only applies to Google-managed\n Cloud Run functions resources; you are responsible for protecting data and\n resources managed by you, such as your source code repositories,\n [event channels](/eventarc/docs/third-parties/third-parties-overview#subscription-terms)\n that live in the customer project, or any services used by your\n functions.\n\nBefore you begin\n----------------\n\n1. Create a single-region key to use to encrypt your functions. To learn how to\n create a key, see\n [Creating symmetric encryption keys](/kms/docs/creating-keys).\n\n2. [Create an Artifact Registry repository](/artifact-registry/docs/manage-repos#create)\n that has [CMEK enabled](/artifact-registry/docs/cmek). You must use the same\n key for the Artifact Registry repository as you do when enabling CMEK for a\n function.\n\n3. For event-driven functions, follow the additional setup steps\n outlined in\n [Enable CMEK for a Google channel](/eventarc/docs/use-cmek#enable-cmek-google-channel).\n\nGranting service accounts access to the key\n-------------------------------------------\n\nFor all functions, you must grant the following service accounts access to the key:\n\n- Cloud Run functions service agent (`service-`\u003cvar translate=\"no\"\u003ePROJECT_NUMBER\u003c/var\u003e`@gcf-admin-robot.iam.gserviceaccount.com`)\n\n- Artifact Registry service agent (`service-`\u003cvar translate=\"no\"\u003ePROJECT_NUMBER\u003c/var\u003e`@gcp-sa-artifactregistry.iam.gserviceaccount.com`)\n\n- Cloud Storage service agent (`service-`\u003cvar translate=\"no\"\u003ePROJECT_NUMBER\u003c/var\u003e`@gs-project-accounts.iam.gserviceaccount.com`)\n\n- Cloud Run service agent (`service-`\u003cvar translate=\"no\"\u003ePROJECT_NUMBER\u003c/var\u003e`@serverless-robot-prod.iam.gserviceaccount.com`)\n\n- Eventarc service agent (`service-`\u003cvar translate=\"no\"\u003ePROJECT_NUMBER\u003c/var\u003e`@gcp-sa-eventarc.iam.gserviceaccount.com`)\n\nTo grant these service accounts access to the key, add each service account as a\nprincipal of the key and then grant the service account the\n`Cloud KMS CryptoKey Encrypter/Decrypter` role: \n\n### Console\n\n1. Go to the Cloud Key Management Service page in the Google Cloud console: \n\n [Go to the Cloud KMS page](https://console.cloud.google.com/security/kms)\n\n2. Click the name of the key ring that contains the chosen key.\n\n3. Click the name of the key to view the key details.\n\n4. In the **Permissions** tab, click **Grant access**.\n\n5. In the **New principals** field, enter the email addresses of all three\n service accounts discussed earlier to assign permissions to all three\n accounts at once.\n\n6. In the **Select a role** menu, select **Cloud KMS CryptoKey\n Encrypter/Decrypter**.\n\n7. Click **Save**.\n\n### gcloud\n\nFor each service account discussed earlier, run the following command: \n\n```bash\ngcloud kms keys add-iam-policy-binding KEY \\\n --keyring KEY_RING \\\n --location LOCATION \\\n --member serviceAccount:SERVICE_AGENT_EMAIL \\\n --role roles/cloudkms.cryptoKeyEncrypterDecrypter\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eKEY\u003c/var\u003e: The name of the key. For example, `my-key`.\n\n- \u003cvar translate=\"no\"\u003eKEY_RING\u003c/var\u003e: The name of the key ring. For example,\n `my-keyring`.\n\n- \u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e: The location of the key. For example,\n `us-central1`.\n\n- \u003cvar translate=\"no\"\u003eSERVICE_AGENT_EMAIL\u003c/var\u003e: The email address of the\n service account.\n\n| **Important:** Some service agents, such as the Cloud Storage service agent (including its email address), are not initially available when you create a project. Instead, they are activated the first time you access them. For example, to activate the Cloud Storage service agent, you can [retrieve its email address](/storage/docs/getting-service-agent). The service agent must be activated prior to assigning permissions to it.\n\nEnabling CMEK for a function\n----------------------------\n\nAfter setting up an Artifact Registry repository with CMEK enabled and\ngranting Cloud Run functions access to your key, you're ready to enable\nCMEK for your function.\n\nTo enable CMEK for a function, run the following command: \n\n```bash\ngcloud functions deploy FUNCTION \\\n --kms-key=KEY \\\n --docker-repository=REPOSITORY \\\n --source=YOUR_SOURCE_LOCATION\n FLAGS...\n \n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eFUNCTION\u003c/var\u003e: The name of the function to enable CMEK\n on. For example, `cmek-function`.\n\n- \u003cvar translate=\"no\"\u003eKEY\u003c/var\u003e: The fully qualified key name, in the following\n format:\n `projects/`\u003cvar translate=\"no\"\u003ePROJECT_NAME\u003c/var\u003e`/locations/`\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e`/keyRings/`\u003cvar translate=\"no\"\u003eKEYRING_NAME\u003c/var\u003e`/cryptoKeys/`\u003cvar translate=\"no\"\u003eKEY_NAME\u003c/var\u003e.\n\n- \u003cvar translate=\"no\"\u003eREPOSITORY\u003c/var\u003e: The fully qualified Artifact Registry\n repository name, in the following format:\n `projects/`\u003cvar translate=\"no\"\u003ePROJECT_NAME\u003c/var\u003e`/locations/`\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e`/repositories/`\u003cvar translate=\"no\"\u003eREPOSITORY\u003c/var\u003e.\n\n- \u003cvar translate=\"no\"\u003eYOUR_SOURCE_LOCATION\u003c/var\u003e: When enabling CMEK for a\n pre-existing function, make sure that the intended source code is being\n re-deployed by specifying this parameter explicitly.\n\n- \u003cvar translate=\"no\"\u003eFLAGS\u003c/var\u003e`...`: Additional flags that may be\n required to deploy your function, particularly for create deployments. For\n details, see\n [Deploy a Cloud Run function](/functions/docs/deploy#basics).\n\nCMEK is enabled for the function. Optionally, enable\n[CMEK organization policies](/kms/docs/cmek-org-policy) to enforce all new\nfunctions to be CMEK compliant.\n| **Note:** First-time function deployments with CMEK enabled might fail due to IAM propagation delays. If you encounter an error upon deployment, ensure the permissions are set correctly and try again after a short period.\n\nNote that Cloud Run functions always uses the primary version of a key for CMEK\nprotection. You cannot specify a particular key version to use when enabling\nCMEK for your functions.\n\nIf a key is [destroyed](/kms/docs/destroy-restore) or\n[disabled](/kms/docs/enable-disable), or the requisite permissions on it are\nrevoked, active instances of functions protected by that key are not shut down.\nFunction executions already in progress will continue to run, but new executions\nwill fail as long as Cloud Run functions does not have access to the key."]]