Controlar o acesso a APIs de WebSocket com autorização do IAM - Amazon API Gateway

Controlar o acesso a APIs de WebSocket com autorização do IAM

A autorização do IAM em APIs WebSocket é semelhante à utilizada para APIs REST, com as seguintes exceções:

  • A ação execute-api oferece suporte a ManageConnections, além de ações existentes (Invoke, InvalidateCache). ManageConnections controla o acesso à API @connections.

  • As rotas do WebSocket utilizam um formato diferente de ARN:

    arn:aws:execute-api:region:account-id:api-id/stage-name/route-key
  • A API @connections utiliza o mesmo formato de ARN presente nas APIs REST:

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

Ao usar a Autorização do IAM, é necessário assinar solicitações com o Signature Version 4 (SigV4).

Por exemplo, você pode configurar a política a seguir ao cliente: Este exemplo permite que todas as pessoas enviem uma mensagem (Invoke) a todas as rotas, exceto para uma rota secreta no estágio prod, além de impedir que qualquer pessoa envie uma mensagem aos clientes conectados (ManageConnections) para todos os estágios.

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