IAM-Genehmiger verwenden - Amazon API Gateway

IAM-Genehmiger verwenden

Die IAM-Autorisierung in WebSocket-APIs ist bis auf die folgenden Ausnahmen mit der für REST-APIs vergleichbar:

  • Die Aktion execute-api unterstützt ManageConnections zusätzlich zu vorhandenen Aktionen (Invoke, InvalidateCache). ManageConnections steuert den Zugriff auf die API @connections.

  • WebSocket-Routen verwenden ein anderes ARN-Format:

    arn:aws:execute-api:region:account-id:api-id/stage-name/route-key
  • Die API @connections verwendet das gleiche ARN-Format wie REST-APIs:

    arn:aws:execute-api:region:account-id:api-id/stage-name/POST/@connections

Sie könnten z. B. die folgende Richtlinie für den Client einrichten. Dieses Beispiel ermöglicht allen Benutzern das Senden einer Nachricht (Invoke) für alle Routen, außer für eine geheime Route in der Stufe prod, und hindert alle Benutzer am Senden einer Nachricht zurück an verbundene Clients (ManageConnections) für alle Stufen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/prod/*" ] }, { "Effect": "Deny", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/prod/secret" ] }, { "Effect": "Deny", "Action": [ "execute-api:ManageConnections" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*" ] } ] }