

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Arbeiten mit Lambda-Umgebungsvariablen
<a name="configuration-envvars"></a>

Sie können Umgebungsvariablen verwenden, um das Verhalten Ihrer Funktion anzupassen, ohne Code zu aktualisieren. Eine Umgebungsvariable ist ein Zeichenfolgenpaar, das in der versionsspezifischen Konfiguration einer Funktion gespeichert ist. Die Lambda-Laufzeit stellt Umgebungsvariablen für den Code zur Verfügung und legt zusätzliche Umgebungsvariablen mit Informationen über die Funktion und die Aufrufanforderung fest.

**Anmerkung**  
Um die Sicherheit zu erhöhen, empfehlen wir, AWS Secrets Manager anstelle von Umgebungsvariablen Datenbankanmeldedaten und andere vertrauliche Informationen wie API-Schlüssel oder Autorisierungstoken zu speichern. Weitere Informationen finden Sie unter [Verwenden von Secrets-Manager-Secrets in Lambda-Funktionen](with-secrets-manager.md).

Umgebungsvariablen werden vor dem Funktionsaufruf nicht ausgewertet. Jeder von Ihnen definierte Wert wird als Literalzeichenfolge betrachtet und nicht erweitert. Führen Sie die Variablenauswertung in Ihrem Funktionscode durch.

## Erstellen von Lambda-Umgebungsvariablen
<a name="create-environment-variables"></a>

Sie können Umgebungsvariablen in Lambda mithilfe der Lambda-Konsole, der AWS Command Line Interface (AWS CLI), AWS Serverless Application Model (AWS SAM) oder mithilfe eines AWS SDK konfigurieren.

------
#### [ Console ]

Sie definieren Umgebungsvariablen für die unveröffentlichte Version Ihrer Funktion. Wenn Sie eine Version veröffentlichen, werden die Umgebungsvariablen für diese Version zusammen mit anderen [versionsspezifischen Konfigurationseinstellungen](configuration-versions.md) gesperrt.

Sie erstellen eine Umgebungsvariable für Ihre Funktion, indem Sie einen Schlüssel und einen Wert definieren. Ihre Funktion verwendet den Namen des Schlüssels, um den Wert der Umgebungsvariablen abzurufen.

**So legen Sie Umgebungsvariablen in der Lambda-Konsole fest**

