Wie sich API Gateway-Ressourcenrichtlinien auf den Autorisierungsworkflow auswirken - APIAmazon-Gateway

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.

Wie sich API Gateway-Ressourcenrichtlinien auf den Autorisierungsworkflow auswirken

Wenn API Gateway die an Ihre angehängte Ressourcenrichtlinie auswertetAPI, hängt das Ergebnis von dem Authentifizierungstyp ab, den Sie für den definiert habenAPI, wie in den Flussdiagrammen in den folgenden Abschnitten dargestellt.

APINur Gateway-Ressourcenrichtlinie

In diesem Workflow ist eine API Gateway-Ressourcenrichtlinie an die angehängtAPI, für die ist jedoch kein Authentifizierungstyp definiertAPI. Die Bewertung der Richtlinie beinhaltet das Suchen nach einer expliziten Erlaubnis basierend auf den eingehenden Kriterien des Aufrufers. Eine implizite Verweigerung oder eine explizite Verweigerung führt dazu, dass der Aufrufer abgelehnt wird.

Nur Autorisierungsablauf einer Ressourcenrichtlinie.

Im Folgenden finden Sie ein Beispiel für eine solche Ressourcenrichtlinie.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:region:account-id:api-id/", "Condition": { "IpAddress": { "aws:SourceIp": ["192.0.2.0/24", "198.51.100.0/24" ] } } } ] }

Lambda-Genehmiger und Ressourcenrichtlinie

In diesem Workflow wird zusätzlich zu einer Ressourcenrichtlinie ein Lambda-Authorizer konfiguriert. API Die Ressourcenrichtlinie wird in zwei Phasen ausgewertet. Bevor der Lambda-Autorisierer aufgerufen wird, bewertet API Gateway zunächst die Richtlinie und prüft, ob es sich um explizite Ablehnungen handelt. Wenn dies der Fall ist, wird dem Aufrufer der Zugriff sofort verweigert. Andernfalls wird der Lambda-Genehmiger aufgerufen, und es wird ein Richtliniendokument zurückgegeben, das in Verbindung mit der Ressourcenrichtlinie ausgewertet wird. Das Ergebnis wird anhand von Tabelle A ermittelt.

Die folgende Beispiel-Ressourcenrichtlinie erlaubt Aufrufe nur von dem VPC Endpunkt aus, dessen VPC Endpunkt-ID lautetvpce-1a2b3c4d. Während der „Pre-Auth“ -Evaluierung dürfen nur die Aufrufe, die von dem im Beispiel angegebenen VPC Endpunkt kommen, weitergehen und den Lambda-Authorizer auswerten. Alle verbleibenden Aufrufe werden blockiert.

Autorisierungsablauf für eine Ressourcenrichtlinie und einen Lambda-Autorisierer.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:account-id:api-id/" ], "Condition" : { "StringNotEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } } ] }

IAM-Autorisierungs- und Ressourcenrichtlinie

In diesem Workflow konfigurieren Sie zusätzlich zu einer Ressourcenrichtlinie die IAM API Authentifizierung. Nachdem Sie den Benutzer mit dem IAM Dienst authentifiziert haben, API bewertet der sowohl die dem Benutzer zugewiesenen Richtlinien als auch die Ressourcenrichtlinie. Das Ergebnis hängt davon ab, ob sich der Anrufer im selben AWS-Konto oder in einem anderen als dem Eigentümer AWS-Konto befindet. API

Wenn der Anrufer und der API Besitzer unterschiedliche Konten haben, erlauben sowohl die IAM Richtlinien als auch die Ressourcenrichtlinie dem Anrufer ausdrücklich, fortzufahren. Weitere Informationen finden Sie in Tabelle B.

Wenn sich der Anrufer und der API Besitzer jedoch in derselben Sprache befinden AWS-Konto, müssen entweder die IAM Benutzerrichtlinien oder die Ressourcenrichtlinie dem Anrufer ausdrücklich erlauben, fortzufahren. Weitere Informationen finden Sie in Tabelle A.

Autorisierungsablauf für eine Ressourcenrichtlinie und IAM Authentifizierung.

Im Folgenden finden Sie ein Beispiel für eine kontoübergreifende Ressourcenrichtlinie. Unter der Annahme, dass die IAM Richtlinie einen Zulassungseffekt enthält, erlaubt diese Ressourcenrichtlinie nur Aufrufe von demjenigenVPC, dessen VPC ID lautetvpc-2f09a348. Weitere Informationen finden Sie in Tabelle B.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:region:account-id:api-id/" ], "Condition" : { "StringEquals": { "aws:SourceVpc": "vpc-2f09a348" } } } ] }

