Controllo degli accessi alle API WebSocket con l'autorizzazione IAM - Amazon API Gateway

Controllo degli accessi alle API WebSocket con l'autorizzazione IAM

L'autorizzazione IAM nelle API WebSocket è 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.

  • Gli instradamenti WebSocket utilizzano un formato ARN differente:

    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.

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