Cómo funciona Amazon API Gateway con IAM - Amazon API Gateway

Cómo funciona Amazon API Gateway con IAM

Antes de utilizar IAM para administrar el acceso a API Gateway, debe saber qué características de IAM están disponibles para usarlas con API Gateway. Para obtener una vista de alto nivel de cómo API Gateway y otros servicios de AWS funcionan con IAM, consulte Servicios de AWS que funcionan con IAM en la Guía del usuario de IAM.

Políticas basadas en identidades de API Gateway

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. API Gateway admite acciones, claves de condiciones y recursos específicos. Para obtener más información sobre las acciones, recursos y claves de condiciones específicos de API Gateway, consulte Acciones, recursos y claves de condición de la administración de Amazon API Gateway y Acciones, recursos y claves de condición de la administración de Amazon API Gateway V2. Para obtener información sobre todos los elementos que utiliza en una política JSON, consulte IAM JSON Policy Elements Reference en la Guía del usuario de IAM.

En el siguiente ejemplo se muestra una política basada en identidades que permite a un usuario crear o actualizar solo API REST privadas. Para obtener más ejemplos, consulte Ejemplos de políticas basadas en identidades de Amazon API Gateway.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ScopeToPrivateApis", "Effect": "Allow", "Action": [ "apigateway:PATCH", "apigateway:POST", "apigateway:PUT" ], "Resource": [ "arn:aws:apigateway:us-east-1::/restapis", "arn:aws:apigateway:us-east-1::/restapis/??????????" ], "Condition": { "ForAllValues:StringEqualsIfExists": { "apigateway:Request/EndpointType": "PRIVATE", "apigateway:Resource/EndpointType": "PRIVATE" } } }, { "Sid": "AllowResourcePolicyUpdates", "Effect": "Allow", "Action": [ "apigateway:UpdateRestApiPolicy" ], "Resource": [ "arn:aws:apigateway:us-east-1::/restapis/*" ] } ] }

Acciones

El elemento Action de una política JSON describe las acciones que puede utilizar para permitir o denegar el acceso en una política.

Las acciones de políticas de API Gateway incluyen el siguiente prefijo antes de la acción: apigateway:. Las instrucciones de la política deben incluir un elemento Action o un elemento NotAction. API Gateway define su propio conjunto de acciones que describen las tareas que se pueden realizar con este servicio.

La expresión Action de administración de API tiene el formato apigateway:action, donde acción es una de las siguientes acciones de API Gateway: GET, POST, PUT, DELETE, PATCH (para actualizar los recursos) o *, que representa todas las acciones anteriores.

Algunos ejemplos de la expresión Action incluyen:

  • apigateway:* para todas las acciones de API Gateway.

  • apigateway:GET solo para la acción GET en API Gateway.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

"Action": [ "apigateway:action1", "apigateway:action2"

Para obtener información acerca de los verbos HTTP que se deben utilizar para operaciones específicas de API Gateway, consulte Amazon API Gateway Version 1 API Reference (API REST) y Amazon API Gateway Version 2 API Reference (API HTTP y WebSocket).

Para obtener más información, consulte Ejemplos de políticas basadas en identidades de Amazon API Gateway.

Recursos

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Resource de la política JSON especifica el objeto u objetos a los que se aplica la acción. Las instrucciones deben contener un elemento Resource o NotResource. Como práctica recomendada, especifique un recurso utilizando el Nombre de recurso de Amazon (ARN). Puede hacerlo para acciones que admitan un tipo de recurso específico, conocido como permisos de nivel de recurso.

Para las acciones que no admiten permisos de nivel de recurso, como las operaciones de descripción, utilice un carácter comodín (*) para indicar que la instrucción se aplica a todos los recursos.

"Resource": "*"

Los recursos de API Gateway tienen el siguiente formato de ARN:

arn:aws:apigateway:region::resource-path-specifier

Por ejemplo, para especificar una API REST con el identificador api-id y sus subrecursos, como los autorizadores en la instrucción, utilice el siguiente ARN:

"Resource": "arn:aws:apigateway:us-east-2::/restapis/api-id/*"

Para especificar todas las API REST y los subrecursos que pertenecen a una cuenta específica, utilice el carácter comodín (*):

"Resource": "arn:aws:apigateway:us-east-2::/restapis/*"

Para ver una lista de los tipos de recursos de API Gateway y sus ARN, consulte Referencia del nombre de recurso de Amazon (ARN) de API Gateway.

Claves de condición

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Condition (o bloque de Condition) permite especificar condiciones en las que entra en vigor una instrucción. El elemento Condition es opcional. Puede crear expresiones condicionales que utilicen operadores de condición, tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud.

Si especifica varios elementos de Condition en una instrucción o varias claves en un único elemento de Condition, AWS las evalúa mediante una operación AND lógica. Si especifica varios valores para una única clave de condición, AWS evalúa la condición con una operación lógica OR. Se deben cumplir todas las condiciones antes de que se concedan los permisos de la instrucción.

También puede utilizar variables de marcador de posición al especificar condiciones. Por ejemplo, puede conceder un permiso de usuario de IAM para acceder a un recurso solo si está etiquetado con su nombre de usuario de IAM. Para más información, consulte Elementos de la política de IAM: variables y etiquetas en la Guía del usuario de IAM.

AWS admite claves de condición globales y claves de condición específicas del servicio. Para ver todas las claves de condición globales de AWS, consulte Claves de contexto de condición globales de AWS en la Guía del usuario de IAM.

API Gateway define su propio conjunto de claves de condición y también admite el uso de algunas claves de condición globales. Para ver una lista de claves de condición de API Gateway, consulte Condition Keys for Amazon API Gateway en la Guía del usuario de IAM. Para obtener más información acerca de las acciones y los recursos con los que puede utilizar una clave de condición, consulte Actions Defined by Amazon API Gateway.

Para obtener información sobre el etiquetado, incluido el control de acceso basado en atributos, consulte Etiquetado de recursos de API Gateway.

Ejemplos

Para ver ejemplos de políticas basadas en identidades de API Gateway, consulte Ejemplos de políticas basadas en identidades de Amazon API Gateway.

Políticas basadas en recursos de API Gateway

Las políticas basadas en recursos son documentos de política JSON que especifican qué acciones puede realizar una entidad principal especificada en el recurso de API Gateway y bajo qué condiciones. API Gateway admite políticas de permisos basadas en recursos para las API de REST. Las políticas de recursos se utilizan para controlar quién puede invocar una API REST. Para obtener más información, consulte Control del acceso a una API de REST con políticas de recursos de API Gateway.

Ejemplos

Para ver ejemplos de políticas basadas en recursos de API Gateway, consulte Ejemplos de políticas de recursos de API Gateway.

Autorización basada en etiquetas de API Gateway

Puede asociar etiquetas a recursos de API Gateway o transmitir etiquetas en una solicitud a API Gateway. Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el elemento de condición de una política utilizando las claves de condición apigateway:ResourceTag/key-name, aws:RequestTag/key-name o aws:TagKeys. Para obtener más información acerca de las etiquetas para recursos de API Gateway, consulte Uso de etiquetas para controlar el acceso a los recursos API de REST de API Gateway.

Para consultar un ejemplo de política basada en la identidad para limitar el acceso a un recurso en función de las etiquetas de ese recurso, consulte Uso de etiquetas para controlar el acceso a los recursos API de REST de API Gateway.

Roles de IAM de API Gateway

Un rol de IAM es una entidad de la cuenta de AWS que dispone de permisos específicos.

Uso de credenciales temporales con API Gateway

Puede utilizar credenciales temporales para iniciar sesión con federación, asumir un rol de IAM o asumir un rol de acceso entre cuentas. Las credenciales de seguridad temporales se obtienen mediante una llamada a operaciones de la API de AWS STS, como AssumeRole o GetFederationToken.

API Gateway admite el uso de credenciales temporales.

Roles vinculados a servicios

Los roles vinculados a servicios permiten a los servicios de AWS obtener acceso a los recursos de otros servicios para completar una acción en su nombre. Los roles vinculados a servicios aparecen en la cuenta de IAM y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios.

API Gateway admite roles vinculados a servicios. Para obtener información sobre cómo crear o administrar roles vinculados a servicios de API Gateway, consulte Uso de roles vinculados a servicios para API Gateway.

Roles de servicio

Un servicio puede asumir un rol de servicio en su nombre. Un rol de servicio permite que el servicio obtenga acceso a los recursos de otros servicios para completar una acción en su nombre. Los roles de servicio aparecen en la cuenta de IAM y son propiedad de la cuenta, por lo que un administrador IAM puede cambiar los permisos para este rol. Sin embargo, hacerlo podría deteriorar la funcionalidad del servicio.

API Gateway admite roles de servicio.