

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.

# Verwendung der Quellfunktion ARN zur Steuerung des Funktionszugriffsverhaltens
<a name="permissions-source-function-arn"></a>

Es ist üblich, dass Ihr Lambda-Funktionscode API-Anorderungen an andere AWS-Services stellt. Um diese Anforderungen zu stellen, generiert Lambda einen kurzlebigen Satz von Anmeldeinformationen, indem es die Ausführungsrolle Ihrer Funktion übernimmt. Diese Anmeldeinformationen sind während des Aufrufs Ihrer Funktion als Umgebungsvariablen verfügbar. Wenn Sie mit arbeiten AWS SDKs, müssen Sie die Anmeldeinformationen für das SDK nicht direkt im Code angeben. Standardmäßig überprüft die Kette der Anbieter von Anmeldeinformationen nacheinander jeden Ort, an dem Sie Anmeldeinformationen festlegen können, und wählt die erste verfügbare aus – in der Regel die Umgebungsvariablen (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` und `AWS_SESSION_TOKEN`).

Lambda fügt die Quellfunktion ARN in den Anmeldeinformationskontext ein, wenn es sich bei der Anfrage um eine AWS API-Anforderung handelt, die aus Ihrer Ausführungsumgebung stammt. Lambda fügt auch den Quellfunktions-ARN für die folgenden AWS -API-Anfragen ein, die Lambda in Ihrem Namen außerhalb Ihrer Ausführungsumgebung durchführt:


| Service | Action | Grund | 
| --- | --- | --- | 
| CloudWatch Logs | CreateLogGroup, CreateLogStream, PutLogEvents |  Um Logs in einer CloudWatch Logs-Protokollgruppe zu speichern  | 
| X-Ray | PutTraceSegments |  So senden Sie Verfolgungsdaten an X-Ray  | 
| Amazon EFS | ClientMount |  So stellen Sie eine Verbindung zwischen Ihrer Funktion und einem Amazon Elastic File System (Amazon EFS) Dateisystem her  | 

Andere AWS API-Aufrufe, die Lambda außerhalb Ihrer Ausführungsumgebung in Ihrem Namen mit derselben Ausführungsrolle durchführt, enthalten nicht die Quellfunktion ARN. Beispiele für solche API-Aufrufe außerhalb der Ausführungsumgebung sind:
+ Ruft AWS Key Management Service (AWS KMS) auf, um Ihre Umgebungsvariablen automatisch zu verschlüsseln und zu entschlüsseln.
+ Ruft Amazon Elastic Compute Cloud (Amazon EC2) auf, um elastische Netzwerkschnittstellen (ENIs) für eine VPC-fähige Funktion zu erstellen.
+ Aufrufe AWS-Services, z. B. Amazon Simple Queue Service (Amazon SQS), um aus einer Ereignisquelle zu lesen, die als [Ereignisquellen-Mapping](invocation-eventsourcemapping.md) eingerichtet ist.

Mit dem ARN der Quellfunktion im Kontext der Anmeldeinformationen können Sie überprüfen, ob ein Aufruf Ihrer Ressource aus dem Code einer bestimmten Lambda-Funktion stammt. Um dies zu überprüfen, verwenden Sie die `lambda:SourceFunctionArn`-Zustandsschlüssel in einer identitätsbasierten IAM-Richtlinie oder einer [Service-Kontrollrichtlinie (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html).

**Anmerkung**  
Sie können den `lambda:SourceFunctionArn`-Bedingungsschlüssel nicht in ressourcenbasierten Richtlinien verwenden.

Mit diesem Bedingungsschlüssel in Ihren identitätsbasierten Richtlinien oder SCPs können Sie Sicherheitskontrollen für die API-Aktionen implementieren, die Ihr Funktionscode für andere vornimmt. AWS-Services Dies hat einige wichtige Sicherheitsanwendungen, z. B. um Ihnen zu helfen, die Quelle eines Anmeldeinformationslecks zu identifizieren.

**Anmerkung**  
Der `lambda:SourceFunctionArn`-Bedingungsschlüssel unterscheidet sich von den `lambda:FunctionArn` und `aws:SourceArn`-Bedingungsschlüsseln. Der `lambda:FunctionArn`-Bedingungsschlüssel gilt nur für [Ereignisquellenzuordnungen](invocation-eventsourcemapping.md) und hilft bei der Definition der Funktionen, die Ihre Ereignisquelle aufrufen kann. Der `aws:SourceArn` Bedingungsschlüssel gilt nur für Richtlinien, bei denen Ihre Lambda-Funktion die Zielressource ist, und hilft zu definieren, welche anderen AWS-Services AMD-Ressourcen diese Funktion aufrufen können. Der `lambda:SourceFunctionArn` Bedingungsschlüssel kann für jede identitätsbasierte Richtlinie oder jeden SCP gelten, um die spezifischen Lambda-Funktionen zu definieren, die berechtigt sind, bestimmte AWS API-Aufrufe an andere Ressourcen zu tätigen.

Um `lambda:SourceFunctionArn` in Ihrer Richtlinie zu verwenden, fügen Sie es als Bedingung mit einem der [ARN-Bedingungsoperatoren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN) ein. Der Wert des Schlüssels muss ein gültiger ARN sein.

Angenommen, Ihr Lambda-Funktionscode macht einen `s3:PutObject`-Aufruf, der auf einen bestimmten Amazon-S3-Bucket abzielt. Möglicherweise möchten Sie nur einer bestimmten Lambda-Funktion erlauben, dass `s3:PutObject` auf diesen Bucket zugreift. In diesem Fall sollte der Ausführungsrolle Ihrer Funktion eine Richtlinie angefügt sein, die wie folgt aussieht:

**Example Richtlinie, die einer bestimmten Lambda-Funktion Zugriff auf eine Amazon-S3-Ressource gewährt**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ExampleSourceFunctionArn",
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::lambda_bucket/*",
            "Condition": {
                "ArnEquals": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

Diese Richtlinie erlaubt nur `s3:PutObject` Zugriff wenn die Quelle die Lambda-Funktion mit ARN `arn:aws:lambda:us-east-1:123456789012:function:source_lambda` ist. Diese Richtlinie erlaubt `s3:PutObject` keinen Zugriff auf jede andere aufrufende Identität. Dies gilt auch dann, wenn eine andere Funktion oder Entität einen `s3:PutObject`-Aufruf mit der gleichen Ausführungsrolle tätigt.

**Anmerkung**  
Der Bedingungsschlüssel `lambda:SourceFunctionARN` unterstützt keine Lambda-Funktionsversionen oder -Funktionsaliase. Wenn Sie den ARN für eine bestimmte Funktionsversion oder einen bestimmten Alias verwenden, ist Ihre Funktion nicht berechtigt, die von Ihnen angegebene Aktion auszuführen. Achten Sie darauf, den unqualifizierten ARN für Ihre Funktion ohne Versions- oder Alias-Suffix zu verwenden.

Sie können auch in verwenden. `lambda:SourceFunctionArn` SCPs Angenommen, Sie möchten den Zugriff auf Ihren Bucket entweder auf den Code einer einzelnen Lambda-Funktion oder auf Aufrufe aus einer bestimmten Amazon Virtual Private Cloud (VPC) beschränken. Das folgende SCP illustriert dies.

**Example Richtlinie, die den Zugriff auf Amazon S3 unter bestimmten Bedingungen verweigert**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::lambda_bucket/*",
            "Effect": "Deny",
            "Condition": {
                "StringNotEqualsIfExists": {
                    "aws:SourceVpc": [
                        "vpc-12345678"
                    ]
                }
            }
        },
        {
            "Action": [
                "s3:*"
            ],
            "Resource": "arn:aws:s3:::lambda_bucket/*",
            "Effect": "Deny",
            "Condition": {
                "ArnNotEqualsIfExists": {
                    "lambda:SourceFunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:source_lambda"
                }
            }
        }
    ]
}
```

Diese Richtlinie verweigert alle S3-Aktionen, sofern sie nicht von einer bestimmten Lambda-Funktion mit ARN `arn:aws:lambda:*:123456789012:function:source_lambda` stammen, oder sofern sie nicht aus dem angegebenen VPC stammen. Der `StringNotEqualsIfExists`-Operator weist IAM an, diese Bedingung nur zu verarbeiten, wenn der `aws:SourceVpc`-Schlüssel in der Anfrage vorhanden ist. In ähnlicher Weise berücksichtigt IAM den `ArnNotEqualsIfExists`-Operator nur, wenn `lambda:SourceFunctionArn` vorhanden ist.