API Gateway-Ressourcenrichtlinie erstellen und an eine API anhängen - 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.

API Gateway-Ressourcenrichtlinie erstellen und an eine API anhängen

Um einem Benutzer den Zugriff auf Ihre API zu ermöglichen, indem er den API-Ausführungsdienst aufruft, müssen Sie eine API-Gateway-Ressourcenrichtlinie erstellen und die Richtlinie an die API anhängen. Wenn Sie eine Richtlinie an Ihre API anhängen, werden die in der Richtlinie enthaltenen Berechtigungen auf die Methoden in der API angewendet. Wenn Sie die Ressourcenrichtlinie aktualisieren, müssen Sie die API bereitstellen.

Voraussetzungen

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

Bei einer Edge-optimierten oder regionalen API können Sie Ihre Ressourcenrichtlinie an Ihre API anhängen, während Sie sie erstellen oder nachdem sie bereitgestellt wurde. Bei einer privaten API können Sie Ihre API nicht ohne eine Ressourcenrichtlinie bereitstellen. Weitere Informationen finden Sie unter Private REST-APIs im API Gateway.

Eine Ressourcenrichtlinie an eine API Gateway anhängen

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

AWS Management Console
So hängen Sie eine Ressourcenrichtlinie an eine API Gateway-API an:
  1. Melden Sie sich bei der API Gateway-Konsole unter https://console.aws.amazon.com/apigateway an.

  2. Wählen Sie eine REST-API aus.

  3. Wählen Sie im Hauptnavigationsbereich Ressourcenrichtlinie.

  4. Wählen Sie 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 aus.

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

AWS CLI

Rufen Sie den create-rest-apiBefehl wie folgt AWS CLI auf, um eine neue API zu erstellen 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 auf, um eine Ressourcenrichtlinie an eine bestehende API anzuhängen:

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

Sie können verwenden AWS CloudFormation , um eine API mit einer Ressourcenrichtlinie zu erstellen. Das folgende Beispiel erstellt eine REST-API mit der Beispiel-Ressourcenrichtlinie,Beispiel: Verweigern des API-Datenverkehrs basierend auf der Quell-IP-Adresse oder eines IP-Bereichs.

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 API gibt {"Message“ zurück: "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 AWS Principal auf einen Principal setzen, wie zum Beispiel den folgenden:

{ "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 API verwenden, andernfalls gibt Ihre API die vorherige Fehlermeldung zurück. 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 nach dem Erstellen der API aktualisieren, müssen Sie die API bereitstellen, damit die Änderungen übernommen werden, nachdem Sie die aktualisierte Richtlinie angefügt haben. Das Aktualisieren oder Speichern der Richtlinie allein ändert das Laufzeitverhalten der API nicht. Weitere Informationen zum Bereitstellen Ihrer API finden Sie unter Stellen Sie REST-APIs in API Gateway bereit.

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 Übersicht über die Zugriffsrichtliniensprache 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 sich Ihre API in einer Opt-in-Region befindet, stellen Sie außerdem sicher, dass die Region für alle Konten in der Ressourcenrichtlinie aktiviert ist.