

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# ApiAuth
<a name="sam-property-api-apiauth"></a>

Configura la autorización para controlar el acceso a su API de API Gateway.

Para obtener más información y ejemplos de configuración del acceso mediante, AWS SAM consulte[Controla el acceso a la API con tu AWS SAM plantilla](serverless-controlling-access-to-apis.md).

## Sintaxis
<a name="sam-property-api-apiauth-syntax"></a>

Para declarar esta entidad en su plantilla AWS Serverless Application Model (AWS SAM), utilice la siguiente sintaxis.

### YAML
<a name="sam-property-api-apiauth-syntax.yaml"></a>

```
  AddApiKeyRequiredToCorsPreflight: Boolean
  [AddDefaultAuthorizerToCorsPreflight](#sam-api-apiauth-adddefaultauthorizertocorspreflight): Boolean
  [ApiKeyRequired](#sam-api-apiauth-apikeyrequired): Boolean
  [Authorizers](#sam-api-apiauth-authorizers): CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM
  [DefaultAuthorizer](#sam-api-apiauth-defaultauthorizer): String
  [InvokeRole](#sam-api-apiauth-invokerole): String
  [ResourcePolicy](#sam-api-apiauth-resourcepolicy): ResourcePolicyStatement
  [UsagePlan](#sam-api-apiauth-usageplan): ApiUsagePlan
```

**nota**  
La propiedad `Authorizers` incluye `AWS_IAM`, pero no se necesita ninguna configuración adicional para `AWS_IAM`. Para ver un ejemplo, consulta [AWS YO SOY](#sam-property-api-apiauth--examples--aws_iam).

## Propiedades
<a name="sam-property-api-apiauth-properties"></a>

 `AddApiKeyRequiredToCorsPreflight`   <a name="sam-api-apiauth-addapikeyrequiredtocorspreflight"></a>
Si las propiedades `ApiKeyRequired` y `Cors` están configuradas, la configuración `AddApiKeyRequiredToCorsPreflight` provocará que la clave de API se añada a la propiedad `Options`.  
*Tipo*: Booleano  
*Obligatorio*: no  
*Valor predeterminado*: `True`  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `AddDefaultAuthorizerToCorsPreflight`   <a name="sam-api-apiauth-adddefaultauthorizertocorspreflight"></a>
Si las propiedades `DefaultAuthorizer` y `Cors` están configuradas, la configuración `AddDefaultAuthorizerToCorsPreflight` provocará que se añada el autorizador predeterminado a la propiedad `Options` en la sección OpenAPI.  
*Tipo*: Booleano  
*Obligatorio*: no  
*Valor predeterminado*: True  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `ApiKeyRequired`   <a name="sam-api-apiauth-apikeyrequired"></a>
Si se establece en true, una clave de API es necesaria para todos los eventos de API. Para obtener más información sobre claves de API, consulta el tema [Creación y utilización de planes de uso de claves API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) en la *Guía para desarrolladores de API Gateway*.  
*Tipo*: Booleano  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `Authorizers`   <a name="sam-api-apiauth-authorizers"></a>
El autorizador utilizado para controlar el acceso a la API de API Gateway.  
Para obtener más información, consulte [Controla el acceso a la API con tu AWS SAM plantilla](serverless-controlling-access-to-apis.md).  
*Tipo*: [CognitoAuthorizer](sam-property-api-cognitoauthorizer.md)\$1 [LambdaTokenAuthorizer](sam-property-api-lambdatokenauthorizer.md)\$1 [LambdaRequestAuthorizer](sam-property-api-lambdarequestauthorizer.md)\$1 AWS\$1IAM  
*Obligatorio*: no  
*Valor predeterminado*: Ninguno  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.  
*Notas adicionales*: SAM añade los autorizadores a la OpenApi definición de API.

 `DefaultAuthorizer`   <a name="sam-api-apiauth-defaultauthorizer"></a>
Especifica un autorizador predeterminado para una API de API Gateway, que se utilizará para autorizar las llamadas a la API de forma predeterminada.  
Si la API EventSource de la función asociada a esta API está configurada para usar permisos de IAM, esta propiedad debe estar establecida en; de lo contrario`AWS_IAM`, se producirá un error.
*Tipo:* cadena  
*Obligatorio*: no  
*Valor predeterminado*: Ninguno  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `InvokeRole`   <a name="sam-api-apiauth-invokerole"></a>
Establezca las credenciales de integración para todos los recursos y métodos en este valor.  
`CALLER_CREDENTIALS` se asigna a `arn:aws:iam:::<user>/`, que utiliza las credenciales de la persona que llama para invocar el punto de conexión.  
*Valores válidos*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn`  
*Tipo:* cadena  
*Obligatorio*: no  
*Valor predeterminado*: `CALLER_CREDENTIALS`  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

 `ResourcePolicy`   <a name="sam-api-apiauth-resourcepolicy"></a>
Configura la política de recursos para todos los métodos y rutas de una API.  
*Tipo:* [ResourcePolicyStatement](sam-property-api-resourcepolicystatement.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.  
*Notas adicionales*: Esta configuración también se puede definir de forma individual con `AWS::Serverless::Function` mediante [ApiFunctionAuth](sam-property-function-apifunctionauth.md). Esto es obligatorio para APIs con`EndpointConfiguration: PRIVATE`.

 `UsagePlan`   <a name="sam-api-apiauth-usageplan"></a>
Configura un plan de uso asociado a esta API. Para obtener más información sobre claves de API, consulta el tema [Creación y utilización de planes de uso de claves API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) en la *Guía para desarrolladores de API Gateway*.  
Esta AWS SAM propiedad genera tres CloudFormation recursos adicionales cuando se establece: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an y an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html). Para obtener información acerca de esta situación, consulta [UsagePlan se especifica la propiedad](sam-specification-generated-resources-api.md#sam-specification-generated-resources-api-usage-plan). Para obtener información general sobre CloudFormation los recursos generados, consulte[CloudFormation Recursos generados para AWS SAM](sam-specification-generated-resources.md).  
*Tipo:* [ApiUsagePlan](sam-property-api-apiusageplan.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

## Ejemplos
<a name="sam-property-api-apiauth--examples"></a>

### CognitoAuth
<a name="sam-property-api-apiauth--examples--cognitoauth"></a>

Ejemplo de autorización de Cognito

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
Auth:
  Authorizers:
    MyCognitoAuth:
     UserPoolArn:
       Fn::GetAtt:
         - MyUserPool
         - Arn
     AuthType: "COGNITO_USER_POOLS"
  DefaultAuthorizer: MyCognitoAuth
  InvokeRole: CALLER_CREDENTIALS
  AddDefaultAuthorizerToCorsPreflight: false
  ApiKeyRequired: false
  ResourcePolicy:
    CustomStatements: [{
      "Effect": "Allow",
      "Principal": "*",
      "Action": "execute-api:Invoke",
      "Resource": "execute-api:/Prod/GET/pets",
      "Condition": {
          "IpAddress": {
              "aws:SourceIp": "1.2.3.4"
          }
        }
    }]
    IpRangeDenylist:
      - "10.20.30.40"
```

### AWS YO SOY
<a name="sam-property-api-apiauth--examples--aws_iam"></a>

AWS Ejemplo de IAM

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
Auth:
  Authorizers: AWS_IAM
```