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.
Themen
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.
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 lautet
. 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.vpce-1a2b3c4d
{ "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.
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 lautet
. Weitere Informationen finden Sie in Tabelle B.vpc-2f09a348
{ "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.
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 |