

Il s’agit du nouveau *Guide de référence des modèles CloudFormation *. Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le [guide de AWS CloudFormation l'utilisateur](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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.

# Fonctions de condition
<a name="intrinsic-function-reference-conditions"></a>

Vous pouvez utiliser des fonctions intrinsèques telles que `Fn::If` ou `Fn::Equals` pour créer et configurer des ressources de pile selon une logique conditionnelle. Ces conditions sont évaluées lors de la création ou de la mise à jour de la pile. Une fois toutes vos conditions définies, vous pouvez les associer à des ressources ou à des propriétés de ressources dans les sections `Resources` et `Outputs` du modèle.

Pour des scénarios avancés, vous pouvez combiner les conditions à l’aide des fonctions `Fn::And` ou `Fn::Or`, ou utiliser `Fn::Not` pour inverser la valeur d’une condition. Vous pouvez également imbriquer des conditions pour créer une logique conditionnelle plus complexe.

Si vous utilisez des conditions pour la première fois dans vos modèles, nous vous recommandons de consulter d'abord la rubrique relative à la [syntaxe des conditions du CloudFormation modèle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html) dans le *Guide de AWS CloudFormation l'utilisateur*.

**Note**  
Vous devez définir toutes les conditions dans la section `Conditions` du modèle, à l’exception des conditions `Fn::If`. Vous pouvez utiliser la condition `Fn::If` dans l’attribut `Metadata`, l’attribut `UpdatePolicy`, et dans les valeurs des propriétés des sections `Resources` et `Outputs`.

**Topics**
+ [`Fn::And`](#intrinsic-function-reference-conditions-and)
+ [`Fn::Equals`](#intrinsic-function-reference-conditions-equals)
+ [`Fn::If`](#intrinsic-function-reference-conditions-if)
+ [`Fn::Not`](#intrinsic-function-reference-conditions-not)
+ [`Fn::Or`](#intrinsic-function-reference-conditions-or)
+ [Fonctions prises en charge](#w2aac24c20c25)
+ [Exemple de modèle](#conditions-sample-templates)

## `Fn::And`
<a name="intrinsic-function-reference-conditions-and"></a>

Renvoie `true` si toutes les conditions spécifiées correspondent à true ou renvoie `false` si l'une des conditions équivaut à false. `Fn::And` agit en tant qu'opérateur AND. Le nombre minimum de conditions que vous pouvez inclure est de 2, et la valeur maximale est de 10.

### Déclaration
<a name="intrinsic-function-reference-conditions-and-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-and-syntax.json"></a>

```
"Fn::And": [{{{condition}}}, {{{...}}}]
```

#### YAML
<a name="intrinsic-function-reference-conditions-and-syntax.yaml"></a>

Syntaxe pour le nom complet de la fonction :

```
Fn::And: [{{condition}}]
```

Syntaxe pour la forme courte :

```
!And [{{condition}}]
```

### Parameters
<a name="w2aac24c20c13b7"></a>

condition  <a name="fn-and-condition"></a>
Condition qui correspond à `true` ou `false`.

### Exemples d’utilisation de `Fn::And`
<a name="w2aac24c20c13b9"></a>

La condition `MyAndCondition` suivante équivaut à true si le nom du groupe de sécurité référencé est égal à `sg-mysggroup` et si `SomeOtherCondition` est défini sur true :

#### JSON
<a name="intrinsic-function-reference-conditions-and-example.json"></a>

```
"MyAndCondition": {
   "Fn::And": [
      {"Fn::Equals": ["sg-mysggroup", {"Ref": "ASecurityGroup"}]},
      {"Condition": "SomeOtherCondition"}
   ]
}
```

#### YAML
<a name="intrinsic-function-reference-conditions-and-example.yaml"></a>

```
MyAndCondition: !And
  - !Equals ["sg-mysggroup", !Ref ASecurityGroup]
  - !Condition SomeOtherCondition
```

## `Fn::Equals`
<a name="intrinsic-function-reference-conditions-equals"></a>

Compare si deux valeurs sont égales Renvoie `true` si les deux valeurs sont égales ou `false` si elles ne le sont pas.

### Déclaration
<a name="intrinsic-function-reference-conditions-equals-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-equals-syntax.json"></a>

```
"Fn::Equals" : ["{{value_1}}", "{{value_2}}"]
```

#### YAML
<a name="intrinsic-function-reference-conditions-equals-syntax.yaml"></a>

Syntaxe pour le nom complet de la fonction :

```
Fn::Equals: [{{value_1}}, {{value_2}}]
```

Syntaxe pour la forme courte :

```
!Equals [{{value_1}}, {{value_2}}]
```

### Parameters
<a name="w2aac24c20c15b7"></a>

value  
Une valeur de chaîne à comparer.

### Exemples d’utilisation de `Fn::Equals`
<a name="w2aac24c20c15b9"></a>

La condition `IsProduction` suivante équivaut à true si la valeur du paramètre `EnvironmentType` est égal à `prod` :

#### JSON
<a name="intrinsic-function-reference-conditions-equals-example.json"></a>

```
"IsProduction" : {
   "Fn::Equals": [
      {"Ref": "EnvironmentType"},
      "prod"
   ]
}
```

#### YAML
<a name="intrinsic-function-reference-conditions-equals-example.yaml"></a>

```
IsProduction:
  !Equals [!Ref EnvironmentType, prod]
```

## `Fn::If`
<a name="intrinsic-function-reference-conditions-if"></a>

Renvoie une valeur si la condition spécifiée équivaut à `true` et une autre valeur si la condition spécifiée équivaut à `false`. Actuellement, CloudFormation prend en charge la fonction `Fn::If` intrinsèque dans les valeurs `UpdatePolicy` d'`Metadata`attribut, d'attribut et de propriété dans la `Resources` section et `Outputs` les sections d'un modèle. Vous pouvez utiliser le pseudo-paramètre `AWS::NoValue` comme valeur de retour pour supprimer la propriété correspondante.

### Déclaration
<a name="intrinsic-function-reference-conditions-if-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-if-syntax.json"></a>

```
"Fn::If": [{{condition_name}}, {{value_if_true}}, {{value_if_false}}]
```

#### YAML
<a name="intrinsic-function-reference-conditions-if-syntax.yaml"></a>

Syntaxe pour le nom complet de la fonction :

```
Fn::If: [{{condition_name}}, {{value_if_true}}, {{value_if_false}}]
```

Syntaxe pour la forme courte :

```
!If [{{condition_name}}, {{value_if_true}}, {{value_if_false}}]
```

### Parameters
<a name="w2aac24c20c19b7"></a>

condition\_name  <a name="condition_name"></a>
Référence à une condition dans la section Conditions. Utilisez le nom de la condition pour la référencer.

value\_if\_true  <a name="value_if_true"></a>
Valeur à renvoyer si la condition spécifiée équivaut à true.

value\_if\_false  <a name="value_if_false"></a>
Valeur à renvoyer si la condition spécifiée équivaut à `false`.

### Exemples d’utilisation de `Fn::If`
<a name="w2aac24c20c19b9"></a>

**Topics**
+ [Choix conditionnel d’une ressource](#w2aac24c20c19b9b5)
+ [Sorties conditionnelles](#w2aac24c20c19b9b7)
+ [Valeurs conditionnelles de tableaux](#w2aac24c20c19b9b9)
+ [Propriétés et valeurs de propriétés conditionnelles](#w2aac24c20c19b9c11)
+ [Politiques de mise à jour conditionnelles](#w2aac24c20c19b9c13)

#### Choix conditionnel d’une ressource
<a name="w2aac24c20c19b9b5"></a>

L'exemple suivant utilise une `Fn::If` fonction dans une définition de EC2 ressource Amazon pour déterminer la ressource du groupe de sécurité à associer à l'instance. Si la `CreateNewSecurityGroup` condition est vraie, CloudFormation utilise la valeur référencée de `NewSecurityGroup` (un groupe de sécurité créé ailleurs dans le modèle) pour spécifier la `SecurityGroupIds` propriété. Si la valeur `CreateNewSecurityGroup` est fausse, CloudFormation utilise la valeur référencée de `ExistingSecurityGroupId` (un paramètre qui fait référence à un groupe de sécurité existant).

##### JSON
<a name="intrinsic-function-reference-conditions-if-example1.json"></a>

```
"Resources": {
  "EC2Instance": {
    "Type": "AWS::EC2::Instance",
    "Properties": {
      "ImageId": "ami-0abcdef1234567890",
      "InstanceType": "t3.micro",
      "SecurityGroupIds": {
        "Fn::If": [
          "CreateNewSecurityGroup",
          [{"Ref": "NewSecurityGroup"}],
          [{"Ref": "ExistingSecurityGroupId"}]
        ]
      }]
    }
  }
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example1.yaml"></a>

```
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0abcdef1234567890
      InstanceType: t3.micro
      SecurityGroupIds: !If
        - CreateNewSecurityGroup
        - [!Ref NewSecurityGroup]
        - [!Ref ExistingSecurityGroupId]
```

#### Sorties conditionnelles
<a name="w2aac24c20c19b9b7"></a>

Dans la section `Output` d’un modèle, vous pouvez utiliser la fonction `Fn::If` pour générer conditionnellement des valeurs de sortie. Dans l'extrait suivant, si la `CreateNewSecurityGroup` condition est vraie, CloudFormation affiche l'ID du groupe de sécurité de la ressource. `NewSecurityGroup` Si la condition est fausse, CloudFormation affiche l'ID du groupe de sécurité de la `ExistingSecurityGroup` ressource.

##### JSON
<a name="intrinsic-function-reference-conditions-if-example2.json"></a>

```
"Outputs" : {
  "SecurityGroupId" : {
    "Description" : "Group ID of the security group used.",
    "Value" : {
      "Fn::If" : [
        "CreateNewSecurityGroup",
        {"Ref" : "NewSecurityGroup"},
        {"Ref" : "ExistingSecurityGroupId"}
      ]
    }
  }
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example2.yaml"></a>

```
Outputs:
  SecurityGroupId: 
    Description: Group ID of the security group used.
    Value: !If [CreateNewSecurityGroup, !Ref NewSecurityGroup, !Ref ExistingSecurityGroupId]
```

#### Valeurs conditionnelles de tableaux
<a name="w2aac24c20c19b9b9"></a>

L’exemple suivant utilise `Fn::If` pour fournir conditionnellement différentes valeurs de tableau selon une condition. Si la condition `MoreThan2AZs` est « true », trois sous-réseaux publics sont utilisés. Sinon, seuls deux sous-réseaux publics sont utilisés.

##### JSON
<a name="intrinsic-function-reference-conditions-if-example-arrays.json"></a>

```
"Subnets": {
  "Fn::If": [
    "MoreThan2AZs",
    [
      {"Fn::ImportValue": "PublicSubnet01"},
      {"Fn::ImportValue": "PublicSubnet02"},
      {"Fn::ImportValue": "PublicSubnet03"}
    ],
    [
      {"Fn::ImportValue": "PublicSubnet01"},
      {"Fn::ImportValue": "PublicSubnet02"}
    ]
  ]
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example-arrays.yaml"></a>

```
Subnets:
  Fn::If:
    - MoreThan2AZs
    - - Fn::ImportValue: PublicSubnet01
      - Fn::ImportValue: PublicSubnet02
      - Fn::ImportValue: PublicSubnet03
    - - Fn::ImportValue: PublicSubnet01
      - Fn::ImportValue: PublicSubnet02
```

#### Propriétés et valeurs de propriétés conditionnelles
<a name="w2aac24c20c19b9c11"></a>

L’exemple suivant utilise le pseudo-paramètre `AWS::NoValue` dans une fonction `Fn::If`. La condition utilise un instantané pour une instance de base de données Amazon RDS uniquement si un ID d'instantané est fourni. Si la `UseDBSnapshot` condition est vraie, CloudFormation utilise la valeur du `DBSnapshotName` paramètre de la `DBSnapshotIdentifier` propriété. Si la condition équivaut à false, CloudFormation supprime la propriété `DBSnapshotIdentifier`.

Il utilise également une fonction `Fn::If` dans la propriété `AllocatedStorage` de l’instance de base de données Amazon RDS. Si la condition `IsProduction` est « true », la taille de stockage est définie sur `100`. Sinon, elle est définie sur `20`.

##### JSON
<a name="intrinsic-function-reference-conditions-if-example3.json"></a>

```
"MyDatabase" : {
  "Type" : "AWS::RDS::DBInstance",
  "Properties": {
    "DBInstanceClass": "db.t3.micro",
    "AllocatedStorage": {
      "Fn::If": [
        "IsProduction",
        100,
        20
      ]
    },
    "Engine" : "MySQL",
    "EngineVersion" : "5.5",
    "MasterUsername" : { "Ref" : "DBUser" },
    "MasterUserPassword" : { "Ref" : "DBPassword" },
    "DBParameterGroupName" : { "Ref" : "MyRDSParamGroup" },
    "DBSnapshotIdentifier" : {
      "Fn::If" : [
        "UseDBSnapshot",
        {"Ref" : "DBSnapshotName"},
        {"Ref" : "AWS::NoValue"}
      ]
    }
  }
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example3.yaml"></a>

```
MyDatabase:
  Type: AWS::RDS::DBInstance
  Properties:
    DBInstanceClass: db.t3.micro
    AllocatedStorage: !If [IsProduction, 100, 20]
    Engine: MySQL
    EngineVersion: 5.5
    MasterUsername: !Ref DBUser
    MasterUserPassword: !Ref DBPassword
    DBParameterGroupName: !Ref MyRDSParamGroup
    DBSnapshotIdentifier: !If [UseDBSnapshot, !Ref DBSnapshotName, !Ref "AWS::NoValue"]
```

#### Politiques de mise à jour conditionnelles
<a name="w2aac24c20c19b9c13"></a>

L'extrait suivant fournit une politique de mise à jour Auto Scaling uniquement si la condition `RollingUpdates` équivaut à true (vrai). Si la condition est fausse, CloudFormation la politique de `AutoScalingRollingUpdate` mise à jour est supprimée.

##### JSON
<a name="intrinsic-function-reference-conditions-if-example4.json"></a>

```
"UpdatePolicy": {
  "Fn::If": [
    "RollingUpdates",
    {
      "AutoScalingRollingUpdate": {
        "MaxBatchSize": 2,
        "MinInstancesInService": 2,
        "PauseTime": "PT0M30S"
      }
    },
    {
      "Ref": "AWS::NoValue"
    }
  ]
}
```

##### YAML
<a name="intrinsic-function-reference-conditions-if-example4.yaml"></a>

```
UpdatePolicy: !If
  - RollingUpdates
  - AutoScalingRollingUpdate:
      MaxBatchSize: 2
      MinInstancesInService: 2
      PauseTime: PT0M30S
  - !Ref "AWS::NoValue"
```

## `Fn::Not`
<a name="intrinsic-function-reference-conditions-not"></a>

Renvoie `true` pour une condition qui équivaut à `false`, ou renvoie `false` pour une condition qui équivaut à `true`. `Fn::Not` agit en tant qu'opérateur NOT.

### Déclaration
<a name="intrinsic-function-reference-conditions-not-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-not-syntax.json"></a>

```
"Fn::Not": [{{{condition}}}]
```

#### YAML
<a name="intrinsic-function-reference-conditions-not-syntax.yaml"></a>

Syntaxe pour le nom complet de la fonction :

```
Fn::Not: [{{condition}}]
```

Syntaxe pour la forme courte :

```
!Not [{{condition}}]
```

### Parameters
<a name="w2aac24c20c21b7"></a>

condition  <a name="condition"></a>
Condition comme `Fn::Equals`, qui a la valeur `true` ou `false`.

### Exemples d’utilisation de `Fn::Not`
<a name="w2aac24c20c21b9"></a>

La condition `EnvCondition` suivante équivaut à true si la valeur du paramètre `EnvironmentType` est égal à `prod` :

#### JSON
<a name="intrinsic-function-reference-conditions-not-example.json"></a>

```
"MyNotCondition" : {
   "Fn::Not" : [{
      "Fn::Equals" : [
         {"Ref" : "EnvironmentType"},
         "prod"
      ]
   }]
}
```

#### YAML
<a name="intrinsic-function-reference-conditions-not-example.yaml"></a>

```
MyNotCondition:
  !Not [!Equals [!Ref EnvironmentType, prod]]
```

## `Fn::Or`
<a name="intrinsic-function-reference-conditions-or"></a>

Renvoie `true` si l'une quelconque des conditions spécifiées équivaut à true, ou renvoie `false` si toutes les conditions équivalent à false. `Fn::Or` agit en tant qu'opérateur OR. Le nombre minimum de conditions que vous pouvez inclure est de 2, et la valeur maximale est de 10.

### Déclaration
<a name="intrinsic-function-reference-conditions-or-syntax"></a>

#### JSON
<a name="intrinsic-function-reference-conditions-or-syntax.json"></a>

```
"Fn::Or": [{{{condition}}}, {{{...}}}]
```

#### YAML
<a name="intrinsic-function-reference-conditions-or-syntax.yaml"></a>

Syntaxe pour le nom complet de la fonction :

```
Fn::Or: [{{condition, ...}}]
```

Syntaxe pour la forme courte :

```
!Or [{{condition, ...}}]
```

### Parameters
<a name="w2aac24c20c23b7"></a>

condition  
Condition qui correspond à `true` ou `false`.

### Exemples d’utilisation de `Fn::Or`
<a name="w2aac24c20c23b9"></a>

La condition `MyOrCondition` suivante équivaut à true si le nom du groupe de sécurité référencé est égal à `sg-mysggroup` ou si `SomeOtherCondition` est défini sur true :

#### JSON
<a name="intrinsic-function-reference-conditions-or-example.json"></a>

```
"MyOrCondition" : {
   "Fn::Or" : [
      {"Fn::Equals" : ["sg-mysggroup", {"Ref" : "ASecurityGroup"}]},
      {"Condition" : "SomeOtherCondition"}
   ]
}
```

#### YAML
<a name="intrinsic-function-reference-conditions-or-example.yaml"></a>

```
MyOrCondition:
  !Or [!Equals [sg-mysggroup, !Ref ASecurityGroup], Condition: SomeOtherCondition]
```

## Fonctions prises en charge
<a name="w2aac24c20c25"></a>

Vous pouvez utiliser les fonctions suivantes dans la condition `Fn::If` :
+ `Fn::Base64`
+ `Fn::FindInMap`
+ `Fn::GetAtt`
+ `Fn::GetAZs`
+ `Fn::If`
+ `Fn::Join`
+ `Fn::Select`
+ `Fn::Sub`
+ `Ref`

Vous pouvez utiliser les fonctions suivantes dans toutes les autres fonctions de condition, comme `Fn::Equals` et `Fn::Or` :
+ `Fn::FindInMap`
+ `Ref`
+ Autres fonctions de condition

## Exemple de modèle
<a name="conditions-sample-templates"></a>

### Création de ressources de manière conditionnelle pour une pile de production, de développement ou de test
<a name="w2aac24c20c27b3"></a>

Dans certains cas, vous pouvez créer des piles qui sont semblables, mais qui impliquent des modifications mineures. Par exemple, vous utilisez peut-être un modèle pour les applications de production. Vous voulez créer la même pile de production afin de pouvoir l’utiliser pour le développement ou les tests. Cependant, pour le développement et les tests, vous n’avez pas forcément besoin de toute la capacité supplémentaire qui est incluse dans une pile de production. Au lieu de cela, vous pouvez utiliser un paramètre d’entrée pour le type d’environnement afin de créer de manière conditionnelle les ressources qui sont spécifiques à la production, au développement ou au test, comme illustré dans l’exemple suivant :

Vous pouvez spécifier `prod`, `dev` ou `test` pour le paramètre `EnvType`. Pour chaque type d'environnement, le modèle spécifie un autre type d'instance. Les types d'instance peuvent aller d'un type d'instance volumineux, optimisé pour le calcul à un type d'instance à usage général et de petite taille. Pour spécifier conditionnellement le type d’instance, le modèle définit deux conditions dans la section `Conditions` du modèle : `CreateProdResources`, qui est « true » si la valeur du paramètre `EnvType` est égale à `prod`, et `CreateDevResources`, qui est « true » si la valeur du paramètre est égale à `dev`.

Dans la propriété `InstanceType`, les modèles hébergent deux fonctions intrinsèques `Fn::If`pour déterminer le type d'instance à utiliser. Si la condition `CreateProdResources` équivaut à true, le type d'instance est `c5.xlarge`. Si la condition équivaut à false, la condition `CreateDevResources` est évaluée. Si la condition `CreateDevResources` équivaut à true, le type d'instance est `t3.medium`. Sinon, le type d'instance est `t3.small`.

Outre le type d'instance, l'environnement de production crée et attache un EC2 volume Amazon à l'instance. Les ressources `MountPoint` et `NewVolume` sont associées à la condition `CreateProdResources` pour que les ressources soient créées uniquement si la condition équivaut à true.

**Example JSON**  

```
{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Parameters" : {
    "EnvType" : {
      "Description" : "Environment type.",
      "Default" : "test",
      "Type" : "String",
      "AllowedValues" : ["prod", "dev", "test"],
      "ConstraintDescription" : "must specify prod, dev, or test."
    }
  },
  "Conditions" : {
    "CreateProdResources" : {"Fn::Equals" : [{"Ref" : "EnvType"}, "prod"]},
    "CreateDevResources" : {"Fn::Equals" : [{"Ref" : "EnvType"}, "dev"]}
  },
  "Resources" : {
    "EC2Instance" : {
      "Type" : "AWS::EC2::Instance",
      "Properties" : {
        "ImageId" : "ami-1234567890abcdef0",
        "InstanceType" : { "Fn::If" : [
          "CreateProdResources",
          "c5.xlarge",
          {"Fn::If" : [
            "CreateDevResources",
            "t3.medium",
            "t3.small"
          ]}
        ]}
      }
    },
    "MountPoint" : {
      "Type" : "AWS::EC2::VolumeAttachment",
      "Condition" : "CreateProdResources",
      "Properties" : {
        "InstanceId" : { "Ref" : "EC2Instance" },
        "VolumeId"  : { "Ref" : "NewVolume" },
        "Device" : "/dev/sdh"
      }
    },
    "NewVolume" : {
      "Type" : "AWS::EC2::Volume",
      "Condition" : "CreateProdResources",
      "Properties" : {
        "Size" : "100",
        "AvailabilityZone" : { "Fn::GetAtt" : [ "EC2Instance", "AvailabilityZone" ]}
      }
    }
  }
}
```

**Example YAML**  

```
AWSTemplateFormatVersion: "2010-09-09"
Parameters:
  EnvType:
    Description: Environment type.
    Default: test
    Type: String
    AllowedValues: [prod, dev, test]
    ConstraintDescription: must specify prod, dev, or test.
Conditions:
  CreateProdResources: !Equals [!Ref EnvType, prod]
  CreateDevResources: !Equals [!Ref EnvType, "dev"]
Resources:
  EC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-1234567890abcdef0
      InstanceType: !If [CreateProdResources, c5.xlarge, !If [CreateDevResources, t3.medium, t3.small]]    
  MountPoint:
    Type: AWS::EC2::VolumeAttachment
    Condition: CreateProdResources
    Properties:
      InstanceId: !Ref EC2Instance
      VolumeId: !Ref NewVolume
      Device: /dev/sdh
  NewVolume:
    Type: AWS::EC2::Volume
    Condition: CreateProdResources
    Properties:
      Size: 100
      AvailabilityZone: !GetAtt EC2Instance.AvailabilityZone
```

**Note**  
Pour des exemples plus complexes d’utilisation de conditions pour créer des ressources, consultez la rubrique [Attribut `Condition`](aws-attribute-condition.md).