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
Wenn ein Principal eine Anfrage stellt an AWS, AWS fasst die Anforderungsinformationen in einem Anforderungskontext zusammen, 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 die aws:CalledVia Kontextschlüssel
Sie können den verwenden aws:CalledViaGlobaler Bedingungskontextschlüssel, um die Dienste in der Richtlinie mit den Diensten zu vergleichen, die Anfragen im Namen des IAM Prinzipals (Benutzer oder Rolle) gestellt haben. Wenn ein Principal eine Anfrage an einen stellt AWS-Service, dieser Dienst verwendet 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 erstellen AWS-Service-spezifisch. 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
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 aus aufrufen kann.
{ "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.
{ "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 Hinweise zu CalledVia
Bedingungsschlüsseln finden Sie unter AWS Kontexttasten für globale Bedingungen im IAMBenutzerhandbuch.