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.
So beeinflussen API Gateway-Ressourcenrichtlinien den Autorisierungs-Workflow
Wenn API Gateway die an die API angefügte Ressourcenrichtlinie ausgewertet wird, wird das Ergebnis vom Authentifizierungstyp beeinflusst, den Sie für die API definiert haben, wie in den Ablaufdiagrammen in den folgenden Abschnitten dargestellt.
Themen
Nur API Gateway-Ressourcenrichtlinie
In diesem Workflow wird eine API Gateway-Ressourcenrichtlinie an die API angehängt. Es wird jedoch kein Authentifizierungstyp für die API definiert. 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-Genehmiger für die API konfiguriert. Die Ressourcenrichtlinie wird in zwei Phasen ausgewertet. Bevor der Lambda-Genehmiger aufgerufen wird, evaluiert API Gateway zunächst die Richtlinie und prüft auf eine explizite Verweigerung. 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 Beispielressourcenrichtlinie ermöglicht Aufrufe nur vom VPC-Endpunkt, dessen VPC-Endpunkt-ID lautet
. Während der "Pre-Auth"-Evaluierung können nur die Aufrufe von dem im Beispiel angegebenen VPC-Endpunkt vorwärts gehen und den Lambda-Genehmiger 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-Authentifizierung und Ressourcenrichtlinie
In diesem Workflow wird die IAM-Authentifizierung für die API zusätzlich zu einer Ressourcenrichtlinie konfiguriert. Nach dem Authentifizieren des Benutzers mit dem IAM-Service wertet die API die dem Benutzer zugeordneten Richtlinien und die Ressourcenrichtlinie aus. Das Ergebnis hängt davon ab, ob sich der Aufrufer in derselben AWS-Konto oder einer anderen Gruppe AWS-Konto als der API-Besitzer befindet.
Wenn der Aufrufer und der API-Besitzer aus separaten Konten stammen, erlauben sowohl die IAM-Richtlinien als auch die Ressourcenrichtlinie dem Aufrufer explizit, fortzufahren. Weitere Informationen finden Sie in Tabelle B.
Wenn sich der Aufrufer und der API-Besitzer allerdings im selben AWS-Konto befinden, müssen die Benutzerrichtlinien oder die Ressourcenrichtlinie dem Aufrufer 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 Aufrufe nur von der VPC, deren VPC-ID
ist. 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-Benutzerpool für die API konfiguriert. API Gateway versucht zunächst, den Aufrufer über Amazon Cognito zu authentifizieren. Dies wird in der Regel über ein JWT-Token durchgeführt, das vom Aufrufer 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.
Es folgt ein Beispiel für eine Ressourcenrichtlinie, die Aufrufe nur von angegebenen Quell-IPs zulässt, wobei davon ausgegangen wird, dass das Authentifizierungstoken von Amazon Cognito eine Erlaubnis 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 ist das Verhalten aufgeführt, das entsteht, wenn der Zugriff auf eine API-Gateway-API durch eine IAM-Richtlinie oder einen Lambda-Authorizer und eine API-Gateway-Ressourcenrichtlinie gesteuert wird, die sich beide in derselben befinden. AWS-Konto
Tabelle A: Konto A ruft eine API auf, die Konto A gehört | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
IAM-Richtlinie (oder Lambda-Autorisierer) | API Gateway-Ressourcenrichtlinie | 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 eine API-Gateway-API durch eine IAM-Richtlinie gesteuert wird oder ein Amazon Cognito Cognito-Benutzerpool-Autorisierer und eine API Gateway Gateway-Ressourcenrichtlinie, die sich unterscheiden, gesteuert wird. 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 IAM-Richtlinie oder der Autorisierer für Amazon Cognito Cognito-Benutzerpools explizit Zugriff gewähren.
Tabelle B: Konto B ruft eine API auf, die Konto A gehört | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
IAM-Richtlinie (oder Autorisierer für Amazon Cognito Cognito-Benutzerpools) | API Gateway-Ressourcenrichtlinie | 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 |