

# Ejemplos de políticas de recursos de API Gateway
<a name="apigateway-resource-policies-examples"></a>

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](apigateway-control-access-policy-language-overview.md).

**Topics**
+ [Ejemplo: permitir que los roles de otra cuenta de AWS utilicen una API](#apigateway-resource-policies-cross-account-example)
+ [Ejemplo: Cómo denegar el tráfico a una API para una dirección o un rango de direcciones IP de origen](#apigateway-resource-policies-source-ip-address-example)
+ [Ejemplo: Denegar el tráfico de API basado en la dirección IP de origen o rango cuando se utiliza una API privada](#apigateway-resource-policies-source-ip-address-vpc-example)
+ [Ejemplo: Permitir el tráfico de una API privada en función del punto de conexión de VPC o la VPC de origen](#apigateway-resource-policies-source-vpc-example)

## Ejemplo: permitir que los roles de otra cuenta de AWS utilicen una API
<a name="apigateway-resource-policies-cross-account-example"></a>

En la siguiente política de recursos de ejemplo, se otorga 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/create-signed-request.html) (SigV4) o [Signature Version 4a](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html#how-sigv4a-works) (SigV4a). 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.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/developer",
                    "arn:aws:iam::111122223333: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
<a name="apigateway-resource-policies-source-ip-address-example"></a>

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.

------
#### [ JSON ]

****  

```
{
    "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" ]
                }
            }
        }
    ]
}
```

------

Si utiliza políticas de usuario de IAM o políticas de recursos de API Gateway para controlar el acceso a API Gateway o a cualquier API de API Gateway, confirme que las políticas estén actualizadas para incluir los rangos de direcciones IPv6. Las políticas que no se actualizan para gestionar las direcciones IPv6 pueden afectar al acceso del cliente a API Gateway cuando comiencen a utilizar el punto de conexión de pila doble. Para obtener más información, consulte [Uso de direcciones IPv6 en políticas de IAM](api-ref.md#api-reference-service-endpoints-dualstack-iam).

## Ejemplo: Denegar el tráfico de API basado en la dirección IP de origen o rango cuando se utiliza una API privada
<a name="apigateway-resource-policies-source-ip-address-vpc-example"></a>

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 conexión 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.

------
#### [ JSON ]

****  

```
{
    "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 conexión de VPC o la VPC de origen
<a name="apigateway-resource-policies-source-vpc-example"></a>

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 conexión de VPC especificados.

Esta política de recursos de ejemplo especifica una VPC de origen:

------
#### [ JSON ]

****  

```
{
    "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 conexión de VPC de origen:

------
#### [ JSON ]

****  

```
{
    "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"
                }
            }
        }
    ]
}
```

------