Verwenden Sie VPC-Endpunktrichtlinien für private Zwecke APIs in API Gateway - Amazon API Gateway

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.

Verwenden Sie VPC-Endpunktrichtlinien für private Zwecke APIs in API Gateway

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 lokal zu. AWS

Erwägungen zur VPC-Endpunktrichtlinie

Im Folgenden finden Sie Überlegungen zu Ihrer VPC-Endpunktrichtlinie:

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 Autorisierungsheaders abhängen. Weitere Informationen finden Sie unter Erwägungen zur VPC-Endpunktrichtlinie. Weitere Beispielrichtlinien finden Sie unter Beispiele für Datenperimeterrichtlinien 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 zwei Personen Zugriff gewährt APIs

Die folgende Beispielrichtlinie gewährt Zugriff auf nur zwei spezifische APIs über den VPC-Endpunkt, an den die Richtlinie angehängt ist.

{ "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 Zugriff auf einen bestimmten benutzerdefinierten Domainnamen für private Zwecke APIs über den VPC-Endpunkt, an den die Richtlinie angehängt ist. Mit dieser Richtlinie kann der Benutzer, solange er eine Zuordnung für den Domainnamen-Zugriff zwischen dem VPC-Endpunkt und dem benutzerdefinierten Domainnamen erstellt hat und Zugriff auf den benutzerdefinierten Domainnamen und alle privaten APIs erhält, die dem benutzerdefinierten Domainnamen zugeordnet sind, alle diesem benutzerdefinierten Domainnamen APIs zugewiesenen APIs aufrufen. Weitere Informationen finden Sie unter Benutzerdefinierte Domainnamen für private Zwecke 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: VPC-Endpunktrichtlinie, die den Zugriff auf bestimmte Ressourcen APIs und Domänenressourcen gewährt oder verweigert

Die folgende Beispielrichtlinie gewährt Benutzern Zugriff auf spezifische Ressourcen APIs und Domänenressourcen. Mit dieser Richtlinie kann der Benutzer zulässige private Ressourcen und Domänenressourcen aufrufen, solange er eine Zuordnung für den Domainnamen-Zugriff zwischen dem VPC-Endpunkt und dem benutzerdefinierten Domänennamen erstellt hat und Zugriff auf den benutzerdefinierten Domainnamen und alle privaten APIs erhält, die dem benutzerdefinierten Domänennamen zugeordnet sind. APIs Weitere Informationen finden Sie unter Benutzerdefinierte Domainnamen für private Zwecke 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 den Zugriff durch Prinzipale und Ressourcen einer Organisation gewährt oder verweigert

Die folgende Beispielrichtlinie gewährt Zugriff auf Prinzipale und Ressourcen, die zu einer Organisation gehören.

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