Controlar el acceso para invocar una API - Amazon API Gateway

Controlar el acceso para invocar una API

En esta sección, obtendrá información sobre el modelo de permisos para controlar el acceso a su API mediante permisos de IAM. Mostramos una plantilla de declaración de política de IAM y la referencia de la declaración de política. La referencia de la declaración de política incluye los formatos de los campos Action y Resource relacionados con el servicio de ejecución de la API. Utilice estas referencias para crear su declaración de política de IAM. Cuando cree la declaración de política de IAM, es posible que deba tener en cuenta la forma en que las políticas de recursos de API Gateway afectan al flujo de trabajo de autorización. Para obtener más información, consulte Cómo afectan las políticas de recursos de API Gateway al flujo de trabajo de autorización.

Para API privadas, debe utilizar una combinación de una política de recursos de API Gateway y una política de punto de enlace de la VPC. Para obtener más información, consulte los siguientes temas:

Controlar quién puede llamar a una API de API Gateway con políticas de IAM

Para controlar quién puede o no puede llamar a una API implementada con permisos de IAM, cree un documento de política de IAM con los permisos necesarios. A continuación, se muestra una plantilla para un documento de política como este.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Permission", "Action": [ "execute-api:Execution-operation" ], "Resource": [ "arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path" ] } ] }

Aquí, Permission se sustituirá por Allow o Deny dependiendo de si desea conceder o revocar los permisos incluidos. Execution-operation se sustituirá por las operaciones compatibles con el servicio de ejecución de la API. METHOD_HTTP_VERB hace referencia a un verbo HTTP compatible con los recursos especificados. Resource-path es el marcador de posición de la ruta URL de una instancia de Resource de la API implementada que admite el METHOD_HTTP_VERB mencionado. Para obtener más información, consulte Referencia de instrucciones de políticas de IAM para ejecutar la API en API Gateway.

nota

Para que las políticas de IAM sean eficaces, debe haber habilitado la autenticación de IAM en los métodos de API configurando AWS_IAM para la propiedad authorizationType de los métodos. En caso contrario, estos métodos de API serán accesibles públicamente.

Por ejemplo, para conceder a un usuario permiso para ver una lista de mascotas expuesta por una API determinada, pero denegarle permiso para agregar una mascota a la lista, se podría incluir la siguiente instrucción en la política de IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/pets" ] }, { "Effect": "Deny", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/POST/pets" ] } ] }

Para conceder a un usuario permiso para ver una mascota específica expuesta por una API que se configura como GET /pets/{petId}, podría incluir la siguiente declaración en la política de IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/pets/a1b2" ] } ] }

Referencia de instrucciones de políticas de IAM para ejecutar la API en API Gateway

La siguiente información describe el formato de Action y Resource de las instrucciones de política de IAM de permisos de acceso para ejecutar una API.

Formato de Action de permisos para ejecutar la API en API Gateway

La expresión Action de ejecución de API tiene el siguiente formato general:

execute-api:action

donde action es una acción de ejecución de API disponible:

  • *, que representa todas las acciones siguientes.

  • Invoke, que se utiliza para invocar una API previa solicitud del cliente.

  • InvalidateCache, que se utiliza para invalidar la caché de API previa solicitud del cliente.

Formato de Resource de permisos para ejecutar la API en API Gateway

La expresión Resource de ejecución de API tiene el siguiente formato general:

arn:aws:execute-api:region:account-id:api-id/stage-name/HTTP-VERB/resource-path-specifier

donde:

  • region es la región de AWS (como us-east-1 o * para todas las regiones de AWS) que se corresponde con la API implementada para el método.

  • account-id es el ID de cuenta de 12 dígitos de AWS del propietario de la API de REST.

  • api-id es el identificador que API Gateway asignó a la API para el método.

  • stage-name es el nombre de la etapa asociada al método.

  • HTTP-VERB es el verbo HTTP del método. Puede ser uno de las siguientes: GET, POST, PUT, DELETE, PATCH.

  • resource-path-specifier es la ruta al método deseado.

nota

Si especifica un comodín (*), la expresión Resource aplica el comodín al resto de la expresión.

Algunos ejemplos de expresiones de recursos incluyen:

  • arn:aws:execute-api:*:*:* para cualquier ruta de recurso en cualquier etapa, para cualquier API de cualquier región de AWS.

  • arn:aws:execute-api:us-east-1:*:* para cualquier ruta de recurso en cualquier etapa, para cualquier API en la región de AWS us-east-1.

  • arn:aws:execute-api:us-east-1:*:api-id/* para cualquier ruta de recurso en cualquier etapa, para la API con el identificador api-id de la región de AWS us-east-1.

  • arn:aws:execute-api:us-east-1:*:api-id/test/* para cualquier ruta de recurso en la etapa de test, para la API con el identificador de api-id de la región de AWS us-east-1.

Para obtener más información, consulte Referencia del nombre de recurso de Amazon (ARN) de API Gateway.