Ejemplos de políticas de recursos de API Gateway
En esta página se presentan algunos ejemplos de casos de uso típicos de políticas de recursos de API Gateway.
Las políticas de ejemplo siguientes utilizan una sintaxis simplificada para especificar el recurso de API. Esta sintaxis simplificada es una forma abreviada de hacer referencia a un recurso de API, en lugar de especificar el nombre de recursos de Amazon (ARN) completo. API Gateway convierte la sintaxis abreviada en el ARN completo al guardar la política. Por ejemplo, puede especificar el recurso execute-api:/
en una política de recursos. API Gateway convierte el recurso en stage-name
/GET
/pets
arn:aws:execute-api:us-east-2:123456789012:aabbccddee/stage-name/GET/pets
cuando se guarda la política de recursos. API Gateway crea el ARN completo utilizando la región actual, el ID de su cuenta de AWS y el ID de la API REST con la que está asociada la política de recursos. Puede utilizar execute-api:/*
para representar todas las etapas, métodos y rutas de la API actual. Para obtener información acerca del lenguaje de la política de acceso, consulte Información general del lenguaje de políticas de acceso para Amazon API Gateway.
Temas
- Ejemplo: permitir que los roles de otra cuenta de AWS utilicen una API
- Ejemplo: Cómo denegar el tráfico a una API para una dirección o un rango de direcciones IP de origen
- Ejemplo: Denegar el tráfico de API basado en la dirección IP de origen o rango cuando se utiliza una API privada
- Ejemplo: Permitir el tráfico de una API privada en función del punto de enlace de la VPC o la VPC de origen
Ejemplo: permitir que los roles de otra cuenta de AWS utilicen una API
En el siguiente ejemplo de política de recursos, se otorga a acceso a la API de una cuenta de AWS a dos roles de una cuenta de AWS diferente a través de los protocolos Signature Version 4 (SigV4). En concreto, se concede al rol de desarrollador y administrador de la cuenta de AWS identificados por
la acción account-id-2
execute-api:Invoke
para ejecutar la acción GET
en el recurso pets
(API) en la cuenta de AWS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
account-id-2
:role/developer", "arn:aws:iam::account-id-2
:role/Admin" ] }, "Action": "execute-api:Invoke", "Resource": [ "execute-api:/stage
/GET/pets" ] } ] }
Ejemplo: Cómo denegar el tráfico a una API para una dirección o un rango de direcciones IP de origen
El siguiente ejemplo de política de recursos deniega (bloquea) el tráfico entrante a una API privada procedente de dos bloques de direcciones IP de origen especificadas.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "IpAddress": { "aws:SourceIp": ["
192.0.2.0/24
", "198.51.100.0/24
" ] } } } ] }
Ejemplo: Denegar el tráfico de API basado en la dirección IP de origen o rango cuando se utiliza una API privada
El siguiente ejemplo de política de recursos deniega (bloquea) el tráfico entrante a una API privada procedente de dos bloques de direcciones IP de origen especificadas. Cuando se utilizan API privadas, el punto de enlace final de VPC para execute-api
vuelve a escribir la dirección IP de origen original. La condición aws:VpcSourceIp
filtra la solicitud contra la dirección IP del solicitante original.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "IpAddress": { "aws:VpcSourceIp": ["
192.0.2.0/24
", "198.51.100.0/24
"] } } } ] }
Ejemplo: Permitir el tráfico de una API privada en función del punto de enlace de la VPC o la VPC de origen
En el ejemplo siguiente, las políticas de recursos permiten el tráfico entrante en una API privada solo desde una nube virtual privada (VPC) o un punto de enlace de la VPC especificados.
Esta política de recursos de ejemplo especifica una VPC de origen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpc": "
vpc-1a2b3c4d
" } } } ] }
Esta política de recursos de ejemplo especifica un punto de enlace de la VPC de origen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ] }, { "Effect": "Deny", "Principal": "*", "Action": "execute-api:Invoke", "Resource": [ "execute-api:/*" ], "Condition" : { "StringNotEquals": { "aws:SourceVpce": "
vpce-1a2b3c4d
" } } } ] }