Controlla l'accesso alle WebSocket API con l'autorizzazione IAM - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Controlla l'accesso alle WebSocket API con l'autorizzazione IAM

L'autorizzazione IAM nelle WebSocket API è simile a quella per le API REST, con le seguenti eccezioni:

  • L'azione execute-api supporta ManageConnections oltre alle azioni esistenti (Invoke, InvalidateCache). ManageConnections controlla l'accesso all'API @connections.

  • WebSocket i percorsi utilizzano un formato ARN diverso:

    arn:aws:execute-api:region:account-id:api-id/stage-name/route-key
  • L'API @connections usa lo stesso formato ARN delle API REST:

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

Quando usi l'autorizzazione IAM è necessario firmare le richieste con Signature Version 4 (SigV4).

Puoi, ad esempio, configurare la seguente policy per il client. Questo esempio consente a chiunque di inviare un messaggio (Invoke) per tutti gli instradamenti ad eccezione di un instradamento segreto nella fase prod e impedisce l'invio di un messaggio da qualunque utente ai client connessi (ManageConnections) in tutte le fasi.

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