1. Öffnen Sie die Seite [Funktionen](https://console.aws.amazon.com/lambda/home#/functions) der Lambda-Konsole.

1. Wählen Sie eine Funktion aus.

1. Wählen Sie den Tab **Configuration (Konfiguration)** und dann **Environment variables (Umgebungsvariablen)** aus.

1. Wählen Sie unter **Environment variables (Umgebungsvariablen)** die Option **Edit (Bearbeiten)**.

1. Wählen Sie **Umgebungsvariablen hinzufügen** aus.

1. Geben Sie einen Schlüssel und einen Wert ein.

**Voraussetzungen**
   + Schlüssel beginnen mit einem Buchstaben und bestehen aus mindestens zwei Zeichen.
   + Schlüssel enthalten nur Buchstaben, Zahlen und den Unterstrich (`_`).
   + Schlüssel sind nicht [Lambda](#configuration-envvars-runtime) vorbehalten.
   + Die Gesamtgröße aller Umgebungsvariablen überschreitet nicht 4 KB.

1. Wählen Sie **Speichern**.

**Generieren einer Liste von Umgebungsvariablen im Konsolen-Code-Editor**

Sie können im Lambda-Code-Editor eine Liste von Umgebungsvariablen generieren. So können Sie beim Programmieren schnell auf Ihre Umgebungsvariablen verweisen.

1. Wählen Sie die Registerkarte **Code**.

1. Scrollen Sie im Code-Editor nach unten zum Abschnitt **UMGEBUNGSVARIABLEN**. Bestehende Umgebungsvariablen sind hier aufgelistet:  
![\[\]](http://docs.aws.amazon.com/de_de/lambda/latest/dg/images/env-var.png)

1. Um neue Umgebungsvariablen zu erstellen, wählen Sie das Pluszeichen (![\[\]](http://docs.aws.amazon.com/de_de/lambda/latest/dg/images/add-plus.png)):  
![\[\]](http://docs.aws.amazon.com/de_de/lambda/latest/dg/images/create-env-var.png)

Umgebungsvariablen bleiben verschlüsselt, wenn sie im Code-Editor der Konsole aufgeführt werden. Wenn Sie Verschlüsselungshilfen für die Verschlüsselung während der Übertragung aktiviert haben, bleiben diese Einstellungen unverändert. Weitere Informationen finden Sie unter [Sicherung von Lambda-Umgebungsvariablen](configuration-envvars-encryption.md).

Die Liste der Umgebungsvariablen ist schreibgeschützt und nur auf der Lambda-Konsole verfügbar. Diese Datei ist nicht enthalten, wenn Sie das ZIP-Dateiarchiv der Funktion herunterladen, und Sie können keine Umgebungsvariablen hinzufügen, indem Sie diese Datei hochladen.

------
#### [ AWS CLI ]

Im folgenden Beispiel werden zwei Umgebungsvariablen für eine Funktion mit dem Namen festgeleg `my-function`.

```
aws lambda update-function-configuration \
  --function-name my-function \
  --environment "Variables={BUCKET=amzn-s3-demo-bucket,KEY=file.txt}"
```

Wenn Sie Umgebungsvariablen mit dem `update-function-configuration`-Befehl anwenden, wird der gesamte Inhalt der `Variables`-Struktur ersetzt. Um vorhandene Umgebungsvariablen beibehalten, wenn Sie eine neue hinzufügen, schließen Sie alle vorhandenen Werte in Ihre Anforderung ein.

Mit dem `get-function-configuration`-Befehl können Sie die aktuelle Konfiguration abrufen.

```
aws lambda get-function-configuration \
  --function-name my-function
```

Die Ausgabe sollte folgendermaßen aussehen:

```
{
    "FunctionName": "my-function",
    "FunctionArn": "arn:aws:lambda:us-east-2:111122223333:function:my-function",
    "Runtime": "nodejs24.x",
    "Role": "arn:aws:iam::111122223333:role/lambda-role",
    "Environment": {
        "Variables": {
            "BUCKET": "amzn-s3-demo-bucket",
            "KEY": "file.txt"
        }
    },
    "RevisionId": "0894d3c1-2a3d-4d48-bf7f-abade99f3c15",
    ...
}
```

Sie können die Revisions-ID aus der Ausgabe von `get-function-configuration` als Parameter an `update-function-configuration` übergeben. Dadurch wird sichergestellt, dass sich die Werte zwischen dem Lesen und dem Aktualisieren der Konfiguration nicht ändern.

Um den Verschlüsselungsschlüssel einer Funktion zu konfigurieren, legen Sie die `KMSKeyARN`-Option fest.

```
aws lambda update-function-configuration \
  --function-name my-function \
  --kms-key-arn arn:aws:kms:us-east-2:111122223333:key/055efbb4-xmpl-4336-ba9c-538c7d31f599
```

------
#### [ AWS SAM ]

Sie können das [AWS Serverless Application Model](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/serverless-getting-started.html ) verwenden, um Umgebungsvariablen für Ihre Funktion zu konfigurieren. Aktualisieren Sie die Eigenschaften [Umgebung](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-environment) und [Variablen](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html#cfn-lambda-function-environment-variables) in Ihrer `template.yaml`-Datei und führen Sie dann [sam deploy](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html) aus.

**Example template.yaml**  

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An AWS Serverless Application Model template describing your function.
Resources:
  my-function:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: .
      Description: ''
      MemorySize: 128
      Timeout: 120
      Handler: index.handler
      Runtime: nodejs24.x
      Architectures:
        - x86_64
      EphemeralStorage:
        Size: 10240
      Environment:
        Variables:
          BUCKET: amzn-s3-demo-bucket
          KEY: file.txt
      # Other function properties...
```

------
#### [ AWS SDKs ]

Verwenden Sie die folgenden API-Operationen, um Umgebungsvariablen mithilfe eines AWS SDK zu verwalten.
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)
+ [GetFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html)
+ [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)

Weitere Informationen finden Sie in der [AWS -SDK-Dokumentation](https://aws.amazon.com/developer/tools/) für Ihre bevorzugte Programmiersprache.

------

## Beispielszenario für Umgebungsvariablen
<a name="configuration-envvars-example"></a>

Sie können Umgebungsvariablen verwenden, um das Funktionsverhalten in Ihrer Testumgebung und Produktionsumgebung anzupassen. Zum Beispiel können Sie zwei Funktionen mit demselben Code aber mit unterschiedlichen Konfigurationen erstellen. Die eine Funktion stellt eine Verbindung mit einer Testdatenbank und die andere mit einer Produktionsdatenbank her. In diesem Fall verwenden Sie Umgebungsvariablen, um den Hostnamen und andere Verbindungsdetails für die Datenbank an die Funktion zu übergeben. 

Das folgende Beispiel zeigt, wie der Datenbankhost und der Datenbankname als Umgebungsvariablen definiert werden.

![\[\]](http://docs.aws.amazon.com/de_de/lambda/latest/dg/images/console-env.png)


Wenn Ihre Testumgebung mehr Debugging-Informationen generieren soll als die Produktionsumgebung, können Sie eine Umgebungsvariable festlegen, um Ihre Testumgebung so zu konfigurieren, dass eine ausführlichere Protokollierung oder eine detailliertere Ablaufverfolgung verwendet wird.

Beispielsweise könnten Sie in Ihrer Testumgebung eine Umgebungsvariable mit dem Schlüssel `LOG_LEVEL` und einem Wert festlegen, der die Protokollstufe „Debug“ oder „Trace“ angibt. Im Code Ihrer Lambda-Funktion können Sie dann diese Umgebungsvariable verwenden, um die Protokollstufe festzulegen.

Die folgenden Codebeispiele in Python und Node.js veranschaulichen, wie Sie dies erreichen können. In diesen Beispielen wird davon ausgegangen, dass Ihre Umgebungsvariable den Wert `DEBUG` in Python oder `debug` in Node.js hat.

------
#### [ Python ]

**Example Python-Code zum Festlegen der Protokollstufe**  

```
import os
import logging

# Initialize the logger
logger = logging.getLogger()

# Get the log level from the environment variable and default to INFO if not set
log_level = os.environ.get('LOG_LEVEL', 'INFO')

# Set the log level
logger.setLevel(log_level)

def lambda_handler(event, context):
    # Produce some example log outputs
    logger.debug('This is a log with detailed debug information - shown only in test environment')
    logger.info('This is a log with standard information - shown in production and test environments')
```

------
#### [ Node.js (ES module format) ]

**Example Node.js-Code zum Festlegen der Protokollstufe**  
In diesem Beispiel wird die `winston`-Protokollierungsbibliothek verwendet. Verwenden Sie npm, um diese Bibliothek dem Bereitstellungspaket Ihrer Funktion hinzuzufügen. Weitere Informationen finden Sie unter [ZIP-Bereitstellungspakets mit Abhängigkeiten erstellen](nodejs-package.md#nodejs-package-create-dependencies).  

```
import winston from 'winston';

// Initialize the logger using the log level from environment variables, defaulting to INFO if not set
const logger = winston.createLogger({
   level: process.env.LOG_LEVEL || 'info',
   format: winston.format.json(),
   transports: [new winston.transports.Console()]
});

export const handler = async (event) => {
   // Produce some example log outputs
   logger.debug('This is a log with detailed debug information - shown only in test environment');
   logger.info('This is a log with standard information - shown in production and test environment');
   
};
```

------

## Abrufen von Lambda-Umgebungsvariablen
<a name="retrieve-environment-variables"></a>

Umgebungsvariablen in Ihrem Funktionscode können Sie mit der Standardmethode für Ihre Programmiersprache abrufen.

------
#### [ Node.js ]

```
let region = process.env.AWS_REGION
```

------
#### [ Python ]

```
import os
  region = os.environ['AWS_REGION']
```

**Anmerkung**  
In einigen Fällen müssen Sie möglicherweise das folgende Format verwenden:  

```
region = os.environ.get('AWS_REGION')
```

------
#### [ Ruby ]

```
region = ENV["AWS_REGION"]
```

------
#### [ Java ]

```
String region = System.getenv("AWS_REGION");
```

------
#### [ Go ]

```
var region = os.Getenv("AWS_REGION")
```

------
#### [ C\$1 ]

```
string region = Environment.GetEnvironmentVariable("AWS_REGION");
```

------
#### [ PowerShell ]

```
$region = $env:AWS_REGION
```

------

Lambda speichert Umgebungsvariablen sicher, indem sie im Ruhezustand verschlüsselt werden. Sie können [Lambda so konfigurieren, dass es einen anderen Verschlüsselungsschlüssel verwendet](configuration-envvars-encryption.md), Umgebungsvariablenwerte auf der Clientseite verschlüsselt oder Umgebungsvariablen in einer CloudFormation Vorlage mit festlegen. AWS Secrets Manager

## Definierte Laufzeitumgebungsvariablen
<a name="configuration-envvars-runtime"></a>

Lambda [Laufzeiten](lambda-runtimes.md) setzen mehrere Umgebungsvariablen während der Initialisierung. Die meisten Umgebungsvariablen stellen Informationen über die Funktion oder Laufzeit bereit. Die Schlüssel für diese Umgebungsvariablen sind *reserviert* und können nicht in der Funktionskonfiguration gesetzt werden.

**Reservierte Umgebungsvariablen**
+ `_HANDLER` – Der für die Funktion konfigurierte Handler-Speicherort.
+ `_X_AMZN_TRACE_ID` – Die [X-Ray-Tracing-Header](services-xray.md). Diese Umgebungsvariable ändert sich bei jedem Aufruf.
  + Diese Umgebungsvariable ist nicht für reine OS-Laufzeiten (die `provided`-Laufzeitfamilie) definiert. Sie können `_X_AMZN_TRACE_ID` für benutzerdefinierte Laufzeiten einstellen, indem Sie den Antwort-Header `Lambda-Runtime-Trace-Id` der [Nächster Aufruf](runtimes-api.md#runtimes-api-next) verwenden.
  + Für die Java-Laufzeit-Versionen 17 und höher wird diese Umgebungsvariable nicht verwendet. Stattdessen speichert Lambda Ablaufverfolgungsinformationen in der Systemeigenschaft `com.amazonaws.xray.traceHeader`.
+ `AWS_DEFAULT_REGION`— Die Standardeinstellung AWS-Region , in der die Lambda-Funktion ausgeführt wird.
+ `AWS_REGION`— Der AWS-Region Ort, an dem die Lambda-Funktion ausgeführt wird. Wenn eingegeben, überschreibt dieser Wert die `AWS_DEFAULT_REGION`.
  + Weitere Informationen zur Verwendung der AWS-Region Umgebungsvariablen mit AWS SDKs finden Sie unter [AWS Region](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html#feature-region-sdk-compat) im *Referenzhandbuch für Tools AWS SDKs und Tools.*
+ `AWS_EXECUTION_ENV` – [Die Laufzeit-Kennung](lambda-runtimes.md) mit dem Präfix `AWS_Lambda_` z. B. `AWS_Lambda_java8`. Diese Umgebungsvariable ist nicht für reine OS-Laufzeiten (die `provided`-Laufzeitfamilie) definiert.
+ `AWS_LAMBDA_FUNCTION_NAME` – Der Name der Funktion.
+ `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` – Die Menge des für die Funktion verfügbaren Speichers in MB.
+ `AWS_LAMBDA_FUNCTION_VERSION` – Die Version der Funktion, die gerade ausgeführt wird.
+ `AWS_LAMBDA_INITIALIZATION_TYPE`— Der Initialisierungstyp der Funktion,`on-demand`, `provisioned-concurrency``snap-start`, oder`lambda-managed-instances`. Weitere Informationen finden Sie unter [Konfiguration der bereitgestellten Parallelität,, [Verbesserung der Startleistung mit Lambda SnapStart](snapstart.md) oder](provisioned-concurrency.md). [Von Lambda verwaltete Instances](lambda-managed-instances.md)
+ `AWS_LAMBDA_LOG_GROUP_NAME`, `AWS_LAMBDA_LOG_STREAM_NAME` — Der Name der Amazon CloudWatch Logs-Gruppe und des Streams für die Funktion. Die `AWS_LAMBDA_LOG_STREAM_NAME` [Umgebungsvariablen `AWS_LAMBDA_LOG_GROUP_NAME`](#configuration-envvars-runtime) und sind in SnapStart Lambda-Funktionen nicht verfügbar.
+ `AWS_ACCESS_KEY`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN` – Die Zugriffsschlüssel, die über die [Ausführungsrolle](lambda-intro-execution-role.md) der Funktion bezogen wurden.
+ `AWS_LAMBDA_RUNTIME_API` – ([Benutzerdefinierte Laufzeit](runtimes-custom.md)) Host und Port der [Laufzeit-API](runtimes-api.md).
+ `LAMBDA_TASK_ROOT` – Der Pfad zu Ihrem Lambda-Funktionscode.
+ `LAMBDA_RUNTIME_DIR` – Der Pfad zu Laufzeitbibliotheken.
+ `AWS_LAMBDA_MAX_CONCURRENCY`— (Nur Lambda Managed Instances) Die maximale Anzahl gleichzeitiger Aufrufe, die Lambda an eine Ausführungsumgebung sendet.
+ `AWS_LAMBDA_METADATA_API`— Die [Metadaten-Endpunkt-Serveradresse](configuration-metadata-endpoint.md) im Format `{ipv4_address}:{port}` (z. B.). `169.254.100.1:9001`
+ `AWS_LAMBDA_METADATA_TOKEN`— Ein eindeutiges Authentifizierungstoken für die aktuelle Ausführungsumgebung, das zur Authentifizierung von Anfragen an den [Metadaten-Endpunkt](configuration-metadata-endpoint.md) verwendet wird. Lambda generiert dieses Token automatisch bei der Initialisierung.

Die folgenden zusätzlichen Umgebungsvariablen sind nicht vorbehalten und können in Ihrer Funktionskonfiguration erweitert werden.

**Nicht reservierte Umgebungsvariablen**
+ `LANG` – Das Gebietsschema der Laufzeit (`en_US.UTF-8`).
+ `PATH` – Der Ausführungspfad (`/usr/local/bin:/usr/bin/:/bin:/opt/bin`).
+ `LD_LIBRARY_PATH` – Der Pfad der Systembibliothek (`/var/lang/lib:/lib64:/usr/lib64:$LAMBDA_RUNTIME_DIR:$LAMBDA_RUNTIME_DIR/lib:$LAMBDA_TASK_ROOT:$LAMBDA_TASK_ROOT/lib:/opt/lib`).
+ `NODE_PATH` – ([Node.js](lambda-nodejs.md)) Der Node.js-Bibliothekspfad (`/opt/nodejs/node12/node_modules/:/opt/nodejs/node_modules:$LAMBDA_RUNTIME_DIR/node_modules`).
+ `NODE_OPTIONS` – ([Node.js](lambda-nodejs.md)) Für Node.js-Laufzeiten können Sie `NODE_OPTIONS` verwenden, um experimentelle Features wieder zu aktivieren, die Lambda standardmäßig deaktiviert.
+ `PYTHONPATH` – ([Python](lambda-python.md)) Der Python-Bibliothekspfad (`$LAMBDA_RUNTIME_DIR`).
+ `GEM_PATH` – ([Ruby](lambda-ruby.md)) Der Pfad der Ruby-Bibliothek (`$LAMBDA_TASK_ROOT/vendor/bundle/ruby/3.3.0:/opt/ruby/gems/3.3.0`).
+ `AWS_XRAY_CONTEXT_MISSING` – Für die X-Ray-Ablaufverfolgung legt Lambda dies auf `LOG_ERROR` fest, um Laufzeitfehler aus dem X-Ray-SDK zu vermeiden.
+ `AWS_XRAY_DAEMON_ADDRESS` – Die IP-Adresse und der Port des X-Ray-Daemons.
+ `AWS_LAMBDA_DOTNET_PREJIT` – ([.NET](lambda-csharp.md)) Legen Sie für die .NET-Laufzeitumgebung diese Variable so fest, dass sie .NET-spezifische Laufzeitoptimierungen aktiviert oder deaktiviert. Zu den Werten gehören `always`, `never` und `provisioned-concurrency`. Weitere Informationen finden Sie unter [Konfigurieren von Provisioned Concurrency für eine Funktion](provisioned-concurrency.md).
+ `TZ` – Die Zeitzone der Umgebung (`:UTC`). Die Ausführungsumgebung verwendet NTP, um die Systemuhr zu synchronisieren.

Die angezeigten Beispielwerte spiegeln die neuesten Laufzeiten wider. Das Vorhandensein bestimmter Variablen oder deren Werte kann je nach früheren Laufzeiten unterschiedlich sein.

# Sicherung von Lambda-Umgebungsvariablen
<a name="configuration-envvars-encryption"></a>

Sie können Ihre Umgebungsvariablen sichern, können Sie eine serverseitige Verschlüsselung nutzen, um Ihre Data-at-Rest zu schützen und eine clientseitige Verschlüsselung, um Ihre Daten während der Übertragung zu schützen.

**Anmerkung**  
Um die Datenbanksicherheit zu erhöhen, empfehlen wir, AWS Secrets Manager anstelle von Umgebungsvariablen zum Speichern von Datenbankanmeldeinformationen zu verwenden. Weitere Informationen finden Sie unter [Verwenden von Secrets-Manager-Secrets in Lambda-Funktionen](with-secrets-manager.md).

**Sicherheit im Ruhezustand**  
Lambda bietet im Ruhezustand immer serverseitiger Verschlüsselung mit einem AWS KMS key an. Standardmäßig verwendet Lambda einen Von AWS verwalteter Schlüssel. Wenn dieses Standardverhalten Ihrem Workflow entspricht, müssen Sie nichts anderes einrichten. Lambda erstellt das Von AWS verwalteter Schlüssel in Ihrem Konto und verwaltet die Berechtigungen für Sie. AWS berechnet Ihnen keine Gebühren für die Verwendung dieses Schlüssels.

Wenn Sie möchten, können Sie stattdessen einen vom AWS KMS Kunden verwalteten Schlüssel bereitstellen. Sie können dies tun, um die Drehung des KMS-Schlüssels zu steuern oder die Anforderungen Ihrer Organisation für die Verwaltung von KMS-Schlüsseln zu erfüllen. Wenn Sie einen vom Kunden verwalteten Schlüssel verwenden, können nur Benutzer in Ihrem Konto mit Zugriff auf den KMS-Schlüssel Umgebungsvariablen für die Funktion anzeigen oder verwalten.

Für vom Kunden verwaltete Schlüssel fallen AWS KMS Standardgebühren an. Weitere Informationen finden Sie unter [AWS Key Management Service Preise](https://aws.amazon.com/kms/pricing/).

**Sicherheit während der Übertragung**  
Für zusätzliche Sicherheit können Sie Helfer für die Verschlüsselung bei der Übertragung aktivieren, wodurch sichergestellt wird, dass Ihre Umgebungsvariablen clientseitig verschlüsselt sind, um sie während der Übertragung zu schützen.

**So konfigurieren Sie die Verschlüsselung für Ihre Umgebungsvariablen**

1. Verwenden Sie AWS Key Management Service (AWS KMS), um alle vom Kunden verwalteten Schlüssel für Lambda zu erstellen, die für die serverseitige und clientseitige Verschlüsselung verwendet werden sollen. Weitere Informationen finden Sie unter [Erstellen von Schlüsseln](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) im *AWS Key Management Service -Entwicklerhandbuch*.

1. Navigieren Sie mithilfe der Lambda-Konsole zur Seite **Umgebungsvariablen bearbeiten**.

   1. Öffnen Sie die Seite [Funktionen](https://console.aws.amazon.com/lambda/home#/functions) der Lambda-Konsole.

   1. Wählen Sie eine Funktion aus.

   1. Wählen Sie **Konfiguration** und dann **Umgebungsvariablen** aus der linken Navigationsleiste.

   1. Wählen Sie im Abschnitt **Umgebungsvariablen** **Bearbeiten** aus.

   1. Erweitern Sie **Encryption configuration (Verschlüsselungskonfiguration)**.

1. (Optional) Aktivieren Sie Konsolenverschlüsselungshelfer, um die clientseitige Verschlüsselung zu verwenden, um Ihre Daten während der Übertragung zu schützen.

   1. Wählen Sie unter **Verschlüsselung während der Übertragung** die Option **Helfer für die Verschlüsselung während der Übertragung aktivieren** aus.

   1. Wählen Sie für jede Umgebungsvariable, für die Sie Konsolenverschlüsselungshilfen aktivieren möchten, neben der Umgebungsvariablen die Option **Encrypt (Verschlüsseln)** aus.

   1.  Wählen AWS KMS key Sie unter Verschlüsselung bei der Übertragung einen vom Kunden verwalteten Schlüssel aus, den Sie zu Beginn dieses Verfahrens erstellt haben.

   1. Wählen Sie **Ausführungsrollenrichtlinie** und kopieren Sie die Richtlinie. Diese Richtlinie gewährt der Ausführungsrolle Ihrer Funktion die Berechtigung zum Entschlüsseln der Umgebungsvariablen.

      Speichern Sie diese Richtlinie zur Verwendung im letzten Schritt dieses Verfahrens.

   1. Fügen Sie Ihrer Funktion Code hinzu, der die Umgebungsvariablen entschlüsselt. Wählen Sie **Geheimnisausschnitt entschlüsseln**, um ein Beispiel anzuzeigen.

1. (Optional) Geben Sie Ihren kundenverwalteten Schlüssel zur Verschlüsselung im Ruhezustand an.

   1. Wählen Sie **Kundenmasterschlüssel verwenden** aus.

   1. Wählen Sie einen vom Kunden verwalteten Schlüssel aus, den Sie zu Beginn dieses Verfahrens erstellt haben.

1. Wählen Sie **Speichern**.

1. Richten Sie Berechtigungen ein.

   Wenn Sie einen vom Kunden verwalteten Schlüssel mit serverseitiger Verschlüsselung verwenden, erteilen Sie allen Benutzern oder Rollen Berechtigungen zum Anzeigen oder Verwalten von Umgebungsvariablen für die Funktion. Weitere Informationen finden Sie unter [Verwalten von Berechtigungen für den serverseitigen Verschlüsselungs-KMS-Schlüssel](#managing-permissions-to-your-server-side-encryption-key).

   Wenn Sie die clientseitige Verschlüsselung für die Sicherheit während der Übertragung aktivieren, benötigt Ihre Funktion die Berechtigung zum Aufrufen der `kms:Decrypt`-API-Operation. Fügen Sie die Richtlinie, die Sie zuvor in diesem Verfahren gespeichert haben, zur [Ausführungsrolle](lambda-intro-execution-role.md) der Funktion hinzu.

## Verwalten von Berechtigungen für den serverseitigen Verschlüsselungs-KMS-Schlüssel
<a name="managing-permissions-to-your-server-side-encryption-key"></a>

Für Ihren Benutzer oder die Ausführungsrolle der Funktion sind keine AWS KMS Berechtigungen erforderlich, um den Standard-Verschlüsselungsschlüssel zu verwenden. Um einen vom kundenverwalteten Schlüssel verwenden zu können, benötigen Sie eine Berechtigungen zur Verwendung des Schlüssels. Lambda erstellt anhand Ihrer Berechtigungen eine Berechtigungserteilung für den Schlüssel. So wird es Lambda ermöglicht, diesen für die Verschlüsselung zu verwenden.
+ `kms:ListAliases` – Zur Ansicht von Schlüssel in der Lambda-Konsole.
+ `kms:CreateGrant`, `kms:Encrypt` – Zum Konfigurieren eines vom Kunden verwalteten Schlüssels für eine Funktion.
+ `kms:Decrypt` – Zum Anzeigen und Verwalten von Umgebungsvariablen, die mit einem vom Kunden verwalteten Schlüssel verschlüsselt sind.

Sie können diese Berechtigungen über Ihre AWS-Konto oder über die ressourcenbasierte Berechtigungsrichtlinie eines Schlüssels erhalten. `ListAliases`wird durch die [verwalteten Richtlinien für Lambda](access-control-identity-based.md) bereitgestellt. Schlüsselrichtlinien gewähren Benutzern in der Gruppe **Key users (Schlüsselbenutzer)** die verbleibenden Berechtigungen.

Benutzer ohne `Decrypt`-Berechtigungen können Funktionen weiterhin verwalten, aber sie können keine Umgebungsvariablen anzeigen oder in der Lambda-Konsole verwalten. Um zu verhindern, dass ein Benutzer Umgebungsvariablen anzeigen kann, fügen Sie den Berechtigungen des Benutzers eine Anweisung hinzu, die den Zugriff auf den Standardschlüssel, einen vom Kunden verwalteten Schlüssel oder alle Schlüssel verweigert.

**Example IAM-Richtlinie – Verweigern des Zugriffs nach Schlüssel-ARN**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-2:111122223333:key/3be10e2d-xmpl-4be4-bc9d-0405a71945cc"
        }
    ]
}
```

Details zum Verwalten von Schlüsselberechtigungen finden Sie unter [Key policies in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) im *AWS Key Management Service -Entwicklerhandbuch*.