

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.

# Zugriff auf eine REST-API mit API Gateway-Ressourcenrichtlinien steuern
<a name="apigateway-resource-policies"></a>

Amazon API Gateway-*Ressourcenrichtlinien* sind JSON-Richtliniendokumente, die Sie an eine API anhängen, um zu steuern, ob ein bestimmter Prinzipalbenutzer (normalerweise eine IAM-Rolle oder -Gruppe) die API aufrufen kann. Sie können API Gateway-Ressourcenrichtlinien verwenden, damit Ihre API sicher aufgerufen werden kann:
+ Benutzer aus einem bestimmten AWS Konto.
+ Angegebene Quell-IP-Adressbereiche oder CIDR-Blöcke.
+ Spezifizierte virtuelle private Clouds (VPCs) oder VPC-Endpunkte (in einem beliebigen Konto).

Sie können eine Ressourcenrichtlinie für jeden API-Endpunkttyp in API Gateway anhängen AWS-Managementkonsole, indem Sie die AWS CLI oder verwenden AWS SDKs. Im [privaten Bereich APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html) können Sie Ressourcenrichtlinien zusammen mit VPC-Endpunktrichtlinien verwenden, um zu steuern, welche Prinzipale Zugriff auf welche Ressourcen und Aktionen haben. Weitere Informationen finden Sie unter [Verwenden Sie VPC-Endpunktrichtlinien für private Zwecke APIs in API Gateway](apigateway-vpc-endpoint-policies.md).

 API-Gateway-Ressourcenrichtlinien unterscheiden sich von IAM-identitätsbasierten Richtlinien. IAM-identitätsbasierte Richtlinien sind IAM-Benutzern, -Gruppen oder -Rollen zugeordnet und definieren, welche Aktionen diese Identitäten mit welchen Ressourcen ausführen können. API Gateway-Ressourcenrichtlinien werden an Ressourcen angehängt. Sie können API Gateway-Ressourcenrichtlinien zusammen mit IAM-Richtlinien verwenden. Weitere Informationen finden Sie unter [Identitätsbasierte und ressourcenbasierte Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html).

**Topics**
+ [Übersicht über die Zugriffsrichtliniensprache für Amazon API Gateway](apigateway-control-access-policy-language-overview.md)
+ [So beeinflussen API Gateway-Ressourcenrichtlinien den Autorisierungs-Workflow](apigateway-authorization-flow.md)
+ [Beispiele für API Gateway-Ressourcenrichtlinien](apigateway-resource-policies-examples.md)
+ [API Gateway-Ressourcenrichtlinie erstellen und an eine API anhängen](apigateway-resource-policies-create-attach.md)
+ [AWS Bedingungsschlüssel, die in API-Gateway-Ressourcenrichtlinien verwendet werden können](apigateway-resource-policies-aws-condition-keys.md)

# Übersicht über die Zugriffsrichtliniensprache für Amazon API Gateway
<a name="apigateway-control-access-policy-language-overview"></a>

Diese Seite beschreibt die grundlegenden Elemente, die in den Ressourcenrichtlinien für Amazon API Gateway verwendet werden.

Ressourcenrichtlinien werden mit derselben Syntax wie IAM-Richtlinien spezifiziert. Vollständige Informationen zur Richtliniensprache finden Sie unter [Übersicht der IAM-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) und [AWS Identity and Access Management -Richtlinienverweis](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) im *IAM-Benutzerhandbuch*.

Informationen darüber, wie ein AWS Dienst entscheidet, ob eine bestimmte Anfrage zugelassen oder abgelehnt werden soll, finden Sie unter [Feststellen, ob eine Anfrage zugelassen oder verweigert wird](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow).

## Allgemeine Elemente einer Zugriffsrichtlinie
<a name="apigateway-common-elements-in-an-access-policy"></a>

