

# Elección de un origen de clave de API en API Gateway
<a name="api-gateway-api-key-source"></a>

Al asociar un plan de uso a una API y habilitar claves de API en los métodos de API, cada solicitud de entrada para la API debe contener una [clave de API](api-gateway-basic-concept.md#apigateway-definition-api-key). API Gateway lee la clave y la compara con las claves del plan de uso. Si hay una coincidencia, API Gateway limita las solicitudes en función del límite de solicitudes y la cuota del plan. De lo contrario, inicia una excepción `InvalidKeyParameter`. Como resultado, el intermediario recibe una respuesta `403 Forbidden`.

Su API de API Gateway puede recibir claves de API de una de dos fuentes:

**`HEADER`**  
Distribuye las claves de API a sus clientes y les pide que pasen la clave de API como el encabezado `X-API-Key` de cada solicitud de entrada. 

**`AUTHORIZER`**  
Hace que un autorizador de Lambda devuelva la clave de API como parte de la respuesta de autorización. Para obtener más información sobre la respuesta de autorización, consulte [Salida de un autorizador de Lambda de API Gateway](api-gateway-lambda-authorizer-output.md).

**nota**  
Para conocer las prácticas recomendadas a tener en cuenta, consulte [Prácticas recomendadas para claves de API y planes de uso](api-gateway-api-usage-plans.md#apigateway-usage-plans-best-practices).

En el procedimiento siguiente muestra cómo elegir un origen de clave de API para una API.

------
#### [ Consola de administración de AWS ]

**Elección de un origen de claves para una API**

1. Inicie sesión en la consola de API Gateway.

1. Seleccione una API existente o cree una nueva.

1. En el panel de navegación principal, elija **Configuración de la API**. 

1. En la sección **Detalles de la API**, elija **Editar**. 

1.  En **Origen de clave de API**, seleccione `Header` o `Authorizer` de la lista desplegable.

1. Seleccione **Save changes (Guardar cambios)**.

------
#### [ AWS CLI ]

El siguiente comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) permite actualizar una API para establecer el origen de clave de API en `AUTHORIZER`:

```
aws apigateway update-rest-api --rest-api-id 1234123412 --patch-operations op=replace,path=/apiKeySource,value=AUTHORIZER
```

Para que el cliente envíe una clave de API, establezca el `value` en `HEADER` en el comando anterior.

------
#### [ REST API ]

Si desea elegir un origen de clave de API a través de la API de REST de API Gateway, llame a [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRestApi.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateRestApi.html), tal y como se indica a continuación:

```
PATCH /restapis/fugvjdxtri/ HTTP/1.1
Content-Type: application/json
Host: apigateway.us-east-1.amazonaws.com
X-Amz-Date: 20160603T205348Z
Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature={sig4_hash}

{
  "patchOperations" : [
    {
        "op" : "replace",
        "path" : "/apiKeySource",
        "value" : "HEADER"
    }
  ]
}
```

Para que el autorizador devuelva una clave de API, establezca `value` en `AUTHORIZER` en la entrada `patchOperations` anterior.

------