

# Seguridad en Amazon API Gateway
<a name="security"></a>

La seguridad en la nube de AWS es la máxima prioridad. Como cliente de AWS, se beneficia de una arquitectura de red y un centro de datos que se han diseñado para satisfacer los requisitos de seguridad de las organizaciones más exigentes.

La seguridad es una responsabilidad compartida entre AWS y usted. El [modelo de responsabilidad compartida](https://aws.amazon.com/compliance/shared-responsibility-model/) la describe como seguridad *de* la nube y seguridad *en* la nube:
+ **Seguridad de la nube**: AWS es responsable de proteger la infraestructura que ejecuta los servicios de AWS en la nube de AWS. AWS también proporciona servicios que puede utilizar de forma segura. Los auditores externos prueban y verifican periódicamente la eficacia de nuestra seguridad como parte de los [AWSProgramas de conformidad de ](https://aws.amazon.com/compliance/programs/). Para obtener información sobre los programas de conformidad que se aplican a Amazon API Gateway, consulte los [Servicios de AWS en el ámbito del programa de conformidad](https://aws.amazon.com/compliance/services-in-scope/).
+ **Seguridad en la nube**: su responsabilidad viene determinada por el servicio de AWS que utilice. También es responsable de otros factores, incluida la confidencialidad de los datos, los requisitos de la empresa y la legislación y la normativa aplicables. 

Esta documentación le ayuda a comprender cómo puede aplicar el modelo de responsabilidad compartida cuando se utiliza API Gateway. En los siguientes temas, se le mostrará cómo configurar API Gateway para satisfacer sus objetivos de seguridad y conformidad. También aprenderá a utilizar otros servicios de AWS que le ayudarán a supervisar y a proteger los recursos de API Gateway. 

Para obtener más información, consulte [Información general sobre seguridad de Amazon API Gateway](https://d1.awsstatic.com/whitepapers/api-gateway-security.pdf).

**Topics**
+ [Protección de datos en Amazon API Gateway](data-protection.md)
+ [Identity and Access Management para Amazon API Gateway](security-iam.md)
+ [Registro y monitoreo en Amazon API Gateway](security-monitoring.md)
+ [Validación de conformidad para Amazon API Gateway](apigateway-compliance.md)
+ [Resiliencia en Amazon API Gateway](disaster-recovery-resiliency.md)
+ [Seguridad de la infraestructura en Amazon API Gateway](infrastructure-security.md)
+ [Análisis de vulnerabilidades en Amazon API Gateway](vulnerability-analysis.md)
+ [Prácticas recomendadas sobre seguridad para Amazon API Gateway](security-best-practices.md)

# Protección de datos en Amazon API Gateway
<a name="data-protection"></a>

El [modelo de responsabilidad compartida](https://aws.amazon.com/compliance/shared-responsibility-model/) de AWS se aplica a la protección de datos en Amazon API Gateway. Como se describe en este modelo, AWS es responsable de proteger la infraestructura global que ejecuta toda la Nube de AWS. Usted es responsable de mantener el control sobre el contenido alojado en esta infraestructura. Usted también es responsable de las tareas de administración y configuración de seguridad para los Servicios de AWS que utiliza. Para obtener más información sobre la privacidad de los datos, consulte las [Preguntas frecuentes sobre la privacidad de datos](https://aws.amazon.com/compliance/data-privacy-faq/). Para obtener información sobre la protección de datos en Europa, consulte la publicación de blog sobre el [Modelo de responsabilidad compartida de AWS y GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) en el * Blog de seguridad de AWS*.

Con fines de protección de datos, recomendamos proteger las credenciales de la Cuenta de AWS y configurar cuentas de usuario individuales con AWS IAM Identity Center o AWS Identity and Access Management (IAM). De esta manera, solo se otorgan a cada usuario los permisos necesarios para cumplir sus obligaciones laborales. También recomendamos proteger sus datos de la siguiente manera:
+ Utilice la autenticación multifactor (MFA) en cada cuenta.
+ Utilice SSL/TLS para comunicarse con los recursos de AWS. Se recomienda el uso de TLS 1.2 y recomendamos TLS 1.3.
+ Configure los registros de API y de actividad de los usuarios con AWS CloudTrail. Para obtener información sobre cómo utilizar registros de seguimiento de CloudTrail para capturar actividades de AWS, consulte [Working with CloudTrail trails](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) en la *Guía del usuario de AWS CloudTrail*.
+ Utilice las soluciones de cifrado de AWS, junto con todos los controles de seguridad predeterminados dentro de los servicios de Servicios de AWS.
+ Utilice servicios de seguridad administrados avanzados, como Amazon Macie, que lo ayuden a detectar y proteger los datos confidenciales almacenados en Amazon S3.
+ Si necesita módulos criptográficos validados FIPS 140-3 al acceder a AWS a través de una interfaz de línea de comandos o una API, utilice un punto de conexión de FIPS. Para obtener más información sobre los puntos de conexión de FIPS disponibles, consulte [Estándar de procesamiento de la información federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Se recomienda encarecidamente no introducir nunca información confidencial o sensible, como, por ejemplo, direcciones de correo electrónico de clientes, en etiquetas o campos de formato libre, tales como el campo **Nombre**. Esto incluye cuando trabaje con API Gateway u otros Servicios de AWS a través de la consola, la API, la AWS CLI o los AWS SDK. Cualquier dato que ingrese en etiquetas o campos de formato libre utilizados para nombres se puede emplear para los registros de facturación o diagnóstico. Si proporciona una URL a un servidor externo, recomendamos encarecidamente que no incluya información de credenciales en la URL a fin de validar la solicitud para ese servidor.

# Cifrado de datos en Amazon API Gateway
<a name="data-protection-encryption"></a>

La protección de datos consiste en proteger los datos mientras están en tránsito (cuando viajan a y desde API Gateway) y en reposo (mientras están almacenados en AWS).

## Cifrado de datos en reposo en Amazon API Gateway
<a name="data-protection-at-rest"></a>

Si elige habilitar el almacenamiento en caché para una API de REST, puede habilitar el cifrado en caché. Para obtener más información, consulte [Configuración de caché para las API de REST en API Gateway](api-gateway-caching.md).

Para obtener más información sobre la protección de datos, consulte la entrada de blog relativa al [modelo de responsabilidad compartida de AWS y GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) en el *blog de seguridad de AWS*.

### Cifrado y descifrado de la clave privada de su certificado
<a name="private-key"></a>

Cuando crea un nombre de dominio personalizado para API privadas, su certificado de ACM y su clave privada se cifran con una clave KMS administrada de AWS que tiene el alias **aws/acm**. Puede ver el ID de la clave con este alias en la consola de AWS KMS, en **Claves administradas de AWS**.

API Gateway no accede directamente a sus recursos de ACM. Utiliza AWS TLS Connection Manager para proteger las claves privadas de su certificado y acceder a ellas. Cuando usa su certificado de ACM para crear un nombre de dominio personalizado para API privadas de API Gateway, API Gateway asocia su certificado a AWS TLS Connection Manager. Para ello, se crea una concesión en AWS KMS para la clave administrada de AWS con el prefijo **aws/acm**. Una concesión es un instrumento de política que permite que TLS Connection Manager use claves KMS en operaciones criptográficas. La concesión le permite a la entidad principal beneficiaria (TLS Connection Manager) llamar a las operaciones de concesión especificadas en la clave KMS para descifrar la clave privada de su certificado. TLS Connection Manager utiliza entonces el certificado y la clave privada descifrada (texto sin formato) para establecer una conexión segura (sesión SSL/TLS) con los clientes de los servicios de API Gateway. Cuando el certificado se desvincula de un nombre de dominio personalizado de API Gateway para API privadas, la concesión se retira.

Si desea eliminar el acceso a la clave KMS, le recomendamos que sustituya o elimine el certificado del servicio usando la Consola de administración de AWS o el comando `update-service` en la AWS CLI.

### Contexto de cifrado para API Gateway
<a name="encryption-context"></a>

Un [contexto de cifrado](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt_context.html) es un conjunto de pares valor-clave opcional que contiene información contextual sobre los usos posibles de la clave privada. AWS KMS asocia el contexto de cifrado a los datos cifrados y lo utiliza como información autenticada adicional para permitir el cifrado autenticado.

Cuando las claves TLS se utilizan con API Gateway y TLS Connection Manager, el nombre del servicio de API Gateway se incluye en el contexto de cifrado utilizado para cifrar la clave en reposo. Para comprobar para qué nombre de dominio personalizado de API Gateway se utilizan su certificado y su clave privada, consulte el contexto de cifrado en sus registros de CloudTrail, tal como se muestra en la próxima sección, o bien la pestaña **Recursos asociados** de la consola de ACM.

Para descifrar los datos, se incluye el mismo contexto de cifrado en la solicitud. API Gateway utiliza el mismo contexto de cifrado en todas las operaciones criptográficas de AWS KMS, donde la clave es `aws:apigateway:arn` y el valor es el nombre de recurso de Amazon (ARN) del recurso `PrivateDomainName` de API Gateway.

El siguiente ejemplo muestra el contexto de cifrado en el resultado de una operación como `CreateGrant`.

```
"constraints": {
"encryptionContextEquals": {
"aws:acm:arn": "arn:aws:acm:us-west-2:859412291086:certificate/9177097a-f0ae-4be1-93b1-19f911ea4f88",
"aws:apigateway:arn": "arn:aws:apigateway:us-west-2:859412291086:/domainnames/denytest-part1.pdx.sahig.people.aws.dev+cbaeumzjhg"
}
},
"operations": [
"Decrypt"
],
"granteePrincipal": "tlsconnectionmanager.amazonaws.com"
```

## Cifrado de datos en tránsito en Amazon API Gateway
<a name="data-protection-in-transit"></a>

Todas las API creadas con Amazon API Gateway solo exponen los puntos de conexión HTTPS. API Gateway no admite puntos de conexión no cifrados (HTTP).

API Gateway administra los certificados de los puntos de conexión de `execute-api` predeterminados. Si configura un nombre de dominio personalizado, [especifique el certificado para el nombre de dominio](how-to-custom-domains.md#custom-domain-names-certificates). Como práctica recomendada, no [fije certificados](https://docs.aws.amazon.com/acm/latest/userguide/troubleshooting-pinning.html).

Para mayor seguridad, puede elegir una versión mínima del protocolo Transport Layer Security (TLS) que se va a aplicar a su dominio personalizado de API Gateway. Las API de WebSocket y las API HTTP solo admiten TLS 1.2. Para obtener más información, consulte [Elección de una política de seguridad para el dominio personalizado en API Gateway](apigateway-custom-domain-tls-version.md).

También puede configurar una distribución de Amazon CloudFront con un certificado SSL personalizado en su cuenta y utilizarla con las API regionales. Luego puede configurar la política de seguridad para la distribución de CloudFront con TLS 1.1 o superior en función de los requisitos de seguridad y conformidad.

Para obtener más información sobre la protección de datos, consulte la entrada de blog relativa a [Protección de sus API de REST en API Gateway](rest-api-protect.md) y al [modelo de responsabilidad compartida y GDPR de AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) en el *blog de seguridad de AWS*.

# Privacidad del tráfico entre redes
<a name="security-traffic-privacy"></a>

Con Amazon API Gateway, puede crear API de REST privadas a las que solo se puede acceder desde su Amazon Virtual Private Cloud (VPC). La VPC utiliza un [punto de enlace de la VPC de interfaz](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html), que es una interfaz de red de punto de enlace que se crea en su VPC. Mediante las [políticas de recursos](apigateway-private-api-create.md#apigateway-private-api-set-up-resource-policy), puede permitir o denegar el acceso a las API desde las VPC y los puntos de enlace de la VPC seleccionados, incluso entre diferentes cuentas de AWS. Cada punto de enlace se puede utilizar para tener acceso a varias API privadas. También puede utilizar Direct Connect para establecer una conexión entre una red en las instalaciones y Amazon VPC, y obtener acceso a la API privada a través de esa conexión. En cualquier caso, el tráfico dirigido a la API privada utilizará conexiones seguras y no saldrá de la red de Amazon, ya que está aislado de la red pública de Internet. Para obtener más información, consulte [API de REST privadas en API Gateway](apigateway-private-apis.md).

# Identity and Access Management para Amazon API Gateway
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) es un Servicio de AWS que ayuda a los administradores a controlar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quién puede estar *autenticado* (iniciar sesión) y *autorizado* (tiene permisos) para utilizar recursos de API Gateway. IAM es un Servicio de AWS que se puede utilizar sin cargo adicional.

**Topics**
+ [Público](#security_iam_audience)
+ [Autenticación con identidades](#security_iam_authentication)
+ [Administración del acceso con políticas](#security_iam_access-manage)
+ [Cómo funciona Amazon API Gateway con IAM](security_iam_service-with-iam.md)
+ [Ejemplos de políticas basadas en identidades de Amazon API Gateway](security_iam_id-based-policy-examples.md)
+ [Ejemplos de políticas basadas en recursos de Amazon API Gateway](security_iam_resource-based-policy-examples.md)
+ [Solución de problemas de identidad y acceso de Amazon API Gateway](security_iam_troubleshoot.md)
+ [Uso de roles vinculados a servicios para API Gateway](using-service-linked-roles.md)

## Público
<a name="security_iam_audience"></a>

La forma de utilizar AWS Identity and Access Management (IAM) varía en función del rol:
+ **Usuario del servicio:** solicite permisos al administrador si no puede acceder a las características (consulte [Solución de problemas de identidad y acceso de Amazon API Gateway](security_iam_troubleshoot.md)).
+ **Administrador del servicio:** determine el acceso de los usuarios y envíe las solicitudes de permiso (consulte [Cómo funciona Amazon API Gateway con IAM](security_iam_service-with-iam.md)).
+ **Administrador de IAM**: escribe las políticas para administrar el acceso (consulte [Ejemplos de políticas basadas en identidades de Amazon API Gateway](security_iam_id-based-policy-examples.md)).

## Autenticación con identidades
<a name="security_iam_authentication"></a>

La autenticación es la manera de iniciar sesión en AWS mediante credenciales de identidad. Debe autenticarse como el Usuario raíz de la cuenta de AWS, como un usuario de IAM o asumiendo un rol de IAM.

Se puede iniciar sesión como una identidad federada con las credenciales de un origen de identidad, como AWS IAM Identity Center (IAM Identity Center), la autenticación de inicio de sesión único o las credenciales de Google/Facebook. Para obtener más información sobre el inicio de sesión, consulte [Cómo iniciar sesión en la Cuenta de AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) en la *Guía del usuario de AWS Sign-In*.

Para el acceso mediante programación, AWS proporciona un SDK y una CLI para firmar criptográficamente las solicitudes. Para obtener más información, consulte [AWS Signature Version 4 para solicitudes de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) en la *Guía del usuario de IAM*.

### Usuario raíz de la Cuenta de AWS
<a name="security_iam_authentication-rootuser"></a>

 Cuando se crea una Cuenta de AWS, se comienza con una identidad de inicio de sesión denominada *usuario raíz* de la Cuenta de AWS que tiene acceso completo a todos los Servicios de AWS y recursos. Se recomiendaencarecidamente que no utilice el usuario raíz para las tareas diarias. Para ver la lista completa de las tareas que requieren credenciales de usuario raíz, consulte [Tareas que requieren credenciales de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) en la *Guía del usuario de IAM*. 

### Usuarios y grupos de IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* es una identidad con permisos específicos para una sola persona o aplicación. Recomendamos el uso de credenciales temporales en lugar de usuarios de IAM con credenciales de larga duración. Para obtener más información, consulte [Exigir que los usuarios humanos utilicen la federación con un proveedor de identidades para acceder a AWS con credenciales temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) en la *Guía del usuario de IAM*.

Un [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica un conjunto de usuarios de IAM y facilita la administración de los permisos para grupos grandes de usuarios. Para obtener más información, consulte [Casos de uso para usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) en la *Guía del usuario de IAM*.

### Roles de IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[Rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* es una identidad con permisos específicos que proporciona credenciales temporales. Se puede asumir un rol [cambiando de un usuario a un rol de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) o llamando a una operación de la API de la AWS CLI o AWS. Para obtener más información, consulte [Métodos para asumir un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) en la *Guía del usuario de IAM*.

Los roles de IAM son útiles para el acceso de usuario federado, los permisos de usuario de IAM temporales, el acceso entre cuentas, el acceso entre servicios y las aplicaciones que se ejecutan en Amazon EC2. Para obtener más información, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

## Administración del acceso con políticas
<a name="security_iam_access-manage"></a>

Para controlar el acceso en AWS, se crean políticas y se adjuntan a identidades o recursos de AWS. Una política define los permisos cuando se asocia a una identidad o un recurso. AWS evalúa estas políticas cuando una entidad principal realiza una solicitud. La mayoría de las políticas se almacenan en AWS como documentos JSON. Para obtener más información sobre los documentos de políticas de JSON, consulte [Información general de políticas de JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) en la *Guía del usuario de IAM*.

Mediante las políticas, los administradores especifican quién tiene acceso a qué, definiendo qué **entidad principal** puede realizar **acciones** sobre qué **recursos** y en qué **condiciones**.

De forma predeterminada, los usuarios y los roles no tienen permisos. Un administrador de IAM crea políticas de IAM y las agrega a roles, que los usuarios pueden asumir posteriormente. Las políticas de IAM definen permisos independientemente del método que se utilice para realizar la operación.

### Políticas basadas en identidades
<a name="security_iam_access-manage-id-based-policies"></a>

Las políticas basadas en identidad son documentos de política de permisos JSON que asocia a una identidad (usuario, grupo o rol). Estas políticas controlan qué acciones pueden realizar las identidades, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en la identidad, consulte [Definición de permisos de IAM personalizados con políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

Las políticas basadas en identidad pueden ser *políticas insertadas* (incrustadas directamente en una sola identidad) o *políticas administradas* (políticas independientes asociadas a varias identidades). Para obtener información sobre cómo elegir entre políticas administradas e insertadas, consulte [Selección entre políticas administradas y políticas insertadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) en la *Guía del usuario de IAM*.

### Políticas basadas en recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Las políticas basadas en recursos son documentos de políticas JSON que se asocian a un recurso. Los ejemplos incluyen las *Políticas de confianza de roles* de IAM y las *Políticas de bucket* de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Debe [especificar una entidad principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) en una política basada en recursos.

Las políticas basadas en recursos son políticas insertadas que se encuentran en ese servicio. No se puede utilizar políticas de IAM administradas de AWS en una política basada en recursos.

### Listas de control de acceso (ACL)
<a name="security_iam_access-manage-acl"></a>

Las listas de control de acceso (ACL) controlan qué entidades principales (miembros de cuentas, usuarios o roles) tienen permisos para acceder a un recurso. Las ACL son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.

Amazon S3, AWS WAF y Amazon VPC son ejemplos de servicios que admiten las ACL. Para obtener más información sobre las ACL, consulta [Información general de Lista de control de acceso (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) en la *Guía para desarrolladores de Amazon Simple Storage Service*.

### Otros tipos de políticas
<a name="security_iam_access-manage-other-policies"></a>

AWS admite tipos de políticas adicionales que pueden establecer el máximo de permisos concedidos por los tipos de políticas más frecuentes:
+ **Límites de permisos:** establecen los permisos máximos que una política basada en identidad puede conceder a una entidad de IAM. Para obtener más información, consulte [Límites de permisos para las entidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) en la *Guía del usuario de IAM*.
+ **Políticas de control de servicios (SCP):** especifican los permisos máximos para una organización o unidad organizativa en AWS Organizations. Para obtener más información, consulte [Políticas de control de servicios](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) en la *Guía del usuario de AWS Organizations*.
+ **Políticas de control de recursos (RCP):** definen los permisos máximos disponibles para los recursos de las cuentas. Para obtener más información, consulte [Políticas de control de recursos (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) en la *Guía del usuario de AWS Organizations*.
+ **Políticas de sesión:** políticas avanzadas que se pasan como parámetro cuando se crea una sesión temporal para un rol o un usuario federado. Para obtener más información, consulte [Políticas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) en la *Guía del usuario de IAM*.

### Varios tipos de políticas
<a name="security_iam_access-manage-multiple-policies"></a>

Cuando se aplican varios tipos de políticas a una solicitud, los permisos resultantes son más complicados de entender. Para obtener información acerca de cómo AWS decide si se debe permitir o no una solicitud cuando hay implicados varios tipos de políticas, consulte [Lógica de evaluación de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) en la *Guía del usuario de IAM*.

# Cómo funciona Amazon API Gateway con IAM
<a name="security_iam_service-with-iam"></a>

Antes de utilizar IAM para administrar el acceso a API Gateway, debe saber qué características de IAM están disponibles para usarlas con API Gateway. Para obtener una vista de alto nivel de cómo API Gateway y otros servicios de AWS funcionan con IAM, consulte [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) en la *Guía del usuario de IAM*.

**Topics**
+ [Políticas basadas en identidades de API Gateway](#security_iam_service-with-iam-id-based-policies)
+ [Políticas basadas en recursos de API Gateway](#security_iam_service-with-iam-resource-based-policies)
+ [Autorización basada en etiquetas de API Gateway](#security_iam_service-with-iam-tags)
+ [Roles de IAM de API Gateway](#security_iam_service-with-iam-roles)

## Políticas basadas en identidades de API Gateway
<a name="security_iam_service-with-iam-id-based-policies"></a>

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. API Gateway admite acciones, claves de condiciones y recursos específicos. Para obtener más información sobre las acciones, recursos y claves de condiciones específicos de API Gateway, consulte [Acciones, recursos y claves de condición de la administración de Amazon API Gateway](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagement.html) y [Acciones, recursos y claves de condición de la administración de Amazon API Gateway V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagementv2.html). Para obtener información sobre todos los elementos que utiliza en una política JSON, consulte [IAM JSON Policy Elements Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*.

En el siguiente ejemplo se muestra una política basada en identidades que permite a un usuario crear o actualizar solo API REST privadas. Para obtener más ejemplos, consulte [Ejemplos de políticas basadas en identidades de Amazon API Gateway](security_iam_id-based-policy-examples.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ScopeToPrivateApis",
      "Effect": "Allow",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/restapis",
        "arn:aws:apigateway:us-east-1::/restapis/??????????"
      ],
      "Condition": {
        "ForAllValues:StringEqualsIfExists": {
          "apigateway:Request/EndpointType": "PRIVATE",
          "apigateway:Resource/EndpointType": "PRIVATE"
        }
      }
    },
    {
      "Sid": "AllowResourcePolicyUpdates",
      "Effect": "Allow",
      "Action": [
          "apigateway:UpdateRestApiPolicy"
      ],
      "Resource": [
          "arn:aws:apigateway:us-east-1::/restapis/*"
      ]
    }
  ]
}
```

------

### Acciones
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

El elemento `Action` de una política JSON describe las acciones que puede utilizar para permitir o denegar el acceso en una política.

Las acciones de políticas de API Gateway incluyen el siguiente prefijo antes de la acción: `apigateway:`. Las instrucciones de la política deben incluir un elemento `Action` o un elemento `NotAction`. API Gateway define su propio conjunto de acciones que describen las tareas que se pueden realizar con este servicio.



La expresión `Action` de administración de la API tiene el formato `apigateway:action`, donde *acción* es una de las siguientes acciones de API Gateway: **GET**, **POST**, **PUT**, **DELETE**, **PATCH** (para actualizar los recursos) o **\$1**, que representa todas las acciones anteriores.

Algunos ejemplos de la expresión `Action` incluyen:
+ **apigateway:\$1** para todas las acciones de API Gateway.
+ **apigateway:GET** solo para la acción GET en API Gateway.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

```
"Action": [
      "apigateway:action1",
      "apigateway:action2"
```

Para obtener información acerca de los verbos HTTP que se deben utilizar para operaciones específicas de API Gateway, consulte [Amazon API Gateway Version 1 API Reference](https://docs.aws.amazon.com/apigateway/api-reference/) (API REST) y [Amazon API Gateway Version 2 API Reference](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/api-reference.html) (API HTTP y WebSocket).

Para obtener más información, consulte [Ejemplos de políticas basadas en identidades de Amazon API Gateway](security_iam_id-based-policy-examples.md).

### Recursos
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Resource` de la política JSON especifica el objeto u objetos a los que se aplica la acción. Como práctica recomendada, especifique un recurso utilizando el [Nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Para las acciones que no admiten permisos por recurso, utilice un carácter comodín (\$1) para indicar que la instrucción se aplica a todos los recursos.

```
"Resource": "*"
```



Los recursos de API Gateway tienen el siguiente formato de ARN:

```
arn:aws:apigateway:region::resource-path-specifier
```

Por ejemplo, para especificar una API REST con el identificador *`api-id`* y sus subrecursos, como los autorizadores en la instrucción, utilice el siguiente ARN:

```
"Resource": "arn:aws:apigateway:us-east-2::/restapis/api-id/*"
```

Para especificar todas las API REST y los subrecursos que pertenecen a una cuenta específica, utilice el carácter comodín (\$1):

```
"Resource": "arn:aws:apigateway:us-east-2::/restapis/*"
```

Para ver una lista de los tipos de recursos de API Gateway y sus ARN, consulte [Referencia del nombre de recurso de Amazon (ARN) de API Gateway](arn-format-reference.md). 

### Claves de condición
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Condition` especifica cuándo se ejecutan las instrucciones en función de criterios definidos. Puede crear expresiones condicionales que utilizan [operadores de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud. Para ver todas las claves de condición globales de AWS, consulte [Claves de contexto de condición globales de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.

API Gateway define su propio conjunto de claves de condición y también admite el uso de algunas claves de condición globales. Para ver una lista de claves de condición de API Gateway, consulte [Condition Keys for Amazon API Gateway](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_manageamazonapigateway.html#manageamazonapigateway-policy-keys) en la *Guía del usuario de IAM*. Para obtener más información acerca de las acciones y los recursos con los que puede utilizar una clave de condición, consulte [Actions Defined by Amazon API Gateway](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_manageamazonapigateway.html#amazonapigateway-actions-as-permissions).

Para obtener información sobre el etiquetado, incluido el control de acceso basado en atributos, consulte [Etiquetado de recursos de API Gateway](apigateway-tagging.md).

### Ejemplos
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Para ver ejemplos de políticas basadas en identidades de API Gateway, consulte [Ejemplos de políticas basadas en identidades de Amazon API Gateway](security_iam_id-based-policy-examples.md).

## Políticas basadas en recursos de API Gateway
<a name="security_iam_service-with-iam-resource-based-policies"></a>

Las políticas basadas en recursos son documentos de política JSON que especifican qué acciones puede realizar una entidad principal especificada en el recurso de API Gateway y bajo qué condiciones. API Gateway admite políticas de permisos basadas en recursos para las API de REST. Las políticas de recursos se utilizan para controlar quién puede invocar una API REST. Para obtener más información, consulte [Control del acceso a una API de REST con políticas de recursos de API Gateway](apigateway-resource-policies.md). 

### Ejemplos
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>

Para ver ejemplos de políticas basadas en recursos de API Gateway, consulte [Ejemplos de políticas de recursos de API Gateway](apigateway-resource-policies-examples.md).

## Autorización basada en etiquetas de API Gateway
<a name="security_iam_service-with-iam-tags"></a>

Puede asociar etiquetas a recursos de API Gateway o transmitir etiquetas en una solicitud a API Gateway. Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el [elemento de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de una política utilizando las claves de condición `apigateway:ResourceTag/key-name`, `aws:RequestTag/key-name` o `aws:TagKeys`. Para obtener más información acerca de las etiquetas para recursos de API Gateway, consulte [Uso de etiquetas para controlar el acceso a los recursos API de REST de API Gateway](apigateway-tagging-iam-policy.md).

Para consultar un ejemplo de política basada en la identidad para limitar el acceso a un recurso en función de las etiquetas de ese recurso, consulte [Uso de etiquetas para controlar el acceso a los recursos API de REST de API Gateway](apigateway-tagging-iam-policy.md).

## Roles de IAM de API Gateway
<a name="security_iam_service-with-iam-roles"></a>

Un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) es una entidad de la cuenta de AWS que dispone de permisos específicos.

### Uso de credenciales temporales con API Gateway
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Puede utilizar credenciales temporales para iniciar sesión con federación, asumir un rol de IAM o asumir un rol de acceso entre cuentas. Las credenciales de seguridad temporales se obtienen mediante una llamada a operaciones de la API de AWS STS, como [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) o [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html). 

API Gateway admite el uso de credenciales temporales. 

### Roles vinculados a servicios
<a name="security_iam_service-with-iam-roles-service-linked"></a>

Los [roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) permiten a los servicios de AWS obtener acceso a los recursos de otros servicios para completar una acción en su nombre. Los roles vinculados a servicios aparecen en la cuenta de IAM y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios.

API Gateway admite roles vinculados a servicios. Para obtener información sobre cómo crear o administrar roles vinculados a servicios de API Gateway, consulte [Uso de roles vinculados a servicios para API Gateway](using-service-linked-roles.md).

### Roles de servicio
<a name="security_iam_service-with-iam-roles-service"></a>

Un servicio puede asumir un [rol de servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) en su nombre. Un rol de servicio permite que el servicio obtenga acceso a los recursos de otros servicios para completar una acción en su nombre. Los roles de servicio aparecen en la cuenta de IAM y son propiedad de la cuenta, por lo que un administrador IAM puede cambiar los permisos para este rol. Sin embargo, hacerlo podría deteriorar la funcionalidad del servicio.

API Gateway admite roles de servicio. 

# Ejemplos de políticas basadas en identidades de Amazon API Gateway
<a name="security_iam_id-based-policy-examples"></a>

De forma predeterminada, los usuarios y roles de IAM no tienen permiso para crear ni modificar recursos de API Gateway. Tampoco pueden realizar tareas mediante la Consola de administración de AWS, la AWS CLI o los AWS SDK. Un administrador de IAM debe crear políticas de IAM que concedan permisos a los usuarios y a los roles para realizar operaciones de la API concretas en los recursos especificados que necesiten. El administrador debe adjuntar esas políticas a los usuarios o grupos de IAM que necesiten esos permisos.

Para obtener información sobre cómo crear políticas de IAM, consulte [Creating Policies on the JSON Tab](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) en la *Guía del usuario de IAM*. Para obtener información sobre las acciones, los recursos y las condiciones específicas de API Gateway, consulte [Acciones, recursos y claves de condición de la administración de Amazon API Gateway](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagement.html) y [Acciones, recursos y claves de condición de la administración de Amazon API Gateway V2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagementv2.html).

**Topics**
+ [Prácticas recomendadas sobre las políticas](#security_iam_service-with-iam-policy-best-practices)
+ [Cómo permitir a los usuarios consultar sus propios permisos](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Permisos sencillos de lectura](#api-gateway-policy-example-apigateway-general)
+ [Crear solo autorizadores REQUEST o JWT](#security_iam_id-based-policy-examples-v2-import)
+ [Requerir que el punto de enlace predeterminado `execute-api` esté deshabilitado](#security_iam_id-based-policy-examples-v2-endpoint-status)
+ [Permitir a los usuarios crear o actualizar solo API REST privadas](#security_iam_id-based-policy-examples-private-api)
+ [Requerir que las rutas API tengan autorización](#security_iam_id-based-policy-examples-require-authorization)
+ [Evitar que un usuario cree o actualice un enlace VPC](#security_iam_id-based-policy-examples-deny-vpc-link)
+ [Ejemplos de políticas para utilizar reglas de enrutamiento](#security_iam_id-based-policy-examples-routing-mode)

## Prácticas recomendadas sobre las políticas
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Las políticas basadas en identidades determinan si alguien puede crear, acceder o eliminar los recursos de API Gateway de la cuenta. Estas acciones pueden generar costos adicionales para su Cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas en identidades:
+ **Comience a utilizar las políticas administradas de AWS y avance hacia permisos de privilegios mínimos**. Para empezar a conceder permisos a los usuarios y cargas de trabajo, utilice las *políticas administradas de AWS* que otorgan permisos para muchos casos de uso comunes. Están disponibles en su Cuenta de AWS. Se recomienda definir políticas administradas por el cliente de AWS específicas para sus casos de uso a fin de reducir aún más los permisos. Con el fin de obtener más información, consulte las [políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o las [políticas administradas por AWS para funciones de tarea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) en la *Guía de usuario de IAM*.
+ **Aplique permisos de privilegio mínimo**: cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como *permisos de privilegios mínimos*. Con el fin de obtener más información sobre el uso de IAM para aplicar permisos, consulte [Políticas y permisos en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en la *Guía del usuario de IAM*.
+ **Utilice condiciones en las políticas de IAM para restringir aún más el acceso**: puede agregar una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puede escribir una condición de políticas para especificar que todas las solicitudes deben enviarse utilizando SSL. También puede usar condiciones para conceder acceso a acciones de servicios si se emplean a través de un Servicio de AWS determinado como, por ejemplo, CloudFormation. Para obtener más información, consulte [Elementos de la política de JSON de IAM: Condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) en la *Guía del usuario de IAM*.
+ **Utiliza el analizador de acceso de IAM para validar las políticas de IAM con el fin de garantizar la seguridad y funcionalidad de los permisos**: el analizador de acceso de IAM valida políticas nuevas y existentes para que respeten el lenguaje (JSON) de las políticas de IAM y las prácticas recomendadas de IAM. El analizador de acceso de IAM proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para más información, consulte [Validación de políticas con el Analizador de acceso de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) en la *Guía del usuario de IAM*.
+ **Solicite la autenticación multifactor (MFA)**: si se encuentra en una situación en la que necesite usuarios raíz o de IAM en su Cuenta de AWS, active la MFA para obtener una mayor seguridad. Para exigir la MFA cuando se invoquen las operaciones de la API, añada condiciones de MFA a sus políticas. Para más información, consulte [Acceso seguro a la API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) en la *Guía del usuario de IAM*.

Para obtener más información sobre las prácticas recomendadas de IAM, consulte [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

## Cómo permitir a los usuarios consultar sus propios permisos
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

En este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver las políticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluye permisos para llevar a cabo esta acción en la consola o mediante programación con la AWS CLI o la API de AWS.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Permisos sencillos de lectura
<a name="api-gateway-policy-example-apigateway-general"></a>

Esta política de ejemplo otorga a un usuario permiso para obtener información acerca de todos los recursos de una API HTTP o WebSocket con el identificador de `a123456789` en la región de AWS us-east-1. El recurso `arn:aws:apigateway:us-east-1::/apis/a123456789/*` incluye todos los subrecursos de la API, como autorizadores e implementaciones.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "apigateway:GET"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis/a123456789/*"
      ]
    }
  ]
}
```

------

## Crear solo autorizadores REQUEST o JWT
<a name="security_iam_id-based-policy-examples-v2-import"></a>

Esta política de ejemplo permite a un usuario crear API con solo autorizadores `REQUEST` o `JWT`, incluso mediante [import](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis.html#ImportApi). En la sección `Resource` de la política, `arn:aws:apigateway:us-east-1::/apis/??????????` requiere que los recursos tengan un máximo de 10 caracteres, lo que excluye los subrecursos de una API. Este ejemplo utiliza `ForAllValues` en la sección `Condition` porque los usuarios pueden crear varios autorizadores a la vez mediante la importación de una API.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "OnlyAllowSomeAuthorizerTypes",
      "Effect": "Allow",
      "Action": [
        "apigateway:PUT",
        "apigateway:POST",
        "apigateway:PATCH"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/??????????",
        "arn:aws:apigateway:us-east-1::/apis/*/authorizers",
        "arn:aws:apigateway:us-east-1::/apis/*/authorizers/*"
      ],
      "Condition": {
        "ForAllValues:StringEqualsIfExists": {
          "apigateway:Request/AuthorizerType": [
            "REQUEST",
            "JWT"
          ]
        }
      }
    }
  ]
}
```

------

## Requerir que el punto de enlace predeterminado `execute-api` esté deshabilitado
<a name="security_iam_id-based-policy-examples-v2-endpoint-status"></a>

 Esta política de ejemplo permite a los usuarios crear, actualizar o importar una API, con el requisito de que `DisableExecuteApiEndpoint` es `true`. Cuando `DisableExecuteApiEndpoint` es `true`, los clientes no pueden utilizar el punto de enlace predeterminado `execute-api` para invocar una API.

Utilizamos la condición `BoolIfExists` para manejar una llamada para actualizar una API que no tiene la clave de condición `DisableExecuteApiEndpoint` completa. Cuando un usuario intenta crear o importar una API, la clave de condición `DisableExecuteApiEndpoint` siempre se completa.

Debido a que el recurso `apis/*` también captura subrecursos, como autorizadores o métodos, explícitamente lo aplicamos a las API con una instrucción `Deny`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DisableExecuteApiEndpoint",
      "Effect": "Allow",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/*"
      ],
      "Condition": {
        "BoolIfExists": {
          "apigateway:Request/DisableExecuteApiEndpoint": true
        }
      }
    },
    {
      "Sid": "ScopeDownToJustApis",
      "Effect": "Deny",
      "Action": [
        "apigateway:PATCH",
        "apigateway:POST",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis/*/*"
      ]
    }
  ]
}
```

------

## Permitir a los usuarios crear o actualizar solo API REST privadas
<a name="security_iam_id-based-policy-examples-private-api"></a>

En esta política de ejemplo se utiliza una clave de condición para requerir que un usuario cree solo API `PRIVATE` y para evitar actualizaciones que puedan cambiar una API de `PRIVATE` a otro tipo, como `REGIONAL`.

Utilizamos `ForAllValues` para requerir que cada `EndpointType` que se agregue a una API sea `PRIVATE`. Utilizamos una clave de condición de recurso para permitir cualquier actualización de una API siempre que sea `PRIVATE`. `ForAllValues` se aplica solo si una clave de condición está presente.

Utilizamos la herramienta de coincidencia no codiciosa (`?`) para hacer coincidir explícitamente los ID de API para evitar que se permitan recursos que no sean API, como los autorizadores.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ScopePutToPrivateApis",
            "Effect": "Allow",
            "Action": [
                "apigateway:PUT"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis",
                "arn:aws:apigateway:us-east-1::/restapis/??????????"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "apigateway:Resource/EndpointType": "PRIVATE"
                }
            }
        },
        {
            "Sid": "ScopeToPrivateApis",
            "Effect": "Allow",
            "Action": [
                "apigateway:DELETE",
                "apigateway:PATCH",
                "apigateway:POST"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis",
                "arn:aws:apigateway:us-east-1::/restapis/??????????"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "apigateway:Request/EndpointType": "PRIVATE",
                    "apigateway:Resource/EndpointType": "PRIVATE"
                }
            }
        },
        {
            "Sid": "AllowResourcePolicyUpdates",
            "Effect": "Allow",
            "Action": [
                "apigateway:UpdateRestApiPolicy"
            ],
            "Resource": [
                "arn:aws:apigateway:us-east-1::/restapis/*"
            ]
        }
    ]
}
```

------

## Requerir que las rutas API tengan autorización
<a name="security_iam_id-based-policy-examples-require-authorization"></a>

Esta política hace que los intentos de crear o actualizar una ruta (incluso mediante [import](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis.html#ImportApi)) falle si la ruta no tiene autorización. `ForAnyValue` lo evalúa como falso si la clave no está presente, tal como cuando no se crea o actualiza una ruta. Utilizamos `ForAnyValue` porque se pueden crear varias rutas a través de la importación.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowUpdatesOnApisAndRoutes",
      "Effect": "Allow",
      "Action": [
        "apigateway:POST",
        "apigateway:PATCH",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/??????????",
        "arn:aws:apigateway:us-east-1::/apis/*/routes",
        "arn:aws:apigateway:us-east-1::/apis/*/routes/*"
      ]
    },
    {
      "Sid": "DenyUnauthorizedRoutes",
      "Effect": "Deny",
      "Action": [
        "apigateway:POST",
        "apigateway:PATCH",
        "apigateway:PUT"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/apis",
        "arn:aws:apigateway:us-east-1::/apis/*"
      ],
      "Condition": {
        "ForAnyValue:StringEqualsIgnoreCase": {
          "apigateway:Request/RouteAuthorizationType": "NONE"
        }
      }
    }
  ]
}
```

------

## Evitar que un usuario cree o actualice un enlace VPC
<a name="security_iam_id-based-policy-examples-deny-vpc-link"></a>

Esta política evita que un usuario cree o actualice un enlace VPC. Un enlace de VPC le permite exponer los recursos dentro de una Amazon VPC a clientes que están fuera de la VPC.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyVPCLink",
      "Effect": "Deny",
      "Action": [
        "apigateway:POST",
        "apigateway:PUT",
        "apigateway:PATCH"
      ],
      "Resource": [
        "arn:aws:apigateway:us-east-1::/vpclinks",
        "arn:aws:apigateway:us-east-1::/vpclinks/*"
      ]
    }
  ]
}
```

------

## Ejemplos de políticas para utilizar reglas de enrutamiento
<a name="security_iam_id-based-policy-examples-routing-mode"></a>

En los siguientes ejemplos de políticas se muestra cómo utilizar las claves de condición de RoutingRule para controlar cómo los usuarios pueden enrutar el tráfico desde los nombres de dominio personalizados a las API de REST. Puede utilizar estos ejemplos para crear políticas detalladas sobre el tipo de reglas de enrutamiento que pueden crear los usuarios. Para obtener más información, consulte [Reglas de enrutamiento para conectar las etapas de API a un nombre de dominio personalizado para las API de REST](rest-api-routing-rules.md).

### Cómo impedir que un usuario cambie la forma en que un nombre de dominio personalizado enruta una solicitud
<a name="security_iam_id-based-policy-examples-routing-mode-1"></a>

Esta política impide que un usuario cree o actualice `BasePathMapping`, `ApiMapping` o `RoutingRule`. Todos estos recursos pueden cambiar la forma en que un nombre de dominio personalizado enruta las solicitudes a las API.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessBasePathMappingsApiMappingsRoutingRules",
      "Effect": "Deny",
      "Action": "apigateway:*",
      "Resource": [
        "arn:aws:apigateway:us-east-1::/domainnames/example.com/basepathmappings/*",
        "arn:aws:apigateway:us-east-1::/domainnames/example.com/apimappings/*",
        "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*"
      ]
    }
  ]
}
```

------

### Autorización a un usuario para actualizar una regla de enrutamiento en determinadas prioridades
<a name="security_iam_id-based-policy-examples-routing-mode-2"></a>

Esta política permite a un usuario actualizar solo una regla de enrutamiento a una prioridad entre 1001 y 2000. Puede utilizar esta regla para separar las reglas de producción de las reglas de menor prioridad y, a continuación, permitir a los usuarios modificar las reglas de menor prioridad sin afectar las reglas de producción.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UpdatingRoutingRulePriorityBetween1001And2000",
      "Effect": "Allow",
      "Action": "apigateway:UpdateRoutingRule",
      "Resource": "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*",
      "Condition": {
        "NumericGreaterThanEquals": {
          "apigateway:Resource/Priority": 1001,
          "apigateway:Request/Priority": 1001
        },
       "NumericLessThanEquals": {
          "apigateway:Resource/Priority": 2000,
          "apigateway:Request/Priority": 2000
        } 
      }
    }
  ]
}
```

------

### Autorización a un usuario para actualizar una regla de enrutamiento o la asignación de ruta base para un valor de ruta base determinado
<a name="security_iam_id-based-policy-examples-routing-mode-3"></a>

Esta política permite a un usuario actualizar solo una asignación de ruta base para cualquier ruta base que comience por `orders` o actualizar una regla de enrutamiento que coincida con una ruta base que comience por `orders`. En esta política, un usuario puede actualizar una asignación de ruta base o una regla de enrutamiento para `orders/create` o `orders123`, pero no para `payment/orders`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
      {
        "Sid": "AllowUpdateRoutingRuleUnderPathOrders",
        "Effect": "Allow",
        "Action": "apigateway:UpdateRoutingRule",
        "Resource": "arn:aws:apigateway:us-east-1:111122223333:/domainnames/example.com/routingrules/*",
        "Condition": {
            "ForAllValues:StringLike": {
                "apigateway:Request/ConditionBasePaths": ["orders*"],
                "apigateway:Resource/ConditionBasePaths": ["orders*"]
            },
            "Null":{
                 "apigateway:Request/ConditionBasePaths":"false",
                 "apigateway:Resource/ConditionBasePaths":"false"             
          }
        }
      }
  ]
}
```

------

### Autorización a un usuario para que actualice el modo de enrutamiento a valores específicos
<a name="security_iam_id-based-policy-examples-routing-mode-4"></a>

Esta política permite a un usuario actualizar solo el modo de enrutamiento a `API_MAPPING_ONLY` y `ROUTING_RULE_THEN_API_MAPPING`. Para obtener más información sobre el modo de enrutamiento, consulte [Establecimiento del modo de enrutamiento para el nombre de dominio personalizado](set-routing-mode.md).

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
        {
           "Sid": "AllowUpdateRoutingModeToAnythingWithApiMapping",
           "Effect": "Allow",
           "Action": ["apigateway:PATCH"],
           "Resource": "arn:aws:apigateway:us-east-1::/domainnames/example.com",
              "Condition": {
               "StringLike": {
                   "apigateway:Request/RoutingMode":"*API_MAPPING*"
               }
           }
       }
    ]
}
```

------

# Ejemplos de políticas basadas en recursos de Amazon API Gateway
<a name="security_iam_resource-based-policy-examples"></a>

Para ver ejemplos de política basada en recursos, consult [Ejemplos de políticas de recursos de API Gateway](apigateway-resource-policies-examples.md).

# Solución de problemas de identidad y acceso de Amazon API Gateway
<a name="security_iam_troubleshoot"></a>

Utilice la siguiente información para diagnosticar y solucionar los problemas comunes que puedan surgir cuando se trabaja con API Gateway e IAM.

**Topics**
+ [No tengo autorización para realizar una acción en API Gateway.](#security_iam_troubleshoot-no-permissions)
+ [No tengo autorización para realizar la operación iam:PassRole](#security_iam_troubleshoot-passrole)
+ [Quiero permitir que personas ajenas a mi cuenta de AWS accedan a mis recursos de API Gateway](#security_iam_troubleshoot-cross-account-access)

## No tengo autorización para realizar una acción en API Gateway.
<a name="security_iam_troubleshoot-no-permissions"></a>

Si recibe un error que indica que no tiene autorización para realizar una acción, las políticas se deben actualizar para permitirle realizar la acción.

En el siguiente ejemplo, el error se produce cuando el usuario de IAM `mateojackson` intenta utilizar la consola para consultar los detalles acerca de un recurso ficticio `my-example-widget`, pero no tiene los permisos ficticios `apigateway:GetWidget`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: apigateway:GetWidget on resource: my-example-widget because no identity-based policy allows the GetWidget action 
```

En este caso, la política del usuario `mateojackson` debe actualizarse para permitir el acceso al recurso `my-example-widget` mediante la acción `apigateway:GetWidget`.

Si necesita ayuda, contacte con su administrador de AWS. El administrador es la persona que le proporcionó las credenciales de inicio de sesión.

## No tengo autorización para realizar la operación iam:PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Si recibe un error que indica que no está autorizado para realizar la acción `iam:PassRole`, las políticas se deben actualizar para permitir transferir un rol a API Gateway.

Algunos Servicios de AWS le permiten transferir un rol existente a dicho servicio en lugar de crear un nuevo rol de servicio o uno vinculado al servicio. Para ello, debe tener permisos para transferir el rol al servicio.

En el siguiente ejemplo, el error se produce cuando un usuario de IAM denominado `marymajor` intenta utilizar la consola para realizar una acción en API Gateway. Sin embargo, la acción requiere que el servicio cuente con permisos que concede un rol de servicio. Mary no tiene permisos para transferir el rol al servicio.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

En este caso, las políticas de Mary se deben actualizar para permitirle realizar la acción `iam:PassRole`.

Si necesita ayuda, póngase en contacto con su administrador de AWS. El administrador es la persona que le proporcionó las credenciales de inicio de sesión.

## Quiero permitir que personas ajenas a mi cuenta de AWS accedan a mis recursos de API Gateway
<a name="security_iam_troubleshoot-cross-account-access"></a>

Puede crear un rol que los usuarios de otras cuentas o las personas externas a la organización puedan utilizar para acceder a sus recursos. Se puede especificar una persona de confianza para que asuma el rol. En el caso de los servicios que admitan las políticas basadas en recursos o las listas de control de acceso (ACL), puede utilizar dichas políticas para conceder a las personas acceso a sus recursos.

Para obtener más información, consulte lo siguiente:
+ Para saber si API Gateway admite estas características, consulte [Cómo funciona Amazon API Gateway con IAM](security_iam_service-with-iam.md).
+ Para obtener información acerca de cómo proporcionar acceso a los recursos de las Cuentas de AWS de su propiedad, consulte [Proporcionar acceso a un usuario de IAM a otra Cuenta de AWS de la que es propietario](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) en la *Guía del usuario de IAM*.
+ Para obtener información acerca de cómo proporcionar acceso a sus recursos a Cuentas de AWS de terceros, consulte [Proporcionar acceso a Cuentas de AWS que son propiedad de terceros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) en la *Guía del usuario de IAM*.
+ Para obtener información sobre cómo proporcionar acceso mediante una federación de identidades, consulte [Proporcionar acceso a usuarios autenticados externamente (identidad federada)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) en la *Guía del usuario de IAM*.
+ Para conocer sobre la diferencia entre las políticas basadas en roles y en recursos para el acceso entre cuentas, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

# Uso de roles vinculados a servicios para API Gateway
<a name="using-service-linked-roles"></a>

Amazon API Gateway utiliza [Roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) de AWS Identity and Access Management (IAM). Un rol vinculado a un servicio es un tipo único de rol de IAM que está vinculado directamente a API Gateway. Los roles vinculados a servicios están predefinidos por API Gateway e incluyen todos los permisos que el servicio requiere para llamar a otros servicios de AWS en su nombre. 

Un rol vinculado a un servicio simplifica la configuración de API Gateway porque ya no tendrá que agregar manualmente los permisos necesarios. API Gateway define los permisos de sus roles vinculados a servicios y, a menos que esté definido de otra manera, solo API Gateway puede asumir sus roles. Los permisos definidos incluyen las políticas de confianza y de permisos, y que la política de permisos no se puede asociar a ninguna otra entidad de IAM

Solo puede eliminar un rol vinculado a un servicio después de eliminar los recursos relacionados. De esta forma, se protegen los recursos de API Gateway, ya que se evita que se puedan eliminar accidentalmente permisos de acceso a los recursos.

Para obtener información acerca de otros servicios que admiten roles vinculados a servicios, consulte [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) y busque los servicios que muestran **Sí** en la columna **Rol vinculado a un servicio**. Seleccione una opción **Sí** con un enlace para ver la documentación acerca del rol vinculado al servicio en cuestión.

## Permisos de roles vinculados a servicios para API Gateway
<a name="slr-permissions"></a>

API Gateway utiliza el rol vinculado a un servicio denominado **AWSServiceRoleForAPIGateway**: permite a API Gateway acceder a Elastic Load Balancing, Amazon Data Firehose y otros recursos de servicios en su nombre.

El rol vinculado a un servicio AWSServiceRoleForAPIGateway confía en que los siguientes servicios asuman el rol
+ `ops.apigateway.amazonaws.com`

La política de permisos de rol permite que API Gateway realice las siguientes acciones en los recursos especificados:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:AddListenerCertificates",
                "elasticloadbalancing:RemoveListenerCertificates",
                "elasticloadbalancing:ModifyListener",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:DescribeLoadBalancers",
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords",
                "xray:GetSamplingTargets",
                "xray:GetSamplingRules",
                "logs:CreateLogDelivery",
                "logs:GetLogDelivery",
                "logs:UpdateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:ListLogDeliveries",
                "servicediscovery:DiscoverInstances"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "firehose:DescribeDeliveryStream",
                "firehose:PutRecord",
                "firehose:PutRecordBatch"
            ],
            "Resource": "arn:aws:firehose:*:*:deliverystream/amazon-apigateway-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "acm:DescribeCertificate",
                "acm:GetCertificate"
            ],
            "Resource": "arn:aws:acm:*:*:certificate/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateNetworkInterfacePermission",
            "Resource": "arn:aws:ec2:*:*:network-interface/*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:network-interface/*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Owner",
                        "VpcLinkId"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DeleteNetworkInterface",
                "ec2:AssignPrivateIpAddresses",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeNetworkInterfaceAttribute",
                "ec2:DescribeVpcs",
                "ec2:DescribeNetworkInterfacePermissions",
                "ec2:UnassignPrivateIpAddresses",
                "ec2:DescribeSubnets",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "servicediscovery:GetNamespace",
            "Resource": "arn:aws:servicediscovery:*:*:namespace/*"
        },
        {
            "Effect": "Allow",
            "Action": "servicediscovery:GetService",
            "Resource": "arn:aws:servicediscovery:*:*:service/*"
        }
    ]
}
```

------

Debe configurar permisos para permitir a una entidad de IAM (como un usuario, grupo o función) crear, editar o eliminar la descripción de una función vinculada a un servicio. Para obtener más información, consulte [Permisos de roles vinculados a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) en la *Guía del usuario de IAM.*.

## Creación de un rol vinculado a un servicio para API Gateway
<a name="create-slr"></a>

No necesita crear manualmente un rol vinculado a un servicio. Cuando crea una API, un nombre de dominio personalizado o un enlace de VPC en la Consola de administración de AWS, la AWS CLI o la API AWS, API Gateway crea de nuevo el rol vinculado a un servicio. 

Si elimina este rol vinculado a servicio y necesita crearlo de nuevo, puede utilizar el mismo proceso para volver a crear el rol en su cuenta. Cuando crea una API, un nombre de dominio personalizado o un enlace de VPC, API Gateway crea de nuevo el rol vinculado a un servicio. 

## Modificación de un rol vinculado a un servicio para API Gateway
<a name="edit-slr"></a>

API Gateway no permite editar el rol vinculado a un servicio AWSServiceRoleForAPIGateway. Después de crear un rol vinculado a un servicio, no puede cambiarle el nombre, ya que varias entidades pueden hacer referencia a él. Sin embargo, puede editar la descripción del rol mediante IAM. Para obtener más información, consulte [Editar un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) en la *Guía del usuario de IAM.*.

## Eliminación de un rol vinculado a un servicio para API Gateway
<a name="delete-slr"></a>

Si ya no necesita utilizar una característica o servicio que requiere un rol vinculado a un servicio, le recomendamos que elimine dicho rol. De esta forma no tiene una entidad no utilizada que no se monitoree ni mantenga de forma activa. Sin embargo, debe limpiar los recursos del rol vinculado al servicio antes de eliminarlo manualmente.

**nota**  
Si el servicio de API Gateway utiliza el rol cuando intenta eliminar los recursos, es posible que no se pueda borrar. En tal caso, espere unos minutos e intente de nuevo la operación.

**Para eliminar recursos de API Gateway utilizados por AWSServiceRoleForAPIGateway**

1. Abra la consola de Amazon API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway/). 

1. Vaya a la API, el nombre de dominio personalizado o el enlace de la VPC que utiliza el rol vinculado al servicio.

1. Use la consola de para eliminar el recurso.

1. Repita el procedimiento para eliminar todas las API, nombres de dominio personalizados o vínculos de la VPC que utilicen el rol vinculado al servicio.

**Para eliminar manualmente el rol vinculado a servicios mediante IAM**

Utilice la consola de IAM, la AWS CLI o la API de AWS para eliminar el rol vinculado a un servicio AWSServiceRoleForAPIGateway. Para obtener más información, consulte [Eliminación de un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) en la *Guía del usuario de IAM*.

## Regiones que admiten roles vinculados a servicios de API Gateway
<a name="slr-regions"></a>

API Gateway admite el uso de roles vinculados a servicios en todas las regiones en las que el servicio está disponible. Para obtener más información, consulte [Puntos de enlace del servicio de AWS](https://docs.aws.amazon.com/general/latest/gr/rande.html).

## Actualizaciones de API Gateway de las políticas administradas de AWS
<a name="security-iam-awsmanpol-updates"></a>



Es posible consultar los detalles sobre las actualizaciones de las políticas administradas de AWS para API Gateway debido a que este servicio comenzó a realizar el seguimiento de estos cambios. Para obtener alertas automáticas sobre cambios en esta página, suscríbase a la fuente RSS en la página de [historial de documentos](history.md) de la API Gateway.


| Cambio | Descripción | Fecha | 
| --- | --- | --- | 
|  Se ha añadido soporte `acm:GetCertificate` a la política de `AWSServiceRoleForAPIGateway`.  |  La política de `AWSServiceRoleForAPIGateway` ahora incluye permiso para llamar a la acción a la API de ACM `GetCertificate`.  | 12 de julio de 2021 | 
|  API Gateway comenzó el seguimiento de los cambios  |  API Gateway comenzó el seguimiento de los cambios para las Políticas administradas por AWS.  | 12 de julio de 2021 | 

# Registro y monitoreo en Amazon API Gateway
<a name="security-monitoring"></a>

El monitoreo es una parte importante para mantener la fiabilidad, la disponibilidad y el rendimiento de API Gateway y sus soluciones de AWS. Debe recopilar datos de monitoreo de todas las partes de su solución de AWS para que pueda depurar un error de varios puntos de una forma más fácil en caso de producirse. AWS proporciona varias herramientas para monitorear sus recursos de API Gateway y responder a posibles incidentes.

**Amazon CloudWatch Logs**  
Para ayudarle a depurar problemas relacionados con la ejecución de solicitudes o el acceso de clientes a la API, puede habilitar CloudWatch Logs para registrar las llamadas a la API. Para obtener más información, consulte [Configuración del registro de CloudWatch para las API de REST en API Gateway](set-up-logging.md).

**Alarmas de Amazon CloudWatch**  
Las alarmas de Amazon CloudWatch le permiten ver una sola métrica durante el período de tiempo que especifique. Si la métrica supera un límite determinado, se envía una notificación a un tema de Amazon Simple Notification Service o a una política de AWS Auto Scaling. Las alarmas de CloudWatch no invocan acciones cuando una métrica se encuentra en un estado determinado. En su lugar, el estado debe haber cambiado y debe mantenerse durante el número de periodos especificado. Para obtener más información, consulte [Supervisión de la ejecución de la API de REST con métricas de Amazon CloudWatch](monitoring-cloudwatch.md).

**Registro de acceso a Firehose**  
Para ayudar a depurar los problemas relacionados con el acceso de los clientes a la API, puede habilitar Firehose para registrar las llamadas a la API. Para obtener más información, consulte [Registro de llamadas a la API en Amazon Data Firehose en API Gateway](apigateway-logging-to-kinesis.md).

**AWS CloudTrail**  
CloudTrail proporciona un registro de las medidas adoptadas por un usuario, un rol o un servicio de AWS en API Gateway. Mediante la información recopilada por CloudTrail, puede determinar la solicitud que se realizó a API Gateway, la dirección IP de origen desde la que se realizó, quién la realizó y cuándo, etc. Para obtener más información, consulte [Registro de llamadas a las API de Amazon API Gateway con AWS CloudTrail](cloudtrail.md). 

**AWS X-Ray**  
X-Ray es un servicio de AWS que recopila datos sobre las solicitudes que la aplicación atiende y los utiliza para crear un mapa de servicios que puede usar para identificar problemas con la aplicación y oportunidades de optimización. Para obtener más información, consulte [Configuración de AWS X-Ray con las API de REST de API Gateway](apigateway-enabling-xray.md). 

**AWS Config**  
AWS Config proporciona una vista detallada de la configuración de los recursos de AWS de su cuenta. Puede observar las relaciones entre los recursos, obtener un historial de los cambios de configuración y comprobar cómo cambian las relaciones y configuraciones con el paso del tiempo. Puede utilizar AWS Config para definir reglas que evalúen la conformidad de los datos de estas configuraciones de recursos. Las reglas de AWS Config representan las opciones de configuración ideales para sus recursos de API Gateway. Si un recurso infringe una regla y está marcado como no conforme, AWS Config puede avisarle mediante un tema de Amazon Simple Notification Service (Amazon SNS). Para obtener información, consulte [Monitoreo de la configuración de la API de API Gateway con AWS Config](apigateway-config.md). 

# Registro de llamadas a las API de Amazon API Gateway con AWS CloudTrail
<a name="cloudtrail"></a>

Amazon API Gateway está integrado con [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html), un servicio que proporciona un registro de las acciones realizadas por un usuario, un rol o un Servicio de AWS. CloudTrail captura las llamadas a la API de REST de servicio de API Gateway como eventos. Las llamadas capturadas incluyen las llamadas desde la consola de API Gateway y las llamadas de código a las API de servicio de API Gateway. Mediante la información recopilada por CloudTrail, puede determinar la solicitud que se realizó a API Gateway, la dirección IP desde la que se realizó, cuándo se realizó y detalles adicionales.

**nota**  
[TestInvokeAuthorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html) y [TestInvokeMethod](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html) no se registran en CloudTrail.

Cada entrada de registro o evento contiene información sobre quién generó la solicitud. La información de identidad del usuario le ayuda a determinar lo siguiente:
+ Si la solicitud se realizó con las credenciales del usuario raíz o del usuario.
+ Si la solicitud se realizó en nombre de un usuario de IAM Identity Center.
+ Si la solicitud se realizó con credenciales de seguridad temporales de un rol o fue un usuario federado.
+ Si la solicitud la realizó otro Servicio de AWS.

CloudTrail está activado en la Cuenta de AWS cuando usted crea la cuenta y tiene acceso automático al **Historial de eventos** de CloudTrail. El **Historial de eventos** de CloudTrail proporciona un registro visible e inmutable, que se puede buscar y descargar, de los últimos 90 días de eventos de gestión registrados en una Región de AWS. Para obtener más información, consulte [Trabajar con el historial de eventos de CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html) en la *Guía del usuario de AWS CloudTrail*. No se cobran cargos de CloudTrail por ver el **Historial de eventos**.

Para mantener un registro permanente de los eventos en su Cuenta de AWS más allá de los 90 días, cree un registro de seguimiento o un almacén de datos de eventos de [CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html).

**Registros de seguimiento de CloudTrail**  
Un *registro de seguimiento* permite a CloudTrail enviar archivos de registro a un bucket de Amazon S3. Todos los registros de seguimiento que cree con la Consola de administración de AWS son de varias regiones. Puede crear un registro de seguimiento de una sola región o de varias regiones mediante la AWS CLI. Se recomienda crear un registro de seguimiento de varias regiones, ya que registra actividad en todas las Regiones de AWS de su cuenta. Si crea un registro de seguimiento de una sola región, solo podrá ver los eventos registrados en la Región de AWS del registro de seguimiento. Para obtener más información acerca de los registros de seguimiento, consulte [Creación de un registro de seguimiento para su Cuenta de AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) y [Creación de un registro de seguimiento para una organización](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html) en la *Guía del usuario de AWS CloudTrail*.  
Puede crear un registro de seguimiento para enviar una copia de los eventos de administración en curso en su bucket de Amazon S3 sin costo alguno desde CloudTrail; sin embargo, hay cargos por almacenamiento en Amazon S3. Para obtener más información sobre los precios de CloudTrail, consulte [Precios de AWS CloudTrail](https://aws.amazon.com/cloudtrail/pricing/). Para obtener información acerca de los precios de Amazon S3, consulte [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

**Almacenes de datos de eventos de CloudTrail Lake**  
*CloudTrail Lake* le permite ejecutar consultas basadas en SQL sobre los eventos. CloudTrail Lake convierte los eventos existentes en formato JSON basado en filas al formato [ORC de Apache](https://orc.apache.org/). ORC es un formato de almacenamiento en columnas optimizado para una recuperación rápida de datos. Los eventos se agregan en *almacenes de datos de eventos*, que son recopilaciones inmutables de eventos en función de criterios que se seleccionan aplicando [selectores de eventos avanzados](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors). Los selectores que se aplican a un almacén de datos de eventos controlan los eventos que perduran y están disponibles para la consulta. Para obtener más información acerca de CloudTrail Lake, consulte [Trabajar con AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) en la *Guía del usuario de AWS CloudTrail*.  
Los almacenes de datos de eventos de CloudTrail Lake y las consultas generan costos adicionales. Cuando crea un almacén de datos de eventos, debe elegir la [opción de precios](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option) que desee utilizar para él. La opción de precios determina el costo de la incorporación y el almacenamiento de los eventos, así como el período de retención predeterminado y máximo del almacén de datos de eventos. Para obtener más información sobre los precios de CloudTrail, consulte [Precios de AWS CloudTrail](https://aws.amazon.com/cloudtrail/pricing/).

## Eventos de administración de API Gateway en CloudTrail
<a name="cloudtrail-management-events"></a>

Los [eventos de administración](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events) proporcionan información sobre las operaciones de administración que se realizan en los recursos de su Cuenta de AWS. Se denominan también operaciones del plano de control. CloudTrail registra los eventos de administración de forma predeterminada.

Amazon API Gateway registra todas las acciones de API Gateway como eventos de administración, excepto [TestInvokeAuthorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html) y [TestInvokeMethod](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-method.html). Para obtener una lista de las acciones de Amazon API Gateway que API Gateway registra en CloudTrail, consulte la [Referencia de la API de Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/api/API_Operations.html).

## Ejemplo de evento de API Gateway
<a name="cloudtrail-event-examples"></a>

Un evento representa una única solicitud de cualquier origen e incluye información sobre la operación de la API solicitada, la fecha y la hora de la operación o los parámetros de la solicitud, entre otras cosas. Los archivos de registro de CloudTrail no rastrean el orden en la pila de las llamadas a la API públicas, por lo que los eventos no aparecen en un orden específico.

En el ejemplo siguiente se muestra un evento de CloudTrail que demuestra la acción `GetResource` de API Gateway:

```
{
    Records: [
        {
            eventVersion: "1.03",
            userIdentity: {
                type: "Root",
                principalId: "AKIAI44QH8DHBEXAMPLE",
                arn: "arn:aws:iam::123456789012:root",
                accountId: "123456789012",
                accessKeyId: "AKIAIOSFODNN7EXAMPLE",
                sessionContext: {
                    attributes: {
                        mfaAuthenticated: "false",
                        creationDate: "2015-06-16T23:37:58Z"
                    }
                }
            },
            eventTime: "2015-06-17T00:47:28Z",
            eventSource: "apigateway.amazonaws.com",
            eventName: "GetResource",
            awsRegion: "us-east-1",
            sourceIPAddress: "203.0.113.11",
            userAgent: "example-user-agent-string",
            requestParameters: {
                restApiId: "3rbEXAMPLE",
                resourceId: "5tfEXAMPLE",
                template: false
            },
            responseElements: null,
            requestID: "6d9c4bfc-148a-11e5-81b6-7577cEXAMPLE",
            eventID: "4d293154-a15b-4c33-9e0a-ff5eeEXAMPLE",
            readOnly: true,
            eventType: "AwsApiCall",
            recipientAccountId: "123456789012"
        },
        ... additional entries ...
    ]
}
```

Para obtener información sobre el contenido de los registros de CloudTrail, consulte [Contenido de los registros de CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html) en la *Guía del usuario de AWS CloudTrail*.

# Monitoreo de la configuración de la API de API Gateway con AWS Config
<a name="apigateway-config"></a>

Puede utilizar [AWS Config](https://aws.amazon.com/config/) para registrar cambios de configuración realizados en los recursos de la API de API Gateway y enviar notificaciones en función de los cambios de recursos. Mantener un historial de los cambios de configuración de los recursos de API Gateway es útil para los casos de uso relacionados con la solución de problemas operativos, auditoría y conformidad.

AWS Config puede realizar el seguimiento de cambios realizados en:
+ **Configuración de etapas de la API**, como por ejemplo:
  + configuración del clúster de caché
  + configuración de restricción
  + configuración del registro de acceso
  + la implementación activa definida en la etapa
+ **Configuración de la API**, como por ejemplo:
  + configuración de punto de enlace
  + versión
  + protocolo
  + etiquetas

Además, la característica Reglas de AWS Config le permite definir las reglas de configuración y detectar automáticamente, realizar el seguimiento y alertar cuando se infringen esas reglas. Mediante el seguimiento de los cambios realizados a las propiedades de la configuración de recursos, también puede crear reglas de AWS Config activadas por cambios para los recursos de API Gateway y probar las configuraciones de recursos en función de las prácticas recomendadas.

Puede habilitar AWS Config en su cuenta mediante la consola de AWS Config o la AWS CLI. Seleccione los tipos de recursos en los cuales quiere realizar el seguimiento de los cambios. Si anteriormente estableció la configuración para que AWS Config registrara todos los tipos de recursos, esos recursos de API Gateway se registran de forma automática en la cuenta. El soporte para Amazon API Gateway en AWS Config está disponible en todas las regiones públicas AWS y AWS GovCloud (US). Para ver la lista completa de las regiones admitidas, consulte [Puntos de conexión y cuotas de Amazon API Gateway](https://docs.aws.amazon.com/general/latest/gr/apigateway.html) en la Referencia general de AWS.

**Topics**
+ [Tipos de recursos admitidos](#apigateway-config-resources-rules)
+ [Configuración de AWS Config](#apigateway-config-setup)
+ [Configuración AWS Config para registrar recursos de API Gateway](#apigateway-config-configuring)
+ [Visualización de los detalles de configuración de API Gateway en la consola de AWS Config](#apigateway-config-console)
+ [Evaluación de recursos de API Gateway mediante las reglas de AWS Config](#apigateway-config-rules)

## Tipos de recursos admitidos
<a name="apigateway-config-resources-rules"></a>

Los siguientes tipos de recursos de API Gateway se integran con AWS Config y se documentan en [Tipos de recursos de AWS Config admitidos por AWS y relaciones de recursos](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html):
+ `AWS::ApiGatewayV2::Api` (WebSocket y API HTTP)
+ `AWS::ApiGateway::RestApi` (API REST)
+ `AWS::ApiGatewayV2::Stage` (WebSocket y etapa de API HTTP)
+ `AWS::ApiGateway::Stage` (Etapa de API de REST)

Para obtener más información sobre AWS Config, consulte la [Guía para desarrolladores de AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/). Para obtener información acerca de los precios, consulte la [página de información sobre precios de AWS Config](https://aws.amazon.com/config/pricing/).

**importante**  
Si cambia cualquiera de las siguientes propiedades de API una vez que se implementa la API, es *necesario* [volver a implementar](how-to-deploy-api.md) la API para propagar los cambios. De lo contrario, verá los cambios de atributo en la consola de AWS Config, pero la configuración de la propiedad anterior seguirá estando en vigor; el comportamiento de tiempo de ejecución de la API permanecerá inalterado.  
**`AWS::ApiGateway::RestApi`** – `binaryMediaTypes`, `minimumCompressionSize`, `apiKeySource`
**`AWS::ApiGatewayV2::Api`** – `apiKeySelectionExpression`

## Configuración de AWS Config
<a name="apigateway-config-setup"></a>

Para configurar AWS Config inicialmente, consulte los temas siguientes en la [Guía de desarrollador de AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/).
+ [Configuración AWS Config con la consola](https://docs.aws.amazon.com/config/latest/developerguide/gs-console.html)
+ [Configuración de AWS Config con la AWS CLI](https://docs.aws.amazon.com/config/latest/developerguide/gs-cli.html)

## Configuración AWS Config para registrar recursos de API Gateway
<a name="apigateway-config-configuring"></a>

De forma predeterminada, AWS Config registra los cambios de configuración de todos los tipos de recursos regionales admitidos que descubre en la región en la que se ejecuta el entorno. Puede personalizar AWS Config de forma que únicamente registre los cambios de determinados tipos de recursos o los cambios de los recursos globales.

Para obtener más información acerca de los recursos regionales y globales, así como el procedimiento de personalización de la configuración de AWS Config, consulte [Selección de los recursos que debe registrar AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html).

## Visualización de los detalles de configuración de API Gateway en la consola de AWS Config
<a name="apigateway-config-console"></a>

Puede utilizar la consola de AWS Config para buscar recursos de API Gateway y obtener datos actuales e históricos sobre sus configuraciones. El siguiente procedimiento muestra cómo buscar información sobre una API de API Gateway.

**Para buscar un recurso de API Gateway en la consola de AWS Config**

1. Abra la [consola de AWS Config](https://console.aws.amazon.com/config).

1. Elija **Resources (Recursos)**.

1. En la página **Resource inventory**, elija **Resources**.

1. Abra el menú **Resource type (Tipo de recurso)**, vaya a APIGateway o APIGatewayV2 y elija uno o varios tipos de recursos de API Gateway.

1. Elija **Look up (Buscar)**.

1. Elija un ID de recurso en la lista de recursos que muestra AWS Config. AWS Config muestra detalles de configuración y otra información sobre el recurso que ha seleccionado.

1. Para ver todos los detalles de la configuración registrada, elija **View Details (Ver detalles)**.

Para conocer otras maneras de buscar un recurso y ver información en esta página, consulte [Visualización de historial y configuraciones de recursos de AWS](https://docs.aws.amazon.com/config/latest/developerguide/view-manage-resource.html) en la Guía del desarrollador de AWS Config.

## Evaluación de recursos de API Gateway mediante las reglas de AWS Config
<a name="apigateway-config-rules"></a>

Puede crear reglas de AWS Config que representarán la configuración ideal para sus recursos de API Gateway. Puede utilizar [reglas administradas de AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) o definir reglas personalizadas. AWS Config realiza un seguimiento constante de los cambios de configuración de los recursos para determinar si estos cambios infringen cualquiera de las condiciones de las reglas. La consola de AWS Config muestra el estado de conformidad de sus reglas y recursos.

Si un recurso infringe una regla y está marcado como no conforme, AWS Config puede avisarle mediante un tema de la [Guía de desarrollador de Amazon Simple Notification Service](https://docs.aws.amazon.com/sns/latest/dg/) (Amazon SNS). Para consumir mediante programación los datos de estas alertas de AWS Config, utilice una cola de Amazon Simple Queue Service (Amazon SQS) como punto de enlace de notificación para el tema Amazon SNS.

Para obtener más información acerca de cómo configurar y utilizar reglas, consulte [Evaluación de recursos con reglas](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) en la [Guía para desarrolladores de AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/). 

# Validación de conformidad para Amazon API Gateway
<a name="apigateway-compliance"></a>

Para saber si un Servicio de AWS está incluido en el ámbito de programas de conformidad específicos, consulte [Servicios de AWS incluidos por programa de conformidad](https://aws.amazon.com/compliance/services-in-scope/) y escoja el programa de conformidad que le interese. Para obtener información general, consulte [Programas de conformidad de AWS](https://aws.amazon.com/compliance/programs/).

Puedes descargar los informes de auditoría de terceros utilizando AWS Artifact. Para obtener más información, consulte [Descarga de informes en AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Su responsabilidad de conformidad al utilizar Servicios de AWS se determina en función de la confidencialidad de los datos, los objetivos de conformidad de su empresa, así como de la legislación y los reglamentos aplicables. Para obtener más información sobre la responsabilidad de conformidad al usar Servicios de AWS, consulte la [Documentación de seguridad de AWS](https://docs.aws.amazon.com/security/).

# Resiliencia en Amazon API Gateway
<a name="disaster-recovery-resiliency"></a>

La infraestructura global de AWS se compone de regiones y zonas de disponibilidad de AWS. AWS Las regiones proporcionan varias zonas de disponibilidad físicamente independientes y aisladas que se encuentran conectadas mediante redes con un alto nivel de rendimiento y redundancia, además de baja latencia. Con las zonas de disponibilidad, puede diseñar y utilizar aplicaciones y bases de datos que realizan una conmutación por error automática entre las zonas sin interrupciones. Las zonas de disponibilidad tienen una mayor disponibilidad, tolerancia a errores y escalabilidad que las infraestructuras tradicionales de uno o varios centros de datos. 

Como servicio regional completamente administrado, API Gateway funciona en varias zonas de disponibilidad en cada región y utiliza la redundancia de las zonas de disponibilidad para minimizar los errores de infraestructura como una categoría de riesgo de disponibilidad. API Gateway se ha diseñado para recuperarse automáticamente de un error en una zona de disponibilidad. 

Para obtener más información sobre las regiones y zonas de disponibilidad de AWS, consulte [Infraestructura global de AWS](https://aws.amazon.com/about-aws/global-infrastructure/).

Para evitar que las API se vean abrumadas por demasiadas solicitudes, API Gateway limita las solicitudes a las API. En concreto, API Gateway establece un ratio de solicitudes en estado estable y una ráfaga de envíos de solicitudes para todas las API de su cuenta. Puede configurar la limitación controlada personalizada para sus API. Para obtener más información, consulte [Limitación de las solicitudes a sus API de REST para mejorar el rendimiento en API Gateway](api-gateway-request-throttling.md).

Puede utilizar las comprobaciones de estado de Route 53 para controlar la conmutación por error de DNS de una API de API Gateway en una región principal a una API de API Gateway en una región secundaria. Para ver un ejemplo, consulte [Configuración de las comprobaciones de estado personalizadas para la conmutación por error de DNS para una API de API Gateway](dns-failover.md).

# Seguridad de la infraestructura en Amazon API Gateway
<a name="infrastructure-security"></a>

Como se trata de un servicio administrado, Amazon API Gateway está protegido por la seguridad de red global de AWS. Para obtener información sobre los servicios de seguridad de AWS y sobre cómo AWS protege la infraestructura, consulte [Seguridad en la nube de AWS](https://aws.amazon.com/security/). Para diseñar su entorno de AWS siguiendo las prácticas recomendadas de seguridad de infraestructura, consulte [Protección de la infraestructura](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) en *Portal de seguridad de AWS Well‐Architected Framework*.

Puede utilizar llamadas a la API publicadas de AWS para obtener acceso a API Gateway a través de la red. Los clientes deben admitir lo siguiente:
+ Seguridad de la capa de transporte (TLS). Exigimos TLS 1.2 y recomendamos TLS 1.3.
+ Conjuntos de cifrado con confidencialidad directa total (PFS) como DHE (Ephemeral Diffie-Hellman) o ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). La mayoría de los sistemas modernos como Java 7 y posteriores son compatibles con estos modos.

Puede llamar a estas operaciones de la API desde cualquier ubicación de red, pero API Gateway admite políticas de acceso basadas en recursos, que pueden incluir restricciones en función de la dirección IP de origen. También puede utilizar las políticas basadas en recursos para controlar el acceso desde puntos de enlace específicos de Amazon Virtual Private Cloud (Amazon VPC) o VPC específicas. Este proceso aísla con eficacia el acceso de red a un recurso de API Gateway determinado solo desde la VPC específica de la red de AWS.

# Análisis de vulnerabilidades en Amazon API Gateway
<a name="vulnerability-analysis"></a>

La configuración y los controles de TI son una responsabilidad compartida entre AWS y usted, nuestro cliente. Para obtener más información, consulte el [modelo de responsabilidad compartida de AWS](https://aws.amazon.com/compliance/shared-responsibility-model/).

# Prácticas recomendadas sobre seguridad para Amazon API Gateway
<a name="security-best-practices"></a>

API Gateway proporciona un número de características de seguridad que debe tener en cuenta a la hora de desarrollar e implementar sus propias políticas de seguridad. Las siguientes prácticas recomendadas son directrices generales y no suponen una solución de seguridad completa. Puesto que es posible que estas prácticas recomendadas no sean adecuadas o suficientes para el entorno, considérelas como consideraciones útiles en lugar de como normas.

**Implementación del acceso a los privilegios mínimos**  
Utilice las políticas de IAM para implementar el acceso a los privilegios mínimos para crear, leer, actualizar o eliminar una API de API Gateway. Para obtener más información, consulte [Identity and Access Management para Amazon API Gateway](security-iam.md). API Gateway ofrece varias opciones para controlar el acceso a las API que cree. Para obtener más información, consulte [Control y administración del acceso a las API de REST en API Gateway](apigateway-control-access-to-api.md), [Control y administración del acceso a las API de WebSocket en API Gateway](apigateway-websocket-api-control-access.md) y [Control del acceso a API HTTP con autorizadores de JWT en API Gateway](http-api-jwt-authorizer.md).

**Implementar registro**  
Utilice CloudWatch Logs o Amazon Data Firehose para registrar solicitudes a las API. Para obtener más información, consulte [Supervisión de las API de REST en API Gateway](rest-api-monitor.md), [Configuración del registro de las API de WebSocket en API Gateway](websocket-api-logging.md) y [Configuración del registro de API HTTP en API Gateway](http-api-logging.md).

**Implementación de alarmas de Amazon CloudWatch**  
Las alarmas de Amazon CloudWatch le permiten ver una sola métrica durante el período de tiempo que especifique. Si la métrica supera un límite determinado, se envía una notificación a un tema de Amazon Simple Notification Service o a una política de AWS Auto Scaling. Las alarmas de CloudWatch no invocan acciones cuando una métrica se encuentra en un estado determinado. En su lugar, el estado debe haber cambiado y debe mantenerse durante el número de periodos especificado. Para obtener más información, consulte [Supervisión de la ejecución de la API de REST con métricas de Amazon CloudWatch](monitoring-cloudwatch.md).

**Habilitar AWS CloudTrail**  
CloudTrail proporciona un registro de las medidas adoptadas por un usuario, un rol o un servicio de AWS en API Gateway. Mediante la información recopilada por CloudTrail, puede determinar la solicitud que se realizó a API Gateway, la dirección IP de origen desde la que se realizó, quién la realizó y cuándo, etc. Para obtener más información, consulte [Registro de llamadas a las API de Amazon API Gateway con AWS CloudTrail](cloudtrail.md). 

**Habilitar AWS Config**  
AWS Config proporciona una vista detallada de la configuración de los recursos de AWS de su cuenta. Puede observar las relaciones entre los recursos, obtener un historial de los cambios de configuración y comprobar cómo cambian las relaciones y configuraciones con el paso del tiempo. Puede utilizar AWS Config para definir reglas que evalúen la conformidad de los datos de estas configuraciones de recursos. Las reglas de AWS Config representan las opciones de configuración ideales para sus recursos de API Gateway. Si un recurso infringe una regla y está marcado como no conforme, AWS Config puede avisarle mediante un tema de Amazon Simple Notification Service (Amazon SNS). Para obtener información, consulte [Monitoreo de la configuración de la API de API Gateway con AWS Config](apigateway-config.md). 

**Uso de AWS Security Hub CSPM**  
Monitoree el uso de API Gateway en relación con las mejores prácticas de seguridad con [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html). Security Hub CSPM utiliza *controles de seguridad* para evaluar las configuraciones de los recursos y los *estándares de seguridad* para ayudarlo a cumplir con varios marcos de conformidad. Para obtener más información sobre el uso de Security Hub CSPM para evaluar los recursos de API Gateway, consulte [Controles de Amazon API Gateway](https://docs.aws.amazon.com/securityhub/latest/userguide/apigateway-controls.html) en la *Guía del usuario de AWS Security Hub*.