In ihrer einfachsten Form enthält eine Ressourcenrichtlinie die folgenden Elemente:
+ **Ressourcen** — APIs sind die Amazon API Gateway Gateway-Ressourcen, für die Sie Berechtigungen zulassen oder verweigern können. In einer Richtlinie identifizieren Sie die Ressource mithilfe eines Amazon-Ressourcennamens (ARN). Sie können außerdem eine abgekürzte Syntax verwenden, die API Gateway beim Speichern einer Ressourcenrichtlinie automatisch auf den vollständigen ARN erweitert. Weitere Informationen hierzu finden Sie unter [Beispiele für API Gateway-Ressourcenrichtlinien](apigateway-resource-policies-examples.md).

  Informationen zum Format des vollständigen `Resource`-Elements finden Sie unter [Ressourcenformat für Berechtigungen zur Ausführung der API in API Gateway](api-gateway-control-access-using-iam-policies-to-invoke-api.md#api-gateway-iam-policy-resource-format-for-executing-api).
+ **Aktionen** – Für jede Ressource unterstützt Amazon API Gateway eine Reihe von Operationen. Sie identifizieren Ressourcenoperationen, die Sie zulassen (oder ablehnen) können, indem Sie Aktionsschlüsselwörter verwenden.

  Beispielsweise kann der Benutzer mit der `execute-api:Invoke`-Berechtigung die API nach einer Clientanforderung aufrufen.

  Informationen zum Format des `Action`-Elements finden Sie unter [Aktionsformat für Berechtigungen zur Ausführung der API in API Gateway](api-gateway-control-access-using-iam-policies-to-invoke-api.md#api-gateway-iam-policy-action-format-for-executing-api).
+ **Auswirkung** – Zeigt die Auswirkung, wenn der Benutzer die bestimmten Aktion anfordert – entweder `Allow` oder `Deny`. Sie können den Zugriff auf eine Ressource auch explizit verweigern. Damit können Sie sicherstellen, dass Benutzer nicht darauf zugreifen können, auch wenn der Zugriff durch eine andere Richtlinie gestattet wird. 
**Anmerkung**  
"Implizit verweigern" ist identisch mit "Standardmäßig verweigern".  
Eine "implizite Verweigerung" unterscheidet sich von einer "expliziten Verweigerung". Weitere Informationen finden Sie unter [Der Unterschied zwischen standardmäßiger und expliziter Zugriffsverweigerung](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#AccessPolicyLanguage_Interplay).
+ **Prinzipal** – das Konto oder der Benutzer, das oder der Zugriff auf die Aktionen und Ressourcen in der Anweisung hat. In einer Ressourcenrichtlinie ist der Prinzipal der Benutzer oder das Konto, der bzw. das die Berechtigung erhält.

Die folgende Beispiel-Ressourcenrichtlinie zeigt die zuvor genannten allgemeinen Richtlinienelemente. Die Richtlinie gewährt jedem Benutzer, dessen Quell-IP-Adresse sich *account-id* im Adressblock befindet*region*, Zugriff auf die API unter dem in der angegebenen Liste angegebenen Wert*123.4.5.6/24*. Die Richtlinie verweigert den Zugriff auf die API, wenn die Quell-IP des Benutzers nicht innerhalb des Bereichs liegt.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:111111111111:*"
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:111111111111:*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "123.4.5.6/24"
                }
            }
        }
    ]
}
```

------

# So beeinflussen API Gateway-Ressourcenrichtlinien den Autorisierungs-Workflow
<a name="apigateway-authorization-flow"></a>

Wenn API Gateway die an die API angefügte Ressourcenrichtlinie ausgewertet wird, wird das Ergebnis vom Authentifizierungstyp beeinflusst, den Sie für die API definiert haben, wie in den Ablaufdiagrammen in den folgenden Abschnitten dargestellt.

**Topics**
+ [Nur API Gateway-Ressourcenrichtlinie](#apigateway-authorization-flow-resource-policy-only)
+ [Lambda-Genehmiger und Ressourcenrichtlinie](#apigateway-authorization-flow-lambda)
+ [IAM-Authentifizierung und Ressourcenrichtlinie](#apigateway-authorization-flow-iam)
+ [Amazon Cognito-Authentifizierung und Ressourcenrichtlinie](#apigateway-authorization-flow-cognito)
+ [Ergebnistabellen für die Richtlinienauswertung](#apigateway-resource-policies-iam-policies-interaction)

## Nur API Gateway-Ressourcenrichtlinie
<a name="apigateway-authorization-flow-resource-policy-only"></a>

In diesem Workflow wird eine API Gateway-Ressourcenrichtlinie an die API angehängt. Es wird jedoch kein Authentifizierungstyp für die API definiert. Die Bewertung der Richtlinie beinhaltet das Suchen nach einer expliziten Erlaubnis basierend auf den eingehenden Kriterien des Aufrufers. Eine implizite Verweigerung oder eine explizite Verweigerung führt dazu, dass der Aufrufer abgelehnt wird.

![\[Der Genehmigungsablauf bei ausschließlicher Anwendung einer Ressourcenrichtlinie.\]](http://docs.aws.amazon.com/de_de/apigateway/latest/developerguide/images/apigateway-auth-resource-policy-only.png)


Im Folgenden finden Sie ein Beispiel für eine solche Ressourcenrichtlinie.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:111111111111:api-id/",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": ["192.0.2.0/24", "198.51.100.0/24" ]
                }
            }
        }
    ]
}
```

