VPC-Endpunktrichtlinien für private APIs in API Gateway verwenden
Sie können Sie eine VPC-Endpunktrichtlinie erstellen, um die Sicherheit Ihrer privaten API zu verbessern. Eine VPC-Endpunktrichtlinie ist eine IAM-Ressourcenrichtlinie, die Sie Ihrem VPC-Endpunkt anfügen können. Weitere Informationen finden Sie unter Steuern des Zugriffs auf Services mit VPC-Endpunkten.
Eine VPC-Endpunktrichtlinie für die folgenden Aufgaben wäre zu empfehlen.
Beschränken Sie den Zugriff auf Ihren VPC-Endpunkt und den Aufruf Ihrer API auf bestimmte Organisationen und Ressourcen.
Verwenden Sie eine einzige Richtlinie und vermeiden Sie sitzungs- oder rollenbasierte Richtlinien, um den Datenverkehr zu Ihrer API zu kontrollieren.
Verschärfen Sie den Sicherheitsbereich Ihrer Anwendung bei der Migration von On-Premises zu AWS.
Erwägungen zur VPC-Endpunktrichtlinie
Im Folgenden finden Sie Überlegungen zu Ihrer VPC-Endpunktrichtlinie.
-
Die Identität des Aufrufers wird anhand des
Authorization-Header-Werts bewertet. Zunächst wird die VPC-Endpunktrichtlinie ausgewertet, anschließend wertet API Gateway die Anfrage anhand der für die Methodenanforderung konfigurierten Autorisierungstypen aus. Die folgende Tabelle zeigt, wie die VPC-Endpunktrichtlinie anhand des Inhalts desAuthorization-Header-Werts ausgewertet wird.Inhalt des
Authorization-Header-WertsAuswertung der VPC-Endpunkt-Richtlinie
Kein Inhalt Der Aufrufer wird als anonymer Benutzer bewertet Gültige SigV4- oder SigV4a-Signatur Der Aufrufer wird anhand der Signatur als authentifizierte IAM-Identität bewertet Ungültige SigV4- oder SigV4a-Signatur API Gateway verweigert den Zugriff Nicht-SigV4-Autorisierungsinformationen, z. B. ein Bearer-Token Der Aufrufer wird als anonymer Benutzer bewertet -
Wenn Ihre Zugriffskontrolle auf der Verwendung eines Bearer-Tokens basiert, wie beispielsweise einem Lambda- oder Amazon Cognito-Genehmiger, können Sie Ihren Sicherheitsbereich mithilfe der Eigenschaften der Ressource steuern.
-
Wenn Ihre Autorisierungskontrollen die IAM-Autorisierung verwenden, können Sie Ihren Sicherheitsbereich mithilfe der Eigenschaften der Ressource und der Eigenschaften des Prinzipals steuern.
-
VPC-Endpunktrichtlinien können zusammen mit API Gateway-Ressourcenrichtlinien verwendet werden. Die API-Gateway-Ressourcenrichtlinie legt fest, welche Prinzipale auf die API zugreifen können. Die Endpunktrichtlinie legt fest, wer auf die VPC zugreifen kann und welche APIs vom VPC-Endpunkt aus aufgerufen werden können. Für Ihre private API ist eine Ressourcenrichtlinie erforderlich, Sie müssen jedoch keine benutzerdefinierte VPC-Endpunktrichtlinie erstellen.
Beispiele für VPC-Endpunktrichtlinien
Sie können Richtlinien mit folgenden Vorgaben für Endpunkte in der Amazon Virtual Private Cloud für Amazon API Gateway erstellen:
-
Prinzipal, der die Aktionen ausführen kann.
-
Aktionen, die ausgeführt werden können
-
Ressourcen, für die Aktionen ausgeführt werden können
Dies kann vom Inhalt Ihres Autorisierungs-Headers abhängen. Weitere Informationen finden Sie unter Erwägungen zur VPC-Endpunktrichtlinie. Weitere Beispielrichtlinien finden Sie unter Beispiele für Richtlinien für Datenperimeter
Um die Richtlinie dem VPC-Endpunkt anzufügen, müssen Sie die VPC-Konsole verwenden. Weitere Informationen finden Sie unter Steuern des Zugriffs auf Services mit VPC-Endpunkten.
Beispiel 1: VPC-Endpunktrichtlinie, die Zugriff auf zwei APIs gewährt
Die folgende Beispielrichtlinie gewährt über den VPC-Endpunkt, dem die Richtlinie angefügt ist, nur Zugriff auf zwei bestimmte APIs.
{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/*", "arn:aws:execute-api:us-east-1:123412341234:aaaaa11111/*" ] } ] }
Beispiel 2: VPC-Endpunktrichtlinie, die Zugriff auf GET-Methoden gewährt
Die folgende Beispielrichtlinie gewährt Benutzern über den VPC-Endpunkt, dem die Richtlinie angefügt ist, Zugriff auf GET-Methoden für eine bestimmte API.
{ "Statement": [ { "Principal": "*", "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/stageName/GET/*" ] } ] }
Beispiel 3: VPC-Endpunktrichtlinie, die einem bestimmten Benutzer Zugriff auf eine bestimmte API gewährt
Die folgende Beispielrichtlinie gewährt über den VPC-Endpunkt, dem die Richtlinie angefügt ist, einem bestimmten Benutzer Zugriff auf eine bestimmte API.
In diesem Fall müssen Sie den authorizationType der Methode auf AWS_IAM oder NONE setzen, da die Richtlinie den Zugriff auf bestimmte IAM-Prinzipale einschränkt.
{ "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::123412341234:user/MyUser" ] }, "Action": [ "execute-api:Invoke" ], "Effect": "Allow", "Resource": [ "arn:aws:execute-api:us-east-1:123412341234:a1b2c3d4e5/*" ] } ] }
Beispiel 4: Eine VPC-Endpunktrichtlinie, die Benutzern Zugriff auf einen bestimmten benutzerdefinierten Domainnamen und alle der Domain zugeordneten API gewährt
Die folgende Beispielrichtlinie gewährt Benutzern über den mit der Richtlinie verbundenen VPC-Endpunkt Zugriff auf den benutzerdefinierten Domainnamen für private APIs. Mit dieser Richtlinie kann der Benutzer alle APIs aufrufen, die diesem benutzerdefinierten Domainnamen zugeordnet sind, vorausgesetzt, dass der Benutzer eine Domainnamenzugriffszuweisung zwischen dem VPC-Endpunkt und dem benutzerdefinierten Domainnamen erstellt hat und Zugriffsrechte auf den benutzerdefinierten Domainnamen und alle privaten APIs erhält, die diesem benutzerdefinierten Domainnamen zugeordnet sind. Weitere Informationen finden Sie unter Benutzerdefinierte Domainnamen für private APIs in API Gateway.
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "*" ], "Condition": { "ArnEquals": { "execute-api:viaDomainArn": "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.test.com+f4g5h6", } } } ] }
Beispiel 5: Eine VPC-Endpunktrichtlinie, die den Zugriff auf bestimmte APIs und Domain-Ressourcen gewährt oder verweigert
Die folgende Beispielrichtlinie gewährt Benutzern Zugriff auf bestimmte APIs und Domain-Ressourcen. Mit dieser Richtlinie kann der Benutzer private APIs und Domain-Ressourcen aufrufen, die diesem benutzerdefinierten Domainnamen zugeordnet sind, vorausgesetzt, dass der Benutzer eine Domainnamenzugriffszuweisung zwischen dem VPC-Endpunkt und dem benutzerdefinierten Domainnamen erstellt hat und Zugriffsrechte auf den benutzerdefinierten Domainnamen und alle privaten APIs erhält, die diesem benutzerdefinierten Domainnamen zugeordnet sind. Weitere Informationen finden Sie unter Benutzerdefinierte Domainnamen für private APIs in API Gateway.
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:/domainnames/private.test.com+f4g5h6", "arn:aws:execute-api:us-west-2:111122223333:a1b2c3d4e5/*" ] }, { "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": "execute-api:Invoke", "Resource": [ "arn:aws:execute-api:us-west-2:111122223333:a1b2c3d4e5/admin/*", "arn:aws:execute-api:us-west-2:111122223333:bcd123455/*" ] } ] }
Beispiel 6: VPC-Endpunktrichtlinie, die Zugriff nach Prinzipalen und Ressourcen einer Organisation gewährt oder verweigert
Die folgende Beispiel-Richtlinie gewährt Zugriff auf Prinzipale und Ressourcen, die zu einer Organisation gehören.