Amazon Cognito-Authentifizierung und Ressourcenrichtlinie

In diesem Workflow wird zusätzlich zu einer Ressourcenrichtlinie ein Amazon Cognito Cognito-Benutzerpool konfiguriert. API APIGateway versucht zunächst, den Anrufer über Amazon Cognito zu authentifizieren. Dies erfolgt in der Regel über ein JWTToken, das vom Anrufer bereitgestellt wird. Wenn die Authentifizierung erfolgreich ist, wird die Ressourcenrichtlinie unabhängig ausgewertet und eine explizite Genehmigung erforderlich. Eine Zugriffsverweigerung oder weder "Allow" (Zugriffserlaubnis) oder "Deny" (Zugriffsverweigerung) führt zu einer Zugriffsverweigerung. Es folgt ein Beispiel für eine Ressourcenrichtlinie, die zusammen mit Amazon Cognito-Benutzerpools verwendet werden könnte.

Autorisierungsablauf für eine Ressourcenrichtlinie und einen Amazon Cognito Cognito-Autorisierer.

Im Folgenden finden Sie ein Beispiel für eine Ressourcenrichtlinie, die Aufrufe nur von einer bestimmten Quelle zulässtIPs, vorausgesetzt, dass das Amazon Cognito Cognito-Authentifizierungstoken eine Zulassung enthält. Weitere Informationen finden Sie in Tabelle B.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:region:account-id:api-id/", "Condition": { "IpAddress": { "aws:SourceIp": ["192.0.2.0/24", "198.51.100.0/24" ] } } } ] }

Ergebnistabellen für die Richtlinienauswertung

In Tabelle A API ist das Verhalten aufgeführt, das entsteht, wenn der Zugriff auf ein API Gateway durch eine IAM Richtlinie oder einen Lambda-Autorisierer und eine API Gateway-Ressourcenrichtlinie gesteuert wird, die sich beide in derselben befinden. AWS-Konto

IAMRichtlinie (oder Lambda-Autorisierer)

APIGateway-Ressourcenrichtlinie

Daraus resultierendes Verhalten

Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf
Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Weder Zulassen noch Verweigern Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf
Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Deny Explizite Zugriffsverweigerung
Weder Zulassen noch Verweigern Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf
Weder Zulassen noch Verweigern Weder Zulassen noch Verweigern Implizite Zugriffsverweigerung
Weder Zulassen noch Verweigern Deny Explizite Zugriffsverweigerung
Deny Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Explizite Zugriffsverweigerung
Deny Weder Zulassen noch Verweigern Explizite Zugriffsverweigerung
Deny Deny Explizite Zugriffsverweigerung

In Tabelle B ist das Verhalten aufgeführt, das entsteht, wenn der Zugriff auf ein API Gateway durch eine IAM Richtlinie gesteuert API wird oder wenn ein Amazon Cognito Cognito-Benutzer den Authorizer und eine API Gateway-Ressourcenrichtlinie zusammenfasst, die sich unterscheiden. AWS-Konten Wenn einer der beiden Parameter nicht zulässt (weder zulassen noch verweigern), wird der kontoübergreifende Zugriff verweigert. Dies liegt daran, dass der kontoübergreifende Zugriff erfordert, dass sowohl die Ressourcenrichtlinie als auch die Richtlinie oder der Autorisierer IAM für Amazon Cognito Cognito-Benutzerpools explizit Zugriff gewähren.

IAMRichtlinie (oder Autorisierer für Amazon Cognito Cognito-Benutzerpools)

APIGateway-Ressourcenrichtlinie

Daraus resultierendes Verhalten

Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf
Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Weder Zulassen noch Verweigern Implizite Zugriffsverweigerung
Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Deny Explizite Zugriffsverweigerung
Weder Zulassen noch Verweigern Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Implizite Zugriffsverweigerung
Weder Zulassen noch Verweigern Weder Zulassen noch Verweigern Implizite Zugriffsverweigerung
Weder Zulassen noch Verweigern Deny Explizite Zugriffsverweigerung
Deny Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf Explizite Zugriffsverweigerung
Deny Weder Zulassen noch Verweigern Explizite Zugriffsverweigerung
Deny Deny Explizite Zugriffsverweigerung