------

## Lambda-Genehmiger und Ressourcenrichtlinie
<a name="apigateway-authorization-flow-lambda"></a>

In diesem Workflow wird zusätzlich zu einer Ressourcenrichtlinie ein Lambda-Genehmiger für die API konfiguriert. Die Ressourcenrichtlinie wird in zwei Phasen ausgewertet. Bevor der Lambda-Genehmiger aufgerufen wird, evaluiert API Gateway zunächst die Richtlinie und prüft auf eine explizite Verweigerung. Wenn dies der Fall ist, wird dem Aufrufer der Zugriff sofort verweigert. Andernfalls wird der Lambda-Genehmiger aufgerufen, und es wird ein [Richtliniendokument](api-gateway-lambda-authorizer-output.md) zurückgegeben, das in Verbindung mit der Ressourcenrichtlinie ausgewertet wird. Wenn Ihr Autorisierer Caching verwendet, gibt API Gateway möglicherweise das zwischengespeicherte Richtliniendokument zurück. Das Ergebnis wird basierend auf den Angaben in [Tabelle A](#apigateway-resource-policies-iam-policies-interaction) bestimmt.

Die folgende Beispielressourcenrichtlinie ermöglicht Aufrufe nur vom VPC-Endpunkt, dessen VPC-Endpunkt-ID lautet`vpce-1a2b3c4d`. Während der "Pre-Auth"-Evaluierung können nur die Aufrufe von dem im Beispiel angegebenen VPC-Endpunkt vorwärts gehen und den Lambda-Genehmiger auswerten. Alle verbleibenden Aufrufe werden blockiert. Dieser Autorisierungs-Workflow ist derselbe, wenn Sie einen benutzerdefinierten Domainnamen für eine private API verwenden.

![\[Der Genehmigungsablauf für eine Ressourcenrichtlinie und einen Lambda-Genehmiger.\]](http://docs.aws.amazon.com/de_de/apigateway/latest/developerguide/images/apigateway-auth-lambda-resource-policy.png)


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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "arn:aws:execute-api:us-east-1:111111111111:api-id/"
            ],
            "Condition" : {
                "StringNotEquals": {
                    "aws:SourceVpce": "vpce-1a2b3c4d"
                }
            }
        }
    ]
}
```

------

## IAM-Authentifizierung und Ressourcenrichtlinie
<a name="apigateway-authorization-flow-iam"></a>

In diesem Workflow wird die IAM-Authentifizierung für die API zusätzlich zu einer Ressourcenrichtlinie konfiguriert. Nach dem Authentifizieren des Benutzers mit dem IAM-Service wertet die API die dem Benutzer zugeordneten Richtlinien und die Ressourcenrichtlinie aus. Das Ergebnis hängt davon ab, ob sich der Anrufer im selben AWS-Konto oder einem anderen als AWS-Konto dem API-Besitzer befindet. 

Wenn der Aufrufer und der API-Besitzer aus separaten Konten stammen, erlauben sowohl die IAM-Richtlinien als auch die Ressourcenrichtlinie dem Aufrufer explizit, fortzufahren. Weitere Informationen finden Sie unter [Tabelle B](#apigateway-resource-policies-iam-policies-interaction). 

Wenn sich der Aufrufer und der API-Besitzer allerdings im selben AWS-Konto befinden, müssen die Benutzerrichtlinien oder die Ressourcenrichtlinie dem Aufrufer ausdrücklich erlauben, fortzufahren. Weitere Informationen finden Sie unter [Tabelle A](#apigateway-resource-policies-iam-policies-interaction).

![\[Der Genehmigungsablauf für eine Ressourcenrichtlinie und eine IAM-Authentifizierung.\]](http://docs.aws.amazon.com/de_de/apigateway/latest/developerguide/images/apigateway-auth-iam-resource-policy.png)


Im Folgenden finden Sie ein Beispiel für eine kontoübergreifende Ressourcenrichtlinie. Unter der Annahme, dass die IAM-Richtlinie einen Zulassungseffekt enthält, erlaubt diese Ressourcenrichtlinie Aufrufe nur von der VPC, deren VPC-ID `vpc-2f09a348` ist. Weitere Informationen finden Sie unter [Tabelle B](#apigateway-resource-policies-iam-policies-interaction).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "arn:aws:execute-api:us-east-1:111111111111:api-id/"
            ],
            "Condition" : {
                "StringEquals": {
                    "aws:SourceVpc": "vpc-2f09a348"
                    }
            }
        }
    ]
}
```

