

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
<a name="apigateway-resource-policies-create-attach"></a>

Sie müssen eine API-Gateway-Ressourcenrichtlinie erstellen und diese an die API anhängen, um einem Benutzer den Zugriff auf Ihre API durch Aufruf des API-Ausführungsdienstes zu ermöglichen. Wenn Sie eine Richtlinie mit Ihrer API verknüpfen werden die Berechtigungen in der Richtlinie auf die API-Methoden angewendet. Wenn Sie die Ressourcenrichtlinie aktualisieren, müssen Sie die API erneut bereitstellen.

**Topics**
+ [Voraussetzungen](#apigateway-resource-policies-prerequisites)
+ [Verknüpfen einer Ressourcenrichtlinie mit einer API-Gateway-API](#apigateway-resource-policies-create-attach-procedure)
+ [Fehlerbehebung bei Ressourcenrichtlinien](#apigateway-resource-policies-troubleshoot)

## Voraussetzungen
<a name="apigateway-resource-policies-prerequisites"></a>

 F‼r die Aktualisierung einer API-Gateway-Ressourcenrichtlinie sind die Berechtigungen `apigateway:PATCH`und `apigateway:UpdateRestApiPolicy` erforderlich.

Bei einer Edge-optimierten oder regionalen API können Sie Ihre Ressourcenrichtlinie bereits bei der Erstellung an Ihre API anhängen, oder nachdem sie bereitgestellt wurde. Eine private API kann nicht ohne eine Ressourcenrichtlinie bereitgestellt werden. Weitere Informationen finden Sie unter [Privates REST APIs im API Gateway](apigateway-private-apis.md).

## Verknüpfen einer Ressourcenrichtlinie mit einer API-Gateway-API
<a name="apigateway-resource-policies-create-attach-procedure"></a>

Im folgenden Verfahren sehen Sie, wie Sie eine Ressourcenrichtlinie an eine API-Gateway-API anfügen.

------
#### [ AWS-Managementkonsole ]

**So hängen Sie eine Ressourcenrichtlinie an eine API Gateway-API an:**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

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

1. Wählen Sie im Hauptnavigationsbereich **Ressourcenrichtlinie**.

1. Wählen Sie **Richtlinie erstellen** aus.

1. (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.

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

1. 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 ]

Verwenden Sie den AWS CLI folgenden Befehl, um eine neue API zu erstellen und ihr eine Ressourcenrichtlinie anzuhängen: [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html)

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

Verwenden Sie den AWS CLI folgenden [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html)Befehl, 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}}\"}"'
```

Sie können Ihre Ressourcenrichtlinie auch als separate `policy.json` Datei anhängen und sie in Ihren [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html)Befehl aufnehmen. Der folgende [create-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-rest-api.html)Befehl erstellt eine neue API mit einer Ressourcenrichtlinie:

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

`policy.json` ist eine API-Gateway-Ressourcenrichtlinie wie [Beispiel: Verweigern des API-Datenverkehrs basierend auf der Quell-IP-Adresse oder eines IP-Bereichs](apigateway-resource-policies-examples.md#apigateway-resource-policies-source-ip-address-example).

------
#### [ AWS CloudFormation ]

Sie können CloudFormation es verwenden, um eine API mit einer Ressourcenrichtlinie zu erstellen. Im folgenden Beispiel wird eine REST-API mit der Beispiel-Ressourcenrichtlinie [Beispiel: Verweigern des API-Datenverkehrs basierend auf der Quell-IP-Adresse oder eines IP-Bereichs](apigateway-resource-policies-examples.md#apigateway-resource-policies-source-ip-address-example) erstellt. 

```
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
        RequestTemplates:
          application/json: '{"statusCode": 200}'
        IntegrationResponses:
          - StatusCode: 200
            ResponseTemplates:
              application/json: '{}'
      MethodResponses:
        - StatusCode: 200
          ResponseModels:
            application/json: 'Empty'
  ApiDeployment:
    Type: 'AWS::ApiGateway::Deployment'
    DependsOn:
      - MethodGet
    Properties:
      RestApiId: !Ref Api
      StageName: test
```

------

## Fehlerbehebung bei Ressourcenrichtlinien
<a name="apigateway-resource-policies-troubleshoot"></a>

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

### Meine API gibt {"Message“: "User: anonymous is not authorized to perform: execute-api:invoke on resource: arn:aws:execute-api:us-east-1: \*\*\*\*\*\*\*\*/\*\*\*\*/\*\*\*\*/ "} zurück
<a name="apigateway-resource-policies-troubleshoot-auth"></a>

Wenn Sie in Ihrer Ressourcenrichtlinie den Principal auf einen AWS Prinzipal festlegen, wie zum Beispiel:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111111111111:role/developer",
                    "arn:aws:iam::111111111111:role/Admin"
                ]
            },
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/stage/GET/pets"
            ]
        }
    ]
}
```

------

Dann müssen Sie die `AWS_IAM`-Genehmigung für jede einzelne Methode in Ihrer API verwenden, andernfalls gibt Ihre API die o. g. Fehlermeldung zurück. Weitere Anweisungen zum Aktivieren der `AWS_IAM`-Genehmigung für eine Methode finden Sie unter [Methoden für REST APIs in API Gateway](how-to-method-settings.md).

### Meine Ressourcenrichtlinie aktualisiert nicht
<a name="apigateway-resource-policies-troubleshoot-deploy"></a>

 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 [REST-APIs in API Gateway bereitstellen](how-to-deploy-api.md). 

### Meine Ressourcenrichtlinie gibt den folgenden Fehler zurück: „Invalid policy document“ (Ungültiges Richtliniendokument). Bitte überprüfen Sie die Richtliniensyntax und stellen Sie sicher, dass die Prinzipale gültig sind.
<a name="apigateway-resource-policies-troubleshoot-invalid-principal"></a>

Als ersten Schritt für die Fehlerbehebung empfehlen wir eine Überprüfung der Richtliniensyntax. Weitere Informationen finden Sie unter [Übersicht über die Zugriffsrichtliniensprache für Amazon API Gateway](apigateway-control-access-policy-language-overview.md). Außerdem empfehlen wir eine Überprüfung der Gültigkeit aller angegebenen Prinzipale und dass diese nicht gelöscht wurden.

Wenn sich Ihre API in einer [Opt-in-Region](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html?icmpid=docs_homepage_addtlrcs#optinregion) befindet, sollten Sie weiterhin sicherstellen, dass die Region für alle Konten in der Ressourcenrichtlinie aktiviert ist. 