Contrôlez l'accès aux WebSocket API avec l'autorisation IAM - APIPasserelle Amazon

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Contrôlez l'accès aux WebSocket API avec l'autorisation IAM

L'autorisation IAM dans WebSocket les API est similaire à celle des API REST, avec les exceptions suivantes :

  • L'action execute-api prend en charge ManageConnections en plus des actions existantes (Invoke, InvalidateCache). ManageConnections contrôle l'accès à l'API @connections.

  • WebSocket les routes utilisent un format d'ARN différent :

    arn:aws:execute-api:region:account-id:api-id/stage-name/route-key
  • L'API @connections utilise le même format ARN que les API REST :

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

Lorsque vous utilisez Autorisation IAM, vous devez signer les requêtes avec Signature Version 4 (SigV4).

Par exemple, vous pouvez configurer la stratégie suivante pour le client. Cet exemple autorise tout le monde à envoyer un message (Invoke) pour toutes les routes, sauf pour une route secrète de l'étape prod, et empêche tout le monde de renvoyer un message aux clients connectés (ManageConnections) pour toutes les étapes.

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