------

## Amazon Cognito-Authentifizierung und Ressourcenrichtlinie
<a name="apigateway-authorization-flow-cognito"></a>

In diesem Workflow wird zusätzlich zu einer Ressourcenrichtlinie ein [Amazon Cognito-Benutzerpool](apigateway-integrate-with-cognito.md) für die API konfiguriert. API Gateway versucht zunächst, den Aufrufer über Amazon Cognito zu authentifizieren. Dies wird in der Regel über ein [JWT-Token](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html) durchgeführt, das vom Aufrufer bereitgestellt wird. Wenn die Authentifizierung erfolgreich ist, wird die Ressourcenrichtlinie unabhängig ausgewertet und eine explizite Genehmigung erforderlich. Eine Zugriffsverweigerung oder weder "Allow" (Zugriffserlaubnis) oder "Deny" (Zugriffsverweigerung) führt zu einer Zugriffsverweigerung. Es folgt ein Beispiel für eine Ressourcenrichtlinie, die zusammen mit Amazon Cognito-Benutzerpools verwendet werden könnte.

![\[Der Genehmigungsablauf für eine Ressourcenrichtlinie und einen Amazon-Cognito-Genehmiger.\]](http://docs.aws.amazon.com/de_de/apigateway/latest/developerguide/images/apigateway-auth-cognito-resource-policy.png)


Im Folgenden finden Sie ein Beispiel für eine Ressourcenrichtlinie, die Aufrufe nur von einer bestimmten Quelle zulässt IPs, vorausgesetzt, dass das Amazon Cognito Cognito-Authentifizierungstoken eine Zulassung enthält. Weitere Informationen finden Sie unter [Tabelle B](#apigateway-resource-policies-iam-policies-interaction).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:111111111111:api-id/",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": ["192.0.2.0/24", "198.51.100.0/24" ]
                }
            }
        }
    ]
}
```

------

## Ergebnistabellen für die Richtlinienauswertung
<a name="apigateway-resource-policies-iam-policies-interaction"></a>

In Tabelle A wird das jeweilige Verhalten aufgeführt, wenn der Zugriff auf eine API-Gateway-API durch eine IAM-Richtlinie oder einen Lambda-Genehmiger und eine API-Gateway-Ressourcenrichtlinie gesteuert wird, die sich beide im selben AWS-Konto befinden.


| **IAM-Richtlinie (oder Lambda-Genehmiger)** | **API-Gateway-Ressourcenrichtlinie** | **Resultierendes Verhalten** | 
| --- | --- | --- | 
| Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | 
| Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Weder Zulassen noch Verweigern | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | 
| Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Deny | Explizite Zugriffsverweigerung | 
| Weder Zulassen noch Verweigern | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | 
| Weder Zulassen noch Verweigern | Weder Zulassen noch Verweigern | Implizite Zugriffsverweigerung | 
| Weder Zulassen noch Verweigern | Deny | Explizite Zugriffsverweigerung | 
| Deny | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Explizite Zugriffsverweigerung | 
| Deny | Weder Zulassen noch Verweigern | Explizite Zugriffsverweigerung | 
| Deny | Deny | Explizite Zugriffsverweigerung | 

In Tabelle B ist das Verhalten aufgeführt, das entsteht, wenn der Zugriff auf eine API-Gateway-API durch eine IAM-Richtlinie gesteuert wird oder ein Amazon Cognito Cognito-Benutzerpool-Autorisierer und eine API Gateway Gateway-Ressourcenrichtlinie, die sich unterscheiden, gesteuert wird. AWS-Konten Wenn einer der beiden Parameter nicht zulässt (weder zulassen noch verweigern), wird der kontoübergreifende Zugriff verweigert. Ein kontoübergreifender Zugriff erfordert, dass sowohl die Ressourcenrichtlinie als auch die IAM-Richtlinie (oder ein Lambda- oder Amazon-Cognito-Benutzerpool-Genehmiger) den Zugriff ausdrücklich gewähren.


| **IAM-Richtlinie (oder Amazon-Cognito-Benutzerpool-Genehmiger)** | **API-Gateway-Ressourcenrichtlinie** | **Resultierendes Verhalten** | 
| --- | --- | --- | 
| Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | 
| Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Weder Zulassen noch Verweigern | Implizite Zugriffsverweigerung | 
| Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Deny | Explizite Zugriffsverweigerung | 
| Weder Zulassen noch Verweigern | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Implizite Zugriffsverweigerung | 
| Weder Zulassen noch Verweigern | Weder Zulassen noch Verweigern | Implizite Zugriffsverweigerung | 
| Weder Zulassen noch Verweigern | Deny | Explizite Zugriffsverweigerung | 
| Deny | Sobald Sie die Details auf dieser Seite überprüft haben, klicken Sie auf | Explizite Zugriffsverweigerung | 
| Deny | Weder Zulassen noch Verweigern | Explizite Zugriffsverweigerung | 
| Deny | Deny | Explizite Zugriffsverweigerung | 

# Beispiele für API Gateway-Ressourcenrichtlinien
<a name="apigateway-resource-policies-examples"></a>

Auf dieser Seite werden einige Beispiele zu typischen Anwendungsfällen für API Gateway Ressourcenrichtlinien vorgestellt.

In den folgenden Beispielrichtlinien wird eine vereinfachte Syntax verwendet, um die API-Ressource anzugeben. Diese vereinfachte Syntax ist eine abgekürzte Form, mit der Sie auf eine API-Ressource verweisen können, anstatt den vollständigen Amazon-Ressourcenname (ARN) anzugeben. API Gateway konvertiert die abgekürzte Syntax in den vollständigen ARN, wenn Sie die Richtlinie speichern. Sie können zum Beispiel die Ressource `execute-api:/stage-name/GET/pets` in einer Ressourcenrichtlinie angeben. API Gateway wandelt die Ressource in `arn:aws:execute-api:us-east-2:123456789012:aabbccddee/stage-name/GET/pets` um, wenn Sie die Ressourcenrichtlinie speichern. API Gateway erstellt den vollständigen ARN unter Verwendung der aktuellen Region, Ihrer AWS Konto-ID und der ID der REST-API, mit der die Ressourcenrichtlinie verknüpft ist. Sie können mit `execute-api:/*` alle Phasen, Methoden und Pfade in der aktuellen API darstellen. Informationen zur Sprache der Zugriffsichtlinie finden Sie unter [Übersicht über die Zugriffsrichtliniensprache für Amazon API Gateway](apigateway-control-access-policy-language-overview.md).

**Topics**
+ [Beispiel: Erlauben Sie Rollen in einem anderen AWS Konto, eine API zu verwenden](#apigateway-resource-policies-cross-account-example)
+ [Beispiel: Verweigern des API-Datenverkehrs basierend auf der Quell-IP-Adresse oder eines IP-Bereichs](#apigateway-resource-policies-source-ip-address-example)
+ [Beispiel: Verweigern des API-Datenverkehrs basierend auf der Quell-IP-Adresse oder eines IP-Bereichs bei Verwendung einer privaten API](#apigateway-resource-policies-source-ip-address-vpc-example)
+ [Beispiel: Erlauben von privatem API-Datenverkehr basierend auf der Quell-VPC oder dem VPC-Endpunkt](#apigateway-resource-policies-source-vpc-example)

## Beispiel: Erlauben Sie Rollen in einem anderen AWS Konto, eine API zu verwenden
<a name="apigateway-resource-policies-cross-account-example"></a>

Die folgende Beispiel-Ressourcenrichtlinie gewährt API-Zugriff in einem AWS Konto auf zwei Rollen in einem anderen AWS Konto über die Protokolle [Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html) (Sigv4) oder [Signature Version 4a](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html#how-sigv4a-works) (SigV4a). Insbesondere wird der Entwickler- und der Administratorrolle für das durch `account-id-2` identifizierte AWS Konto die `execute-api:Invoke` Aktion zur Ausführung der Aktion für die `GET` `pets` Ressource (API) in Ihrem Konto gewährt. AWS 

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

****  

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

------

## Beispiel: Verweigern des API-Datenverkehrs basierend auf der Quell-IP-Adresse oder eines IP-Bereichs
<a name="apigateway-resource-policies-source-ip-address-example"></a>

Die folgende Beispiel-Ressourcenrichtlinie verweigert (blockiert) den eingehenden Datenverkehr zu einer API, wenn dieser von zwei bestimmten Quell-IP-Adressblöcken stammt.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ]
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
               "execute-api:/*"
            ],
            "Condition" : {
                "IpAddress": {
                    "aws:SourceIp": ["192.0.2.0/24", "198.51.100.0/24" ]
                }
            }
        }
    ]
}
```

------

Wenn Sie IAM-Benutzerrichtlinien oder API Gateway-Ressourcenrichtlinien verwenden, um den Zugriff auf API Gateway oder ein beliebiges API Gateway zu steuern APIs, stellen Sie sicher, dass Ihre Richtlinien aktualisiert wurden und IPv6 Adressbereiche enthalten. Richtlinien, die nicht für den Umgang mit IPv6 Adressen aktualisiert wurden, können sich auf den Zugriff von Clients auf API Gateway auswirken, wenn sie beginnen, den Dualstack-Endpunkt zu verwenden. Weitere Informationen finden Sie unter [IPv6 Adressen in IAM-Richtlinien verwenden](api-ref.md#api-reference-service-endpoints-dualstack-iam).

## Beispiel: Verweigern des API-Datenverkehrs basierend auf der Quell-IP-Adresse oder eines IP-Bereichs bei Verwendung einer privaten API
<a name="apigateway-resource-policies-source-ip-address-vpc-example"></a>

Die folgende Beispiel-Ressourcenrichtlinie verweigert (blockiert) den eingehenden Datenverkehr zu einer privaten API, wenn dieser von zwei bestimmten Quell-IP-Adressblöcken stammt. Bei Verwendung von Private APIs `execute-api` schreibt der VPC-Endpunkt für die ursprüngliche Quell-IP-Adresse neu. Die `aws:VpcSourceIp`-Bedingung filtert die Anforderung anhand der ursprünglichen IP-Adresse des Anforderers.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ]
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
               "execute-api:/*"
            ],
            "Condition" : {
                "IpAddress": {
                    "aws:VpcSourceIp": ["192.0.2.0/24", "198.51.100.0/24"]
                }
            }
        }
    ]
}
```

------

## Beispiel: Erlauben von privatem API-Datenverkehr basierend auf der Quell-VPC oder dem VPC-Endpunkt
<a name="apigateway-resource-policies-source-vpc-example"></a>

Die folgenden Beispiel-Ressourcenrichtlinien erlauben eingehenden Datenverkehr zu einer privaten API von nur einer bestimmten Virtual Private Cloud (VPC) oder einem bestimmten VPC-Endpunkt.

In diesem Beispiel für eine Ressourcenrichtlinie wird eine Quell-VPC angegeben:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ]
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ],
            "Condition" : {
                "StringNotEquals": {
                   "aws:SourceVpc": "vpc-1a2b3c4d"
                }
            }
        }
    ]
}
```

------

In diesem Beispiel für eine Ressourcenrichtlinie wird ein Quell-VPC-Endpunkt angegeben:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ]
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "execute-api:/*"
            ],
            "Condition" : {
                "StringNotEquals": {
                    "aws:SourceVpce": "vpce-1a2b3c4d"
                }
            }
        }
    ]
}
```

------

# 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 \$1"Message“: "User: anonymous is not authorized to perform: execute-api:invoke on resource: arn:aws:execute-api:us-east-1: \$1\$1\$1\$1\$1\$1\$1\$1/\$1\$1\$1\$1/\$1\$1\$1\$1/ "\$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. 

# AWS Bedingungsschlüssel, die in API-Gateway-Ressourcenrichtlinien verwendet werden können
<a name="apigateway-resource-policies-aws-condition-keys"></a>

Die folgende Tabelle enthält AWS Bedingungsschlüssel, die in Ressourcenrichtlinien oder APIs in API Gateway für jeden Autorisierungstyp verwendet werden können.

Weitere Informationen zu AWS Bedingungsschlüsseln finden Sie unter [AWS Globale Bedingungskontextschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).


| **Bedingungsschlüssel** | **Kriterien** | **Erfordert `AuthN`?** | **Genehmigungstyp** | 
| --- | --- | --- | --- | 
| aws:CurrentTime | Keine | Nein | Alle | 
| aws:EpochTime | Keine | Nein | Alle | 
| aws:TokenIssueTime | Schlüssel ist nur in Anforderungen vorhanden, die mithilfe temporärer Sicherheitsanmeldeinformationen signiert werden. | Ja | IAM | 
| aws:MultiFactorAuthPresent | Schlüssel ist nur in Anforderungen vorhanden, die mithilfe temporärer Sicherheitsanmeldeinformationen signiert werden. | Ja | IAM | 
| aws:MultiFactorAuthAge | Schlüssel ist nur vorhanden, wenn die MFA in den Anforderungen enthalten ist. | Ja | IAM | 
| aws:PrincipalAccount | Keine | Ja | IAM | 
| aws:PrincipalArn | Keine | Ja | IAM | 
| aws:PrincipalOrgID | Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Prinzipal Mitglied einer Organisation ist. | Ja | IAM | 
| aws:PrincipalOrgPaths | Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Prinzipal Mitglied einer Organisation ist. | Ja | IAM | 
| aws:PrincipalTag |  Dieser Schlüssel ist nur dann im Anforderungskontext enthalten, wenn der Prinzipal ein IAM-Benutzer mit angefügten Tags ist. Er ist für einen Prinzipal enthalten, der eine IAM-Rolle mit angefügten Tags oder Sitzungs-Tags verwendet. | Ja | IAM | 
| aws:PrincipalType | Keine | Ja | IAM | 
| aws:Referer | Schlüssel ist nur vorhanden, wenn der Wert vom Aufrufer im HTTP-Header bereitgestellt wird. | Nein | Alle | 
| aws:SecureTransport | Keine | Nein | Alle | 
| aws:SourceArn | Keine | Nein | Alle | 
| aws:SourceIp | Keine | Nein | Alle | 
| aws:SourceVpc | Dieser Schlüssel kann nur für private Zwecke verwendet werden APIs. | Nein | Alle | 
| aws:SourceVpce | Dieser Schlüssel kann nur für private Zwecke verwendet werden APIs. | Nein | Alle | 
| aws:VpcSourceIp | Dieser Schlüssel kann nur für private Zwecke verwendet werden APIs. | Nein | Alle | 
| aws:UserAgent | Schlüssel ist nur vorhanden, wenn der Wert vom Aufrufer im HTTP-Header bereitgestellt wird. | Nein | Alle | 
| aws:userid | Keine | Ja | IAM | 
| aws:username | Keine | Ja | IAM | 