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í,
se sustituirá por Permission
Allow
o Deny
dependiendo de si desea conceder o revocar los permisos incluidos.
se sustituirá por las operaciones compatibles con el servicio de ejecución de la API. Execution-operation
hace referencia a un verbo HTTP compatible con los recursos especificados. METHOD_HTTP_VERB
es el marcador de posición de la ruta URL de una instancia de Resource-path
Resource
de la API implementada que admite el
mencionado. Para obtener más información, consulte Referencia de instrucciones de políticas de IAM para ejecutar la API en API Gateway. METHOD_HTTP_VERB
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/
, podría incluir la siguiente declaración en la política de IAM:{petId}
{ "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 (comous-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 AWSus-east-1
. -
arn:aws:execute-api:us-east-1:*:
para cualquier ruta de recurso en cualquier etapa, para la API con el identificadorapi-id
/*api-id
de la región de AWS us-east-1. -
arn:aws:execute-api:us-east-1:*:
para cualquier ruta de recurso en la etapa deapi-id
/test
/*test
, para la API con el identificador deapi-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.