Ejemplos de políticas de recursos de API Gateway - Amazon API Gateway

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:/stage-name/GET/pets en una política de recursos. API Gateway convierte el recurso en 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.

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 account-id-2 la acción 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" } } } ] }