Beispiele für API Gateway-Ressourcenrichtlinien - Amazon API Gateway

Beispiele für API Gateway-Ressourcenrichtlinien

Auf dieser Seite werden einige Beispiele zu typischen Anwendungsfällen für API Gateway Ressourcenrichtlinien vorgestellt.

In den folgenden Beispielrichtlinien wird eine vereinfachte Syntax verwendet, um die API-Ressource anzugeben. Diese vereinfachte Syntax ist eine abgekürzte Form, mit der Sie auf eine API-Ressource verweisen können, anstatt den vollständigen Amazon-Ressourcenname (ARN) anzugeben. API Gateway konvertiert die abgekürzte Syntax in den vollständigen ARN, wenn Sie die Richtlinie speichern. Sie können zum Beispiel die Ressource execute-api:/stage-name/GET/pets in einer Ressourcenrichtlinie angeben. API Gateway wandelt die Ressource in arn:aws:execute-api:us-east-2:123456789012:aabbccddee/stage-name/GET/pets um, wenn Sie die Ressourcenrichtlinie speichern. API Gateway erstellt den vollständigen ARN unter Verwendung der aktuellen Region, Ihrer AWS-Konto-ID und der ID der REST-API, mit der die Ressourcenrichtlinie verknüpft ist. Sie können mit execute-api:/* alle Phasen, Methoden und Pfade in der aktuellen API darstellen. Informationen zur Sprache der Zugriffsichtlinie finden Sie unter Übersicht über die Zugriffsrichtliniensprache für Amazon API Gateway.

Beispiel: Zulassen, dass Rollen in einem anderen AWS-Konto eine API verwenden

Die folgende Beispiel-Ressourcenrichtlinie gewährt den API-Zugriff in einem AWS-Konto für zwei Rollen in einem anderen AWS-Konto über die Protokolle Signature Version 4 (SigV4) oder Signature Version 4a (SigV4a). Insbesondere dem Entwickler und dem Administratorrolle für das mit account-id-2 gekennzeichnete AWS-Konto wird die execute-api:Invoke-Aktion zum Ausführen der GET-Aktion auf der pets-Ressource (API) in Ihrem AWS-Konto gewährt.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/developer", "arn:aws:iam::111122223333:role/Admin" ] }, "Action": "execute-api:Invoke", "Resource": [ "execute-api:/stage/GET/pets" ] } ] }

Beispiel: Verweigern des API-Datenverkehrs basierend auf der Quell-IP-Adresse oder eines IP-Bereichs

Die folgende Beispiel-Ressourcenrichtlinie verweigert (blockiert) den eingehenden Datenverkehr zu einer API, wenn dieser von zwei bestimmten Quell-IP-Adressblöcken stammt.

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

Wenn Sie IAM-Benutzerrichtlinien oder API-Gateway-Ressourcensicherheitsrichtlinien verwenden, um den Zugriff auf API Gateway oder auf eine API in API Gateway zu steuern, stellen Sie sicher, dass Ihre Richtlinien auf IPv6-Adressbereiche aktualisiert sind. Richtlinien, die nicht für die Verarbeitung von IPv6-Adressen aktualisiert wurden, können den Zugriff der Clients auf API Gateway beeinträchtigen, sobald diese den Dualstack-Endpunkt verwenden. Weitere Informationen finden Sie unter Verwenden von IPv6-Adressen in IAM-Richtlinien.

Beispiel: Verweigern des API-Datenverkehrs basierend auf der Quell-IP-Adresse oder eines IP-Bereichs bei Verwendung einer privaten API

Die folgende Beispiel-Ressourcenrichtlinie verweigert (blockiert) den eingehenden Datenverkehr zu einer privaten API, wenn dieser von zwei bestimmten Quell-IP-Adressblöcken stammt. Bei Verwendung privater APIs schreibt der VPC-Endpunkt für execute-api die ursprüngliche Quell-IP-Adresse neu. Die aws:VpcSourceIp-Bedingung filtert die Anforderung anhand der ursprünglichen IP-Adresse des Anforderers.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "IpAddress": { "aws:VpcSourceIp": ["192.0.2.0/24", "198.51.100.0/24"] } } } ] }

Beispiel: Erlauben von privatem API-Datenverkehr basierend auf der Quell-VPC oder dem VPC-Endpunkt

Die folgenden Beispiel-Ressourcenrichtlinien erlauben eingehenden Datenverkehr zu einer privaten API von nur einer bestimmten Virtual Private Cloud (VPC) oder einem bestimmten VPC-Endpunkt.

In diesem Beispiel für eine Ressourcenrichtlinie wird eine Quell-VPC angegeben:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpc": "vpc-1a2b3c4d" } } } ] }

In diesem Beispiel für eine Ressourcenrichtlinie wird ein Quell-VPC-Endpunkt angegeben:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } } ] }