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