

# 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 | 