¿Cómo activo la autenticación de IAM para las API de REST de API Gateway?

4 minutos de lectura
0

Quiero activar la autenticación de AWS Identity and Access Management (IAM) para acceder a mi API de REST de Amazon API Gateway (API Gateway). ¿Cómo la configuro?

Descripción corta

Active la autenticación de IAM para un método de API en la consola de API Gateway. A continuación, use las políticas de IAM y las políticas de recursos para designar los permisos para los usuarios de la API.

Para obtener más información sobre las diferentes características de seguridad disponibles para API Gateway, consulte Controlling and managing access to a REST API in API Gateway.

Resolución

Activar la autenticación de IAM para la API de REST

1.    En la consola de API Gateway, elija el nombre de su API.

2.    En el panel Recursos, elija un método (como GET o POST) para el que quiera activar la autenticación de IAM.

3.    En el panel Ejecución de método, seleccione Solicitud de método.

4.    En Configuración, para Autorización, elija el icono del lápiz (Editar). A continuación, seleccione AWS_IAM en la lista desplegable y, a continuación, seleccione el icono de la marca de verificación (Actualizar).

5.    (Opcional) Repita los pasos 2 a 4 para cada método de API para el que quiera activar la autenticación de IAM.

6.    Implemente su API para que los cambios surtan efecto.

7.    En el panel Stage Editor, copie la URL de invocación. Usará la URL de invocación más adelante para las pruebas.

Para obtener más información, consulte Set up a method using the API Gateway console. Consulte también Obtain an API's invoke URL in the API Gateway console.

Otorgar autorización de API a un grupo de usuarios de IAM

1.    Determine los permisos que desea que tengan los usuarios de la API. Para obtener más información, consulte Control access to an API with IAM permissions.

2.    Cree una política de IAM que incluya los permisos necesarios. Para ver ejemplos e instrucciones de formato, consulte lo siguiente:
Control access for invoking an API
IAM policy examples for API execution permissions
Amazon API Gateway identity-based policy examples
Nota: Para completar las instrucciones de prueba que aparecen al final de este artículo, debe aceptar los permisos de invocación.

3.    Adjunte su política de IAM a un grupo de IAM mediante una de las siguientes acciones:
Adjunte la política a un grupo de IAM existente.
Alternativa:
Adjunte la política al crear un nuevo grupo de IAM.

Para obtener más información, consulte Create and attach a policy to an IAM User.

Nota: Es una práctica recomendada conceder el acceso en el nivel de grupo de IAM.

(Opcional) Configurar una política de recursos de API Gateway

También puede usar las políticas de recursos de API Gateway (permisos basados en recursos) junto con las políticas de IAM (permisos basados en la identidad) para administrar el acceso a su API. Para obtener más información, consulte IAM authentication and resource policy y Políticas basadas en identidad y políticas basadas en recursos.

Importante: Si deniega el acceso a su API con un tipo de política de IAM y permite el acceso con otro tipo de política, se denegará el acceso. Para obtener más información, consulte Policy evaluation outcome tables.

Enviar una solicitud para probar la configuración de autenticación

Use la aplicación Postman para enviar una solicitud a su recurso de API mediante el método para el que activó la autenticación de IAM.

Nota: Para autenticar manualmente las solicitudes que se envían a API Gateway con otra herramienta o entorno, utilice el proceso de firma Signature Version 4. Para obtener más información, consulte Signing requests.

1.    En Postman, en la pestaña Authorization, haga lo siguiente:
En Type, elija AWS Signature.
Para AccessKey y SecretKey, introduzca el ID de la clave de acceso de IAM y la clave de acceso secreta de un usuario de IAM. El usuario de IAM debe estar en el grupo de IAM que tiene acceso a su API.

2.    En el campo Enter request URL, pegue la URL de invocación de la API. Si ha activado la autenticación de IAM en un método para un recurso de API concreto, añada el nombre del recurso al final de la URL de invocación.

Nota: La URL de solicitud completa con el nombre del recurso tiene el siguiente aspecto: https://restApiId.execute-api.region.amazonaws.com/stageName/resourceName

Una solicitud autenticada devuelve el código de respuesta 200 OK. Una solicitud no autorizada devuelve el mensaje Falta el token de autenticación y el código de respuesta 403 prohibido.


Información relacionada

How API Gateway resource policies affect authorization workflow