Uso de la autorización de IAM - Amazon API Gateway

Uso de la autorización de IAM

La autorización de IAM en las API de WebSocket es similar a la de las API REST, con las siguientes excepciones:

  • La acción execute-api admite ManageConnections además de las acciones existentes (Invoke, InvalidateCache). ManageConnections controla el acceso a la API @connections.

  • Las rutas de WebSocket utilizan un formato de ARN distinto:

    arn:aws:execute-api:region:account-id:api-id/stage-name/route-key
  • La API @connections utiliza el mismo formato de ARN que las API de REST:

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

Cuando utilice la Autorización de IAM, deberá firmar las solicitudes con Signature Version 4 (SigV4).

Por ejemplo, podría configurar la siguiente política en el cliente. Este ejemplo permite a cualquier usuario enviar un mensaje (Invoke) a todas las rutas excepto a una ruta secreta en la etapa prod e impide que se manden mensajes a los clientes conectados (ManageConnections) en todas las etapas.

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