VPC-Endpunktrichtlinien für private APIs in API Gateway verwenden - Amazon API Gateway

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 des Authorization-Header-Werts ausgewertet wird.

    Inhalt des Authorization-Header-Werts

    Auswertung 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 auf der GitHub-Website.

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.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Condition": { "StringEquals": { "aws:ResourceOrgID": "o-abcd1234", "aws:PrincipalOrgID": "o-abcd1234" } }, "Action": "*", "Resource": "*", "Effect": "Allow", "Principal": { "AWS": "*" }, "Sid": "AllowRequestsByOrgsIdentitiesToOrgsResources" } ] }