Steuern Sie den Zugriff auf WebSocket APIs mit IAM-Autorisierung - 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.

Steuern Sie den Zugriff auf WebSocket APIs mit IAM-Autorisierung

Die IAM-Autorisierung in WebSocket APIs ähnelt der für REST-APIs, mit den folgenden Ausnahmen:

  • 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
Wichtig

Wenn Sie die IAM-Autorisierung verwenden, müssen Sie Anforderungen mit Signature Version 4 (SigV4) signieren.

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/*" ] } ] }