

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

Configurez le mécanisme d'autorisation utilisé pour contrôler l'accès à votre API API Gateway.

Pour plus d'informations et des exemples de configuration de l'accès à l' AWS SAM aide de[Contrôlez l'accès aux API avec votre AWS SAM modèle](serverless-controlling-access-to-apis.md).

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

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

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

**Note**  
La `Authorizers` propriété inclut`AWS_IAM`, mais aucune configuration supplémentaire n'est nécessaire`AWS_IAM`. Pour obtenir un exemple, consultez [AWS IAM](#sam-property-api-apiauth--examples--aws_iam).

## Propriétés
<a name="sam-property-api-apiauth-properties"></a>

 `AddApiKeyRequiredToCorsPreflight`   <a name="sam-api-apiauth-addapikeyrequiredtocorspreflight"></a>
Si les propriétés `ApiKeyRequired` et `Cors` sont définies, alors le fait de définir `AddApiKeyRequiredToCorsPreflight` entraînera l'ajout la clé API à la propriété `Options`.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*Par défaut* : `True`  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `AddDefaultAuthorizerToCorsPreflight`   <a name="sam-api-apiauth-adddefaultauthorizertocorspreflight"></a>
Si les propriétés `DefaultAuthorizer` et `Cors` sont définies, alors le fait de définir `AddDefaultAuthorizerToCorsPreflight`entraînera l'ajout du mécanisme d'autorisation par défaut à la propriété `Options` dans la section OpenAPI.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*Valeur par défaut* : VRAI  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `ApiKeyRequired`   <a name="sam-api-apiauth-apikeyrequired"></a>
Si la valeur est définie sur « vrai », une clé d'API est requise pour tous les événements d'API. Pour plus d'informations sur les clés API, consultez [Création et utilisation de plans d'utilisation avec les clés API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) dans le *Guide du développeur API Gateway*.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Authorizers`   <a name="sam-api-apiauth-authorizers"></a>
Le mécanisme d'autorisation utilisé pour contrôler l'accès à votre API API Gateway.  
Pour de plus amples informations, veuillez consulter [Contrôlez l'accès aux API avec votre AWS SAM modèle](serverless-controlling-access-to-apis.md).  
*Type* : [CognitoAuthorizer](sam-property-api-cognitoauthorizer.md)\$1 [LambdaTokenAuthorizer](sam-property-api-lambdatokenauthorizer.md)\$1 [LambdaRequestAuthorizer](sam-property-api-lambdarequestauthorizer.md)\$1 AWS\$1IAM  
*Obligatoire* : non  
*Par défaut* : aucun  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.  
*Remarques supplémentaires* : SAM ajoute les Autorisateurs à la OpenApi définition d'une API.

 `DefaultAuthorizer`   <a name="sam-api-apiauth-defaultauthorizer"></a>
Spécifiez un autorisateur par défaut pour une API API Gateway, qui sera utilisé pour autoriser les appels d'API par défaut.  
Si l'API EventSource de la fonction associée à cette API est configurée pour utiliser les autorisations IAM, cette propriété doit être définie sur`AWS_IAM`, sinon une erreur se produira.
*Type* : chaîne  
*Obligatoire* : non  
*Par défaut* : aucun  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `InvokeRole`   <a name="sam-api-apiauth-invokerole"></a>
Définit les informations d'identification d'intégration pour toutes les ressources et méthodes sur cette valeur.  
`CALLER_CREDENTIALS` mappe avec `arn:aws:iam:::<user>/`, qui utilise les informations d'identification de l'appelant pour appeler le point de terminaison.  
*Valeurs valides* : `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn`  
*Type* : chaîne  
*Obligatoire* : non  
*Par défaut* : `CALLER_CREDENTIALS`  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `ResourcePolicy`   <a name="sam-api-apiauth-resourcepolicy"></a>
Configurez la stratégie de ressources pour toutes les méthodes et chemins d'accès d'une API.  
*Type :* [ResourcePolicyStatement](sam-property-api-resourcepolicystatement.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.  
*Informations complémentaires* : ce paramètre peut également être défini sur `AWS::Serverless::Function` à l'aide de [ApiFunctionAuth](sam-property-function-apifunctionauth.md). Ceci est requis pour APIs avec`EndpointConfiguration: PRIVATE`.

 `UsagePlan`   <a name="sam-api-apiauth-usageplan"></a>
Configure un plan d'utilisation associé à cette API. Pour plus d'informations sur les plans d'utilisation, consultez [Création et utilisation de plans d'utilisation avec les clés API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) dans le *Guide du développeur API Gateway*.  
Cette AWS SAM propriété génère trois CloudFormation ressources supplémentaires lorsqu'elle est définie : 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 et 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). Pour plus d'informations sur ce scénario, consultez [UsagePlan la propriété est spécifiée](sam-specification-generated-resources-api.md#sam-specification-generated-resources-api-usage-plan). Pour des informations générales sur les CloudFormation ressources générées, consultez[CloudFormation Ressources générées pour AWS SAM](sam-specification-generated-resources.md).  
*Type :* [ApiUsagePlan](sam-property-api-apiusageplan.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

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

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

Exemple de Cognito Auth

#### 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 IAM
<a name="sam-property-api-apiauth--examples--aws_iam"></a>

AWS Exemple IAM

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

```
Auth:
  Authorizers: AWS_IAM
```