Erstellen Sie eine API Gateway-Ressourcenrichtlinie und fügen Sie sie an eine an API - APIAmazon-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.

Erstellen Sie eine API Gateway-Ressourcenrichtlinie und fügen Sie sie an eine an API

Damit ein Benutzer auf Ihre zugreifen kann, API indem er den API Ausführungsdienst aufruft, müssen Sie eine API Gateway-Ressourcenrichtlinie erstellen und die Richtlinie an die anhängenAPI. Wenn Sie eine Richtlinie an Ihre anhängenAPI, werden die Berechtigungen in der Richtlinie auf die Methoden in der angewendetAPI. Wenn Sie die Ressourcenrichtlinie aktualisieren, müssen Sie die bereitstellenAPI.

Voraussetzungen

Um eine API Gateway-Ressourcenrichtlinie zu aktualisieren, benötigen Sie die apigateway:UpdateRestApiPolicy Genehmigung und die apigateway:PATCH Erlaubnis.

Bei einer Edge-optimierten oder regionalen API Version können Sie Ihre Ressourcenrichtlinie API während der Erstellung oder nach der Bereitstellung an Ihre hinzufügen. Bei einer privaten Version API können Sie Ihre API ohne eine Ressourcenrichtlinie nicht bereitstellen. Weitere Informationen finden Sie unter Privat REST APIs im API Gateway.

Hängen Sie eine Ressourcenrichtlinie an ein API Gateway an API

Das folgende Verfahren zeigt Ihnen, wie Sie eine Ressourcenrichtlinie an ein API Gateway anhängenAPI.

AWS Management Console
Um eine Ressourcenrichtlinie an ein API Gateway anzuhängen API
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigatewayan.

  2. Wählen Sie ein. REST API

  3. Wählen Sie im Hauptnavigationsbereich Ressourcenrichtlinie.

  4. Wählen Sie Create Policy (Richtlinie erstellen) aus.

  5. (Optional) Wählen Sie Vorlage auswählen, um eine Beispielrichtlinie zu generieren.

    In den Beispielrichtlinien sind Platzhalter in doppelte geschweifte Klammern ("{{placeholder}}") eingeschlossen. Ersetzen Sie die einzelnen Platzhalter (einschließlich der geschweiften Klammern) durch die erforderlichen Informationen.

  6. Wenn Sie keines der Vorlagenbeispiele verwenden, geben Sie Ihre Ressourcenrichtlinie ein.

  7. Wählen Sie Änderungen speichern.

Wenn das zuvor in der API Gateway-Konsole bereitgestellt API wurde, müssen Sie es erneut bereitstellen, damit die Ressourcenrichtlinie wirksam wird.

AWS CLI

Rufen Sie den create-rest-apiBefehl wie folgt AWS CLI auf, um eine neue zu erstellen API und ihr eine Ressourcenrichtlinie anzuhängen:

aws apigateway create-rest-api \ --name "api-name" \ --policy "{\"jsonEscapedPolicyDocument\"}"

Rufen Sie den AWS CLI update-rest-apiBefehl wie folgt aufAPI, um eine Ressourcenrichtlinie an eine bestehende anzuhängen:

aws apigateway update-rest-api \ --rest-api-id api-id \ --patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'

Sie können Ihre Ressourcenrichtlinie auch als separate policy.json Datei anhängen und sie in Ihren create-rest-apiBefehl aufnehmen. Das folgende Beispiel create-rest-apierstellt ein neuesAPI:

aws apigateway create-rest-api \ --name "api-name" \ --policy file://policy.json

policy.jsonist eine API Gateway-Ressourcenrichtlinie, wie Beispiel: API Datenverkehr auf der Grundlage der Quell-IP-Adresse oder des Quellbereichs ablehnen z. B.

AWS CloudFormation

Sie können verwenden AWS CloudFormation , um eine API mit einer Ressourcenrichtlinie zu erstellen. Das folgende Beispiel erstellt REST API mit dem Beispiel eine Ressourcenrichtlinie,Beispiel: API Datenverkehr auf der Grundlage der Quell-IP-Adresse oder des Quellbereichs ablehnen.

AWSTemplateFormatVersion: 2010-09-09 Resources: Api: Type: 'AWS::ApiGateway::RestApi' Properties: Name: testapi Policy: Statement: - Action: 'execute-api:Invoke' Effect: Allow Principal: '*' Resource: 'execute-api/*' - Action: 'execute-api:Invoke' Effect: Deny Principal: '*' Resource: 'execute-api/*' Condition: IpAddress: 'aws:SourceIp': ["192.0.2.0/24", "198.51.100.0/24" ] Version: 2012-10-17 Resource: Type: 'AWS::ApiGateway::Resource' Properties: RestApiId: !Ref Api ParentId: !GetAtt Api.RootResourceId PathPart: 'helloworld' MethodGet: Type: 'AWS::ApiGateway::Method' Properties: RestApiId: !Ref Api ResourceId: !Ref Resource HttpMethod: GET ApiKeyRequired: false AuthorizationType: NONE Integration: Type: MOCK ApiDeployment: Type: 'AWS::ApiGateway::Deployment' DependsOn: - MethodGet Properties: RestApiId: !Ref Api StageName: test

Beheben Sie Fehler bei Ihrer Ressourcenrichtlinie

Die folgenden Anleitungen zur Fehlerbehebung können Ihnen helfen, Probleme mit Ihrer Ressourcenrichtlinie zu lösen.

Meine Antwort lautet API {"Message“ :"User: anonymous is not authorized to perform: execute-api:invoke on resource: arn:aws:execute-api:us-east-1: ********/****/****/ "}

Wenn Sie in Ihrer Ressourcenrichtlinie den Principal auf einen Principal setzen, wie zum Beispiel den folgenden: AWS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", ""Principal": { "AWS": [ "arn:aws:iam::account-id:role/developer", "arn:aws:iam::account-id:role/Admin" ] }, "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, ... }

Sie müssen die AWS_IAM Autorisierung für jede Methode in Ihrer verwendenAPI, andernfalls wird die vorherige Fehlermeldung API zurückgegeben. Weitere Anweisungen zum Aktivieren der AWS_IAM Autorisierung für eine Methode finden Sie unterMethoden für REST APIs in API Gateway.

Meine Ressourcenrichtlinie wird nicht aktualisiert

Wenn Sie die Ressourcenrichtlinie aktualisieren, nachdem die API erstellt wurde, müssen Sie die bereitstellen, um die Änderungen API zu übernehmen, nachdem Sie die aktualisierte Richtlinie angehängt haben. Durch das Aktualisieren oder Speichern der Richtlinie allein wird das Laufzeitverhalten von nicht geändert. API Weitere Informationen zur Bereitstellung Ihres API finden Sie unterRESTAPIsIn API Gateway bereitstellen.

Meine Ressourcenrichtlinie gibt den folgenden Fehler zurück: Ungültiges Richtliniendokument. Bitte überprüfen Sie die Richtliniensyntax und stellen Sie sicher, dass die Prinzipale gültig sind.

Um diesen Fehler zu beheben, empfehlen wir Ihnen, zunächst die Richtliniensyntax zu überprüfen. Weitere Informationen finden Sie unter Sprachübersicht der Zugriffsrichtlinien für Amazon API Gateway. Wir empfehlen Ihnen außerdem, zu überprüfen, ob alle angegebenen Prinzipale gültig sind und nicht gelöscht wurden.

Wenn Sie API sich in einer Opt-in-Region befinden, stellen Sie außerdem sicher, dass für alle Konten in der Ressourcenrichtlinie die Region aktiviert ist.