

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.

# Verwenden Sie CalledVia Kontexttasten für Athena
<a name="security-iam-athena-calledvia"></a>

Wenn ein [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) eine [Anfrage](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-request) an stellt AWS, AWS sammelt er die Anforderungsinformationen in einem *Anforderungskontext, der die Anfrage* auswertet und autorisiert. Sie können das `Condition`-Element einer JSON-Richtlinie verwenden, um Schlüssel im Anforderungskontext mit Schlüsselwerten zu vergleichen, die Sie in Ihrer Richtlinie angeben. *Globale Bedingungskontextschlüssel* sind Bedingungsschlüssel mit einem `aws:`-Präfix.

## Über den aws:CalledVia-Kontextschlüssel
<a name="security-iam-athena-calledvia-the-awscalledvia-context-key"></a>

Sie können den globalen Bedingungskontextschlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledvia) verwenden, um die Services in der Richtlinie mit den Services zu vergleichen, die Anforderungen im Auftrag des IAM-Prinzipals (Benutzer oder Rolle) gestellt haben. Wenn ein Principal eine Anfrage an einen stellt AWS-Service, verwendet dieser Dienst möglicherweise die Anmeldeinformationen des Prinzipals, um nachfolgende Anfragen an andere Dienste zu stellen. Der Schlüssel `aws:CalledVia` enthält eine geordnete Liste aller Services in der Kette, die im Auftrag des Auftraggebers Anforderungen ausgegeben haben.

Indem Sie einen Dienstprinzipalnamen für den `aws:CalledVia` Kontextschlüssel angeben, können Sie den Kontextschlüssel AWS-Service spezifisch machen. Sie können beispielsweise den Bedingungsschlüssel `aws:CalledVia` verwenden, um Anfragen auf die von Athena gestellten zu beschränken. Um den Bedingungsschlüssel `aws:CalledVia` in einer Richtlinie mit Athena zu verwenden, geben Sie den Athena-Serviceprinzipalnamen `athena.amazonaws.com` wie im folgenden Beispiel an.

```
 ...
    "Condition": {
        "ForAnyValue:StringEquals": { 
            "aws:CalledVia": "athena.amazonaws.com"
        }
    }
...
```

Sie können den `aws:CalledVia`-Kontextschlüssel verwenden, um sicherzustellen, dass Aufrufer nur dann Zugriff auf eine Ressource (wie eine Lambda-Funktion) haben, wenn sie die Ressource von Athena aus aufrufen.

**Anmerkung**  
Der Kontextschlüssel `aws:CalledVia` ist nicht mit dem Feature zur Weitergabe vertrauenswürdiger Identitäten kompatibel.

## Fügen Sie einen CalledVia Kontextschlüssel für den Zugriff auf Lambda-Funktionen hinzu
<a name="security-iam-athena-calledvia-example-policy-to-add-an-optional-calledvia-context-key-for-fine-grained-access-to-a-lambda-function"></a>

Athena erfordert, dass der Aufrufer über `lambda:InvokeFunction`-Berechtigungen verfügt, um die mit der Abfrage verknüpfte Lambda-Funktion aufzurufen. Die folgende Anweisung gibt an, dass der Benutzer Lambda-Funktionen nur von Athena aufrufen kann.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:{{111122223333}}:function:{{OneAthenaLambdaFunction}}",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:CalledVia": "athena.amazonaws.com"
                }
            }
        }
    ]
}
```

------

Das folgende Beispiel zeigt das Hinzufügen der vorherigen Anweisung zu einer Richtlinie, die es einem Benutzer ermöglicht, eine Verbundabfrage auszuführen und zu lesen. Prinzipale, die diese Aktionen ausführen dürfen, können Abfragen ausführen, die Athena-Kataloge angeben, die einer Verbunddatenquelle zugeordnet sind. Der Prinzipal kann jedoch nicht auf die zugeordnete Lambda-Funktion zugreifen, es sei denn, die Funktion wird über Athena aufgerufen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0", 
            "Effect": "Allow",
            "Action": [ 
                "athena:GetWorkGroup", 
                "s3:PutObject", 
                "s3:GetObject", 
                "athena:StartQueryExecution", 
                "s3:AbortMultipartUpload",  
                "athena:StopQueryExecution", 
                "athena:GetQueryExecution", 
                "athena:GetQueryResults", 
                "s3:ListMultipartUploadParts" 
            ], 
            "Resource": [ 
                "arn:aws:athena:*:{{111122223333}}:workgroup/{{WorkGroupName}}",
                "arn:aws:s3:::{{MyQueryResultsBucket}}/*", 
                "arn:aws:s3:::{{MyLambdaSpillBucket}}/{{MyLambdaSpillPrefix}}*"
            ] 
        }, 
        {
            "Sid": "VisualEditor1", 
            "Effect": "Allow", 
            "Action": "athena:ListWorkGroups", 
            "Resource": "*" 
        }, 
        {
            "Sid": "VisualEditor2", 
            "Effect": "Allow", 
            "Action": 
                [ 
                "s3:ListBucket", 
                "s3:GetBucketLocation" 
                ], 
            "Resource": "arn:aws:s3:::{{MyLambdaSpillBucket}}" 
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": [
                "arn:aws:lambda:*:{{111122223333}}:function:{{OneAthenaLambdaFunction}}", 
                "arn:aws:lambda:*:{{111122223333}}:function:{{AnotherAthenaLambdaFunction}}"
            ], 
            "Condition": {
                "ForAnyValue:StringEquals": { 
                    "aws:CalledVia": "athena.amazonaws.com"
                }
            }
        }            
    ]
}
```

------

Weitere Informationen über globale Bedingungskontextschlüssel `CalledVia` finden Sie unter [AWS -Globale Bedingungskontextschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*.