

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.

# ApiFunctionAuth
<a name="sam-property-function-apifunctionauth"></a>

Configure l'autorisation au niveau de l'événement, pour une API, un chemin et une méthode spécifiques.

## Syntaxe
<a name="sam-property-function-apifunctionauth-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-function-apifunctionauth-syntax.yaml"></a>

```
  [ApiKeyRequired](#sam-function-apifunctionauth-apikeyrequired): Boolean
  [AuthorizationScopes](#sam-function-apifunctionauth-authorizationscopes): List
  [Authorizer](#sam-function-apifunctionauth-authorizer): String
  [InvokeRole](#sam-function-apifunctionauth-invokerole): String
  OverrideApiAuth: Boolean
  [ResourcePolicy](#sam-function-apifunctionauth-resourcepolicy): ResourcePolicyStatement
```

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

 `ApiKeyRequired`   <a name="sam-function-apifunctionauth-apikeyrequired"></a>
Nécessite une clé API pour cette API, ce chemin d'accès et cette méthode.  
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `AuthorizationScopes`   <a name="sam-function-apifunctionauth-authorizationscopes"></a>
Les étendues d'autorisation à appliquer à cette API, ce chemin d'accès et cette méthode.  
Les étendues que vous spécifiez remplaceront toutes les étendues appliquées par la propriété `DefaultAuthorizer` si vous l'avez spécifiée.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Authorizer`   <a name="sam-function-apifunctionauth-authorizer"></a>
Le `Authorizer` pour une fonction spécifique.  
Si un mécanisme d'autorisation global est spécifié pour votre ressource `AWS::Serverless::Api`, vous pouvez remplacer le mécanisme d'autorisation en définissant `Authorizer` sur `NONE`. Pour obtenir un exemple, consultez [Remplacer un mécanisme d'autorisation global pour votre API REST Amazon API Gateway](#sam-property-function-apifunctionauth--examples--override).  
Si vous utilisez la propriété `DefinitionBody` d'une ressource `AWS::Serverless::Api` pour décrire votre API, vous devez utiliser `OverrideApiAuth` avec `Authorizer` pour remplacer votre mécanisme d'autorisation global. Pour plus d’informations, consultez `OverrideApiAuth`.
*Valeurs valides* : `AWS_IAM``NONE`, ou l'identifiant logique de tout autorisateur défini dans votre AWS SAM modèle.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `InvokeRole`   <a name="sam-function-apifunctionauth-invokerole"></a>
Spécifie le `InvokeRole` à utiliser pour l'autorisation `AWS_IAM`.  
*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.  
*Informations complémentaires* : `CALLER_CREDENTIALS` mappe avec `arn:aws:iam:::<user>/`, qui utilise les informations d'identification de l'appelant pour appeler le point de terminaison.

`OverrideApiAuth`  <a name="sam-function-apifunctionauth-overrideapiauth"></a>
Définissez-la sur `true` pour remplacer la configuration du mécanisme d'autorisation global de votre ressource `AWS::Serverless::Api`. Cette propriété n'est requise que si vous spécifiez un mécanisme d'autorisation global et que vous utilisez la propriété `DefinitionBody` d'une ressource `AWS::Serverless::Api` pour décrire votre API.  
Lorsque vous spécifiez `OverrideApiAuth` comme`true`, AWS SAM cela remplacera votre autorisateur global par toutes les valeurs fournies pour `ApiKeyRequired``Authorizer`, ou. `ResourcePolicy` C'est pourquoi au moins une de ces propriétés doit également être spécifiée lors de l'utilisation de `OverrideApiAuth`. Pour obtenir un exemple, consultez [Remplacer un autorisateur global lorsque DefinitionBody for est spécifié AWS::Serverless::Api](#sam-property-function-apifunctionauth--examples--override2).
*Type* : valeur booléenne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `ResourcePolicy`   <a name="sam-function-apifunctionauth-resourcepolicy"></a>
Configurez la stratégie de ressources pour ce chemin d'accès sur une API.  
*Type :* [ResourcePolicyStatement](sam-property-function-resourcepolicystatement.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

## Exemples
<a name="sam-property-function-apifunctionauth--examples"></a>

### Fonction-Auth (Autorisation fonction)
<a name="sam-property-function-apifunctionauth--examples--function-auth"></a>

L'exemple suivant spécifie l'autorisation au niveau de la fonction.

#### YAML
<a name="sam-property-function-apifunctionauth--examples--function-auth--yaml"></a>

```
Auth:
  ApiKeyRequired: true
  Authorizer: NONE
```

### Remplacer un mécanisme d'autorisation global pour votre API REST Amazon API Gateway
<a name="sam-property-function-apifunctionauth--examples--override"></a>

Vous pouvez spécifier un mécanisme d'autorisation global pour votre ressource `AWS::Serverless::Api`. Voici un exemple de configuration d'un mécanisme d'autorisation global par défaut :

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyApiWithLambdaRequestAuth:
    Type: AWS::Serverless::Api
    Properties:
      ...
      Auth:
        Authorizers:
          MyLambdaRequestAuth:
            FunctionArn: !GetAtt MyAuthFn.Arn
        DefaultAuthorizer: MyLambdaRequestAuth
```

Pour remplacer l'autorisateur par défaut pour votre AWS Lambda fonction, vous pouvez spécifier `Authorizer` comme. `NONE` Voici un exemple :

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  ...
  MyFn:
    Type: AWS::Serverless::Function
    Properties:
      ...
      Events:
        LambdaRequest:
          Type: Api
          Properties:
            RestApiId: !Ref MyApiWithLambdaRequestAuth
            Method: GET
            Auth:
              Authorizer: NONE
```

### Remplacer un autorisateur global lorsque DefinitionBody for est spécifié AWS::Serverless::Api
<a name="sam-property-function-apifunctionauth--examples--override2"></a>

Lorsque vous utilisez la propriété `DefinitionBody` pour décrire votre ressource `AWS::Serverless::Api`, la méthode de remplacement précédente ne fonctionne pas. Voici un exemple d'utilisation de la propriété `DefinitionBody` pour une ressource `AWS::Serverless::Api` :

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyApiWithLambdaRequestAuth:
    Type: AWS::Serverless::Api
    Properties:
      ...
      DefinitionBody:
        swagger: 2.0
        ...
        paths:
          /lambda-request:
            ...
      Auth:
        Authorizers:
          MyLambdaRequestAuth:
            FunctionArn: !GetAtt MyAuthFn.Arn
        DefaultAuthorizer: MyLambdaRequestAuth
```

Pour annuler le mécanisme d'autorisation global, utilisez la propriété `OverrideApiAuth`. Voici un exemple qui utilise `OverrideApiAuth` pour remplacer le mécanisme d'autorisation global par la valeur fournie pour `Authorizer` :

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
...
Resources:
  MyApiWithLambdaRequestAuth:
    Type: AWS::Serverless::Api
    Properties:
      ...
      DefinitionBody:
        swagger: 2-0
        ...
        paths:
          /lambda-request:
            ...
      Auth:
        Authorizers:
          MyLambdaRequestAuth:
            FunctionArn: !GetAtt MyAuthFn.Arn
        DefaultAuthorizer: MyLambdaRequestAuth
    
    MyAuthFn:
      Type: AWS::Serverless::Function
      ...
    
    MyFn:
      Type: AWS::Serverless::Function
        Properties:
          ...
          Events:
            LambdaRequest:
              Type: Api
              Properties:
                RestApiId: !Ref MyApiWithLambdaRequestAuth
                Method: GET
                Auth:
                  Authorizer: NONE
                  OverrideApiAuth: true
                Path: /lambda-token
```

# ResourcePolicyStatement
<a name="sam-property-function-resourcepolicystatement"></a>

Configure une stratégie de ressource pour toutes les méthodes et chemins d'accès d'une API. Pour plus d'informations sur les stratégies de ressources, consultez [Contrôle de l'accès à une API avec des stratégies de ressources API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html) dans le *Guide du développeur API*.

## Syntaxe
<a name="sam-property-function-resourcepolicystatement-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-function-resourcepolicystatement-syntax.yaml"></a>

```
  [AwsAccountBlacklist](#sam-function-resourcepolicystatement-awsaccountblacklist): List
  [AwsAccountWhitelist](#sam-function-resourcepolicystatement-awsaccountwhitelist): List
  [CustomStatements](#sam-function-resourcepolicystatement-customstatements): List
  [IntrinsicVpcBlacklist](#sam-function-resourcepolicystatement-intrinsicvpcblacklist): List
  [IntrinsicVpcWhitelist](#sam-function-resourcepolicystatement-intrinsicvpcwhitelist): List
  [IntrinsicVpceBlacklist](#sam-function-resourcepolicystatement-intrinsicvpceblacklist): List
  [IntrinsicVpceWhitelist](#sam-function-resourcepolicystatement-intrinsicvpcewhitelist): List
  [IpRangeBlacklist](#sam-function-resourcepolicystatement-iprangeblacklist): List
  [IpRangeWhitelist](#sam-function-resourcepolicystatement-iprangewhitelist): List
  [SourceVpcBlacklist](#sam-function-resourcepolicystatement-sourcevpcblacklist): List
  [SourceVpcWhitelist](#sam-function-resourcepolicystatement-sourcevpcwhitelist): List
```

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

 `AwsAccountBlacklist`   <a name="sam-function-resourcepolicystatement-awsaccountblacklist"></a>
Les AWS comptes à bloquer.  
*Type* : liste de chaînes  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `AwsAccountWhitelist`   <a name="sam-function-resourcepolicystatement-awsaccountwhitelist"></a>
Les AWS comptes à autoriser. Pour obtenir un exemple d'utilisation de cette propriété, consultez la section Exemples en bas de cette page.  
*Type* : liste de chaînes  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `CustomStatements`   <a name="sam-function-resourcepolicystatement-customstatements"></a>
Une liste des instructions de stratégie de ressource personnalisées à appliquer à cette API. Pour obtenir un exemple d'utilisation de cette propriété, consultez la section Exemples en bas de cette page.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `IntrinsicVpcBlacklist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcblacklist"></a>
La liste des clouds privés virtuels (VPCs) à bloquer, où chaque VPC est spécifié comme référence, telle qu'une [référence dynamique](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) ou une fonction `Ref` [intrinsèque](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html). Pour obtenir un exemple d'utilisation de cette propriété, consultez la section Exemples en bas de cette page.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `IntrinsicVpcWhitelist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcwhitelist"></a>
La liste des VPCs à autoriser, où chaque VPC est spécifié comme référence, telle qu'une [référence dynamique](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) ou une fonction `Ref` [intrinsèque](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html).  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `IntrinsicVpceBlacklist`   <a name="sam-function-resourcepolicystatement-intrinsicvpceblacklist"></a>
Liste des points de terminaison VPC à bloquer, où chaque point de terminaison VPC est spécifié comme une référence telle qu'une [Référence dynamique](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) ou la [fonction intrinsèque](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) `Ref`.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `IntrinsicVpceWhitelist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcewhitelist"></a>
Liste des points de terminaison VPC à autoriser, où chaque point de terminaison VPC est spécifié en tant que référence telle qu'une [Référence dynamique](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) ou la [fonction intrinsèque](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) `Ref`. Pour obtenir un exemple d'utilisation de cette propriété, consultez la section Exemples en bas de cette page.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `IpRangeBlacklist`   <a name="sam-function-resourcepolicystatement-iprangeblacklist"></a>
L'adresse IP ou les plages d'adresses à bloquer. Pour obtenir un exemple d'utilisation de cette propriété, consultez la section Exemples en bas de cette page.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `IpRangeWhitelist`   <a name="sam-function-resourcepolicystatement-iprangewhitelist"></a>
L'adresse IP ou les plages d'adresses à autoriser.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `SourceVpcBlacklist`   <a name="sam-function-resourcepolicystatement-sourcevpcblacklist"></a>
Les points de terminaison VPC ou VPC source à bloquer. Les noms de VPC source doivent commencer par `"vpc-"` et les noms de point de terminaison VPC source doivent commencer par `"vpce-"`. Pour obtenir un exemple d'utilisation de cette propriété, consultez la section Exemples en bas de cette page.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `SourceVpcWhitelist`   <a name="sam-function-resourcepolicystatement-sourcevpcwhitelist"></a>
Les points de terminaison VPC ou VPC source à autoriser. Les noms de VPC source doivent commencer par `"vpc-"` et les noms de point de terminaison VPC source doivent commencer par `"vpce-"`.  
*Type* : liste  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

## Exemples
<a name="sam-property-function-resourcepolicystatement--examples"></a>

### Exemples de stratégie basée sur les ressources
<a name="sam-property-function-resourcepolicystatement--examples--resource-policy-example"></a>

L'exemple suivant bloque deux adresses IP et un VPC source, et autorise un AWS compte.

#### YAML
<a name="sam-property-function-resourcepolicystatement--examples--resource-policy-example--yaml"></a>

```
Auth:
  ResourcePolicy:
    CustomStatements: [{
                         "Effect": "Allow",
                         "Principal": "*",
                         "Action": "execute-api:Invoke",
                         "Resource": "execute-api:/Prod/GET/pets",
                         "Condition": {
                           "IpAddress": {
                             "aws:SourceIp": "1.2.3.4"
                           }
                         }
                       }]
    IpRangeBlacklist:
      - "10.20.30.40"
      - "1.2.3.4"
    SourceVpcBlacklist:
      - "vpce-1a2b3c4d"
    AwsAccountWhitelist:
      - "111122223333"
    IntrinsicVpcBlacklist:
      - "{{resolve:ssm:SomeVPCReference:1}}" 
      - !Ref MyVPC
    IntrinsicVpceWhitelist:
      - "{{resolve:ssm:SomeVPCEReference:1}}" 
      - !Ref MyVPCE
```