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.
Beispiele für identitätsbasierte Richtlinien von Amazon API Gateway
Standardmäßig sind IAM Benutzer und Rollen nicht berechtigt, API Gateway-Ressourcen zu erstellen oder zu ändern. Sie können auch keine Aufgaben mit dem AWS Management Console AWS CLI, oder ausführen AWS SDKs. Ein IAM Administrator muss IAM Richtlinien erstellen, die Benutzern und Rollen die Berechtigung gewähren, bestimmte API Operationen mit den angegebenen Ressourcen auszuführen, die sie benötigen. Der Administrator muss diese Richtlinien dann den IAM Benutzern oder Gruppen zuordnen, für die diese Berechtigungen erforderlich sind.
Informationen zum Erstellen von IAM Richtlinien finden Sie im IAMBenutzerhandbuch unter „Richtlinien erstellen“ auf der JSON Registerkarte. Informationen zu den spezifischen Aktionen, Ressourcen und Bedingungen für API Gateway finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon API Gateway Management und Aktionen, Ressourcen und Bedingungsschlüssel für Amazon API Gateway Management V2.
Themen
- Bewährte Methoden für Richtlinien
- Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer
- Einfache Leseberechtigungen
- Nur für Autorisierer erstellen REQUEST JWT
- Erfordern, dass der execute-api-Standard-Endpunkt deaktiviert ist
- Erlaubt Benutzern, nur private Daten zu erstellen oder zu aktualisieren REST APIs
- Erfordert, dass Routen autorisiert sind API
- Verhindern Sie, dass ein Benutzer einen VPC Link erstellt oder aktualisiert
Bewährte Methoden für Richtlinien
Identitätsbasierte Richtlinien legen fest, ob jemand API Gateway-Ressourcen in Ihrem Konto erstellen, darauf zugreifen oder sie löschen kann. Dies kann zusätzliche Kosten für Ihr verursachen AWS-Konto. Befolgen Sie beim Erstellen oder Bearbeiten identitätsbasierter Richtlinien die folgenden Anleitungen und Empfehlungen:
-
Beginnen Sie mit AWS verwalteten Richtlinien und wechseln Sie zu Berechtigungen mit den geringsten Rechten — Verwenden Sie die AWS verwalteten Richtlinien, die Berechtigungen für viele gängige Anwendungsfälle gewähren, um Ihren Benutzern und Workloads zunächst Berechtigungen zu gewähren. Sie sind in Ihrem verfügbar. AWS-Konto Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie vom AWS Kunden verwaltete Richtlinien definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind. Weitere Informationen finden Sie AWS im IAMBenutzerhandbuch unter AWS Verwaltete Richtlinien oder Verwaltete Richtlinien für Jobfunktionen.
-
Berechtigungen mit den geringsten Rechten anwenden — Wenn Sie Berechtigungen mit IAM Richtlinien festlegen, gewähren Sie nur die Berechtigungen, die für die Ausführung einer Aufgabe erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als die geringsten Berechtigungen. Weitere Informationen zur Verwendung IAM zum Anwenden von Berechtigungen finden Sie IAMim Benutzerhandbuch unter Richtlinien und Berechtigungen. IAM
-
Verwenden Sie Bedingungen in IAM Richtlinien, um den Zugriff weiter einzuschränken — Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen einzuschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um anzugeben, dass alle Anfragen mit gesendet werden müssenSSL. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese über einen bestimmten Zweck verwendet werden AWS-Service, z. AWS CloudFormation B. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter IAMJSONRichtlinienelemente: Bedingung.
-
Verwenden Sie IAM Access Analyzer, um Ihre IAM Richtlinien zu validieren, um sichere und funktionale Berechtigungen zu gewährleisten. IAM Access Analyzer validiert neue und bestehende Richtlinien, sodass die Richtlinien der IAM Richtliniensprache (JSON) und den IAM bewährten Methoden entsprechen. IAMAccess Analyzer bietet mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen, um Sie bei der Erstellung sicherer und funktionaler Richtlinien zu unterstützen. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter Überprüfen von Richtlinien mit IAM Access Analyzer.
-
Multi-Faktor-Authentifizierung erforderlich (MFA) — Wenn Sie ein Szenario haben, in dem IAM Benutzer oder ein Root-Benutzer erforderlich sind AWS-Konto, aktivieren Sie die Option MFA für zusätzliche Sicherheit. Wenn Sie festlegen möchten, MFA wann API Operationen aufgerufen werden, fügen Sie MFA Bedingungen zu Ihren Richtlinien hinzu. Weitere Informationen finden Sie unter Sicherer API Zugriff mit MFA im IAMBenutzerhandbuch.
Weitere Informationen zu bewährten Methoden finden Sie unter Bewährte Sicherheitsmethoden IAM im IAM Benutzerhandbuch. IAM
Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer
Dieses Beispiel zeigt, wie Sie eine Richtlinie erstellen könnten, die es IAM Benutzern ermöglicht, die internen und verwalteten Richtlinien einzusehen, die mit ihrer Benutzeridentität verknüpft sind. Diese Richtlinie umfasst Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe von oder. AWS CLI AWS API
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
Einfache Leseberechtigungen
Diese Beispielrichtlinie gibt einem Benutzer die Erlaubnis, Informationen über alle Ressourcen einer HTTP oder WebSocket API mit der Kennung a123456789
in der AWS Region us-east-1 abzurufen. Die Ressource arn:aws:apigateway:
umfasst alle Unterressourcen API wie Autorisierer und Bereitstellungen.us-east-1
::/apis/a123456789/*
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:GET" ], "Resource": [ "arn:aws:apigateway:
us-east-1
::/apis/a123456789/*" ] } ] }
Nur für Autorisierer erstellen REQUEST JWT
Diese Beispielrichtlinie ermöglicht es einem Benutzer, nur APIs mit REQUEST
oder mit JWT
Autorisierern zu erstellen, auch durch Import. In Resource
diesem Abschnitt der Richtlinie müssen Ressourcen maximal 10 Zeichen lang sein. Davon ausgenommen sind Unterressourcen von. arn:aws:apigateway:us-east-1::/apis/??????????
API In diesem Beispiel wird ForAllValues
in dem Condition
Abschnitt verwendet, da Benutzer mehrere Autorisierer gleichzeitig erstellen können, indem sie einen importieren. API
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OnlyAllowSomeAuthorizerTypes", "Effect": "Allow", "Action": [ "apigateway:PUT", "apigateway:POST", "apigateway:PATCH" ], "Resource": [ "arn:aws:apigateway:us-east-1::/apis", "arn:aws:apigateway:us-east-1::/apis/??????????", "arn:aws:apigateway:us-east-1::/apis/*/authorizers", "arn:aws:apigateway:us-east-1::/apis/*/authorizers/*" ], "Condition": { "ForAllValues:StringEqualsIfExists": { "apigateway:Request/AuthorizerType": [ "REQUEST", "JWT" ] } } } ] }
Erfordern, dass der execute-api
-Standard-Endpunkt deaktiviert ist
Diese Beispielrichtlinie ermöglicht es Benutzern, eine zu erstellen, zu aktualisieren oder zu importierenAPI, mit der entsprechenden Anforderung. DisableExecuteApiEndpoint
true
Wenn dies DisableExecuteApiEndpoint
der true
Fall ist, können Clients den execute-api
Standardendpunkt nicht verwenden, um einen API aufzurufen.
Wir verwenden die BoolIfExists
Bedingung, um einen Aktualisierungsaufruf zu bearbeitenAPI, bei dem der DisableExecuteApiEndpoint
Bedingungsschlüssel nicht ausgefüllt ist. Wenn ein Benutzer versucht, eine zu erstellen oder zu importierenAPI, wird der DisableExecuteApiEndpoint
Bedingungsschlüssel immer aufgefüllt.
Da die apis/*
Ressource auch Unterressourcen wie Autorisierer oder Methoden erfasst, beschränken wir sie ausdrücklich nur auf eine APIs Deny
Anweisung.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DisableExecuteApiEndpoint", "Effect": "Allow", "Action": [ "apigateway:PATCH", "apigateway:POST", "apigateway:PUT" ], "Resource": [ "arn:aws:apigateway:us-east-1::/apis", "arn:aws:apigateway:us-east-1::/apis/*" ], "Condition": { "BoolIfExists": { "apigateway:Request/DisableExecuteApiEndpoint": true } } }, { "Sid": "ScopeDownToJustApis", "Effect": "Deny", "Action": [ "apigateway:PATCH", "apigateway:POST", "apigateway:PUT" ], "Resource": [ "arn:aws:apigateway:us-east-1::/apis/*/*" ] } ] }
Erlaubt Benutzern, nur private Daten zu erstellen oder zu aktualisieren REST APIs
In dieser Beispielrichtlinie werden Bedingungsschlüssel verwendet, um zu verlangen, dass ein Benutzer nur etwas erstellt PRIVATE
APIs, und um zu verhindern, dass Aktualisierungen API von einem anderen Typ PRIVATE
zu einem anderen Typ geändert REGIONAL
werden, wie z.
Wir haben ForAllValues
früher verlangt, dass jedes EndpointType
Hinzufügen zu einem API istPRIVATE
. Wir verwenden einen Ressourcenzustandsschlüssel, um jedes Update API so lange wie möglich zuzulassenPRIVATE
. ForAllValues
gilt nur, wenn ein Bedingungsschlüssel vorhanden ist.
Wir verwenden den non-greedy matcher (?
) für einen expliziten Abgleich, um API IDs zu verhindern, dass API Ressourcen wie Autorisierer zugelassen werden.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ScopePutToPrivateApis", "Effect": "Allow", "Action": [ "apigateway:PUT" ], "Resource": [ "arn:aws:apigateway:us-east-1::/restapis", "arn:aws:apigateway:us-east-1::/restapis/??????????" ], "Condition": { "ForAllValues:StringEquals": { "apigateway:Resource/EndpointType": "PRIVATE" } } }, { "Sid": "ScopeToPrivateApis", "Effect": "Allow", "Action": [ "apigateway:DELETE", "apigateway:PATCH", "apigateway:POST" ], "Resource": [ "arn:aws:apigateway:us-east-1::/restapis", "arn:aws:apigateway:us-east-1::/restapis/??????????" ], "Condition": { "ForAllValues:StringEquals": { "apigateway:Request/EndpointType": "PRIVATE", "apigateway:Resource/EndpointType": "PRIVATE" } } }, { "Sid": "AllowResourcePolicyUpdates", "Effect": "Allow", "Action": [ "apigateway:UpdateRestApiPolicy" ], "Resource": [ "arn:aws:apigateway:us-east-1::/restapis/*" ] } ] }
Erfordert, dass Routen autorisiert sind API
Diese Richtlinie führt dazu, dass Versuche, eine Route zu erstellen oder zu aktualisieren (einschließlich durch Import), fehlschlagen, wenn die Route keine Autorisierung hat. ForAnyValue
wird als „false“ ausgewertet, wenn der Schlüssel nicht vorhanden ist, z. B. wenn eine Route nicht erstellt oder aktualisiert wird. Wir verwenden ForAnyValue
, da durch den Import mehrere Routen erstellt werden können.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUpdatesOnApisAndRoutes", "Effect": "Allow", "Action": [ "apigateway:POST", "apigateway:PATCH", "apigateway:PUT" ], "Resource": [ "arn:aws:apigateway:us-east-1::/apis", "arn:aws:apigateway:us-east-1::/apis/??????????", "arn:aws:apigateway:us-east-1::/apis/*/routes", "arn:aws:apigateway:us-east-1::/apis/*/routes/*" ] }, { "Sid": "DenyUnauthorizedRoutes", "Effect": "Deny", "Action": [ "apigateway:POST", "apigateway:PATCH", "apigateway:PUT" ], "Resource": [ "arn:aws:apigateway:us-east-1::/apis", "arn:aws:apigateway:us-east-1::/apis/*" ], "Condition": { "ForAnyValue:StringEqualsIgnoreCase": { "apigateway:Request/RouteAuthorizationType": "NONE" } } } ] }
Verhindern Sie, dass ein Benutzer einen VPC Link erstellt oder aktualisiert
Diese Richtlinie verhindert, dass ein Benutzer einen VPC Link erstellt oder aktualisiert. Über einen VPC Link können Sie Ressourcen innerhalb eines Amazon VPC für Kunden außerhalb des verfügbar machenVPC.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyVPCLink", "Effect": "Deny", "Action": [ "apigateway:POST", "apigateway:PUT", "apigateway:PATCH" ], "Resource": [ "arn:aws:apigateway:
us-east-1
::/vpclinks", "arn:aws:apigateway:us-east-1
::/vpclinks/*" ] } ] }