

AWS App Runner ne sera plus ouvert aux nouveaux clients à compter du 30 avril 2026. Si vous souhaitez utiliser App Runner, inscrivez-vous avant cette date. Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez [AWS App Runner la section Modification de la disponibilité](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.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.

# Référencement des variables d'environnement
<a name="env-variable"></a>

Avec App Runner, vous pouvez référencer des secrets et des configurations en tant que variables d'environnement dans votre service lorsque vous [créez un service](manage-create.md) ou que vous le [mettez à jour](manage-configure.md). 

Vous pouvez référencer des données de configuration non sensibles telles que les délais d'expiration et le nombre de nouvelles tentatives en **texte brut** sous forme de paires clé-valeur. Les données de configuration auxquelles vous faites référence en **texte brut** ne sont pas cryptées et sont visibles par les autres utilisateurs dans les journaux de configuration du service et des applications App Runner.

**Note**  
Pour des raisons de sécurité, ne faites référence à aucune donnée sensible en **texte brut** dans votre service App Runner.

## Référencement de données sensibles en tant que variables d'environnement
<a name="env-variable.sensitivedata"></a>

App Runner permet de référencer en toute sécurité les données sensibles en tant que variables d'environnement dans votre service. Envisagez de stocker les données sensibles que vous souhaitez référencer dans le *AWS Secrets ManagerAWS Systems Manager **Parameter Store*. Vous pouvez ensuite les référencer en toute sécurité dans votre service en tant que variables d'environnement depuis la console App Runner ou en appelant l'API. Cela permet de séparer efficacement la gestion des secrets et des paramètres du code de votre application et de la configuration des services, améliorant ainsi la sécurité globale de vos applications exécutées sur App Runner. 

**Note**  
App Runner ne vous facture pas le fait de référencer Secrets Manager et SSM Parameter Store en tant que variables d'environnement. Toutefois, vous payez le tarif standard pour utiliser Secrets Manager et SSM Parameter Store.  
Pour plus d'informations sur les tarifs, consultez les rubriques suivantes :   
 [AWS Tarifs de Secrets Manager](https://aws.amazon.com/secrets-manager/pricing)
 [AWS Tarification du SSM Parameter Store](https://aws.amazon.com/systems-manager/pricing) 

 Le processus de référence des données sensibles en tant que variables d'environnement est le suivant : 

1. Stockez les données sensibles, telles que les clés d'API, les informations d'identification de base de données, les paramètres de connexion à la base de données ou les versions des applications sous forme de secrets ou de paramètres dans l'un AWS Secrets Manager ou l'autre magasin de AWS Systems Manager paramètres. 

1. Mettez à jour la politique IAM de votre rôle d'instance afin qu'App Runner puisse accéder aux secrets et aux paramètres stockés dans Secrets Manager et SSM Parameter Store. Pour plus d'informations, consultez [Autorisations ](#env-variable.sensitivedata.permissions). 

1. Référencez de manière sécurisée les secrets et les paramètres en tant que variables d'environnement en leur attribuant un nom et en fournissant leur Amazon Resource Name (ARN). Vous pouvez ajouter des variables d'environnement lorsque vous [créez un service](manage-create.md) ou que vous [mettez à jour la configuration d'un service](manage-configure.md). Vous pouvez utiliser l'une des options suivantes pour ajouter des variables d'environnement :
   +  Console App Runner 
   +  API App Runner 
   +  Fichier de configuration `apprunner.yaml` 
**Note**  
Vous ne pouvez pas attribuer `PORT` de nom à une variable d'environnement lors de la création ou de la mise à jour de votre service App Runner. Il s'agit d'une variable d'environnement réservée au service App Runner. 

   Pour plus d'informations sur la façon de référencer les secrets et les paramètres, consultez [la section Gestion des variables d'environnement](env-variable-manage.md). 

**Note**  
 Étant donné qu'App Runner ne stocke que la référence au secret et au paramètre ARNs, les données sensibles ne sont pas visibles par les autres utilisateurs dans la configuration du service App Runner et dans les journaux des applications. 

## Considérations
<a name="env-variable.sensitivedata.considerations"></a>
+ Assurez-vous de mettre à jour votre rôle d'instance avec les autorisations appropriées pour accéder aux secrets et aux paramètres dans AWS Secrets Manager ou dans AWS Systems Manager Parameter Store. Pour plus d'informations, consultez [Autorisations ](#env-variable.sensitivedata.permissions). 
+ Assurez-vous que AWS Systems Manager Parameter Store se trouve dans le même Compte AWS que le service que vous souhaitez lancer ou mettre à jour. À l'heure actuelle, vous ne pouvez pas référencer les paramètres du magasin de paramètres SSM entre les comptes. 
+ Lorsque les secrets et les valeurs des paramètres sont pivotés ou modifiés, ils ne sont pas automatiquement mis à jour dans votre service App Runner. Redéployez votre service App Runner car App Runner extrait uniquement les secrets et les paramètres lors du déploiement. 
+ Vous avez également la possibilité d'appeler directement un AWS Secrets Manager AWS Systems Manager Parameter Store via le SDK de votre service App Runner. 
+ Pour éviter les erreurs, veillez à respecter les points suivants lorsque vous les référencez en tant que variables d'environnement : 
  + Vous spécifiez le bon ARN du secret.
  + Vous spécifiez le nom ou le bon ARN du paramètre.

## Permissions
<a name="env-variable.sensitivedata.permissions"></a>

Pour activer le référencement des secrets et des paramètres stockés dans le magasin de paramètres AWS Secrets Manager ou SSM, ajoutez les autorisations appropriées à la politique IAM de votre *rôle d'instance* pour accéder à Secrets Manager et au magasin de paramètres SSM. 

**Note**  
 App Runner ne peut pas accéder aux ressources de votre compte sans votre autorisation. Vous fournissez l'autorisation en mettant à jour votre politique IAM. 

Vous pouvez utiliser les modèles de politique suivants pour mettre à jour votre rôle d'instance dans la console IAM. Vous pouvez modifier ces modèles de politique pour répondre à vos besoins spécifiques. Pour plus d'informations sur la mise à jour d'un rôle d'instance, consultez la section [Modification d'un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html) dans le *Guide de l'utilisateur IAM*.

**Note**  
Vous pouvez également copier les modèles suivants depuis la console App Runner lors de [la création des variables d'environnement](env-variable-manage.md#env-variable-manage.console). 

Copiez le modèle suivant dans votre rôle d'instance pour ajouter l'autorisation de référencer les *secrets* à partir de *AWS Secrets Manager*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "secretsmanager:GetSecretValue",
            "kms:Decrypt*"
        ],
        "Resource": [
            "arn:aws:secretsmanager:us-east-1:111122223333:secret:my-secret",
            "arn:aws:kms:us-east-1:111122223333:key/my-key"
         ]
     }
   ]
}
```

------

Copiez le modèle suivant dans votre rôle d'instance pour ajouter l'autorisation de référencer *les paramètres* depuis *AWS Systems Manager*Parameter Store.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters"
            ],
            "Resource": [
            "arn:aws:ssm:us-east-1:111122223333:parameter/my-parameter"
            ]
        }
    ]
}
```

------

# Gestion de vos variables d'environnement
<a name="env-variable-manage"></a>

Gérez les variables d'environnement de votre service App Runner à l'aide de l'une des méthodes suivantes :
+ [Console App Runner](#env-variable-manage.console)
+ [API App Runner ou AWS CLI](#env-variable-manage.api)

## Console App Runner
<a name="env-variable-manage.console"></a>

Lorsque vous [créez un service](manage-create.md) ou que vous [mettez à jour un service](manage-configure.md) sur la console App Runner, vous pouvez ajouter des variables d'environnement. 

### Ajouter une variable d'environnement
<a name="env-variable-manage.console.add"></a>

**Pour ajouter une variable d'environnement**

1. Ouvrez la [console App Runner](https://console.aws.amazon.com/apprunner), puis dans la liste des **régions**, sélectionnez votre Région AWS.

1. Selon que vous créez ou mettez à jour un service, effectuez l'une des étapes suivantes :
   + Si vous créez un nouveau service, choisissez **Create an App Runner service** et accédez à **Configurer le service**.
   +  Si vous mettez à jour un service existant, sélectionnez le service que vous souhaitez mettre à jour et accédez à l'onglet **Configuration** du service. 

1.  Accédez à **Variables d'environnement (facultatif)** sous **Paramètres du service**. 

1.  Choisissez l'une des options suivantes en fonction de vos besoins : 
   + Choisissez **Texte brut** dans la **source de la variable d'environnement** et entrez ses paires clé-valeur sous **Nom de la variable d'environnement** et **Valeur de la variable d'environnement, respectivement**. 
**Note**  
Choisissez **le texte brut** si vous souhaitez référencer des données non sensibles. Ces données ne sont pas cryptées et sont visibles par les autres utilisateurs dans la configuration du service App Runner et dans les journaux des applications. 
   + Choisissez **Secrets Manager** dans la **source de la variable d'environnement** pour référencer le secret stocké en AWS Secrets Manager tant que variable d'environnement dans votre service. Indiquez le nom de la variable d'environnement et le nom de ressource Amazon (ARN) du secret auquel vous faites référence sous **Nom de la variable d'environnement** et **Valeur de la variable d'environnement** respectivement. 
   + Choisissez le **magasin de paramètres SSM** dans la **source de la variable d'environnement** pour référencer le paramètre stocké dans le magasin de paramètres SSM en tant que variable d'environnement dans votre service. Indiquez le nom de la variable d'environnement et l'ARN du paramètre que vous référencez sous **Nom de la variable d'environnement** et **Valeur de la variable d'environnement** respectivement. 
**Note**  
Vous ne pouvez pas attribuer `PORT` de nom à une variable d'environnement lors de la création ou de la mise à jour de votre service App Runner. Il s'agit d'une variable d'environnement réservée au service App Runner. 
 Si le paramètre SSM Parameter Store est Région AWS identique à celui du service que vous souhaitez lancer, vous pouvez spécifier le nom complet de la ressource Amazon (ARN) ou le nom du paramètre. Si le paramètre se trouve dans une autre région, vous devez spécifier l'ARN complet. 
Assurez-vous que le paramètre auquel vous faites référence se trouve dans le même compte que le service que vous lancez ou mettez à jour. Actuellement, vous ne pouvez pas référencer le paramètre SSM Parameter Store entre les comptes. 

1. Choisissez **Ajouter une variable d'environnement** pour faire référence à une autre variable d'environnement. 

1. Développez les **modèles de stratégie IAM** pour afficher et copier les modèles de politique IAM fournis pour le magasin de paramètres AWS Secrets Manager et SSM. Vous ne devez le faire que si vous n'avez pas encore mis à jour la politique IAM de votre rôle d'instance avec les autorisations requises. Pour plus d'informations, consultez [Autorisations ](env-variable.md#env-variable.sensitivedata.permissions).

### Suppression d'une variable d'environnement
<a name="env-variable-manage.console.remove"></a>

Avant de supprimer une variable d'environnement, assurez-vous que le code de votre application est mis à jour pour refléter la même variable. Si le code de l'application n'est pas mis à jour, votre service App Runner risque d'échouer.

**Pour supprimer des variables d'environnement**

1. Ouvrez la [console App Runner](https://console.aws.amazon.com/apprunner), puis dans la liste des **régions**, sélectionnez votre Région AWS.

1.  Accédez à l'onglet **Configuration** du service que vous souhaitez mettre à jour. 

1.  Accédez à **Variables d'environnement (facultatif)** sous **Paramètres du service**. 

1.  Choisissez **Supprimer** à côté de la variable d'environnement que vous souhaitez supprimer. Vous recevez un message pour confirmer la suppression. 

1.  Sélectionnez **Delete (Supprimer)**. 

## API App Runner ou AWS CLI
<a name="env-variable-manage.api"></a>

Vous pouvez référencer des données sensibles stockées dans Secrets Manager et SSM Parameter Store en les ajoutant en tant que variables d'environnement dans votre service. 

**Note**  
Mettez à jour la politique IAM de votre rôle d'instance afin qu'App Runner puisse accéder aux secrets et aux paramètres stockés dans Secrets Manager et SSM Parameter Store. Pour plus d'informations, consultez [Autorisations ](env-variable.md#env-variable.sensitivedata.permissions).

**Pour référencer les secrets et les configurations en tant que variables d'environnement**

1. Créez un secret ou une configuration dans le Secrets Manager ou le magasin de paramètres SSM. 

   Les exemples suivants montrent comment créer un secret et un paramètre à l'aide du magasin de paramètres SSM.   
**Example Création d'un secret - Demande**  

   L'exemple suivant montre comment créer un secret qui représente les informations d'identification de la base de données.

   ```
   aws secretsmanager create-secret \
   —name DevRdsCredentials \
   —description "Rds credentials for development account." \
   —secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"
   ```  
**Example Création d'un secret - Réponse**  

   ```
   arn:aws:secretsmanager:<region>:<aws_account_id>:secret:DevRdsCredentials
   ```  
**Example Création d'une configuration - Demande**  

   L'exemple suivant montre comment créer un paramètre qui représente la chaîne de connexion RDS.

   ```
   aws systemsmanager put-parameter \
   —name DevRdsConnectionString \
   —value "mysql2://dev-mysqlcluster-rds.com:3306/diegor" \
   —type "String" \
   —description "Rds connection string for development account."
   ```  
**Example Création d'une configuration - Réponse**  

   ```
   arn:aws:ssm:<region>:<aws_account_id>:parameter/DevRdsConnectionString
   ```

1. Référencez les secrets et les configurations stockés dans Secrets Manager et SSM Parameter Store en les ajoutant en tant que variables d'environnement. Vous pouvez ajouter des variables d'environnement lorsque vous créez ou mettez à jour votre service App Runner. 

   Les exemples suivants montrent comment référencer des secrets et des configurations en tant que variables d'environnement sur un service App Runner basé sur du code et sur un service App Runner basé sur des images.  
**Example Fichier Input.json pour le service App Runner basé sur des images**  

   ```
   {
     "ServiceName": "example-secrets",
     "SourceConfiguration": {
       "ImageRepository": {
         "ImageIdentifier": "<image-identifier>",
         "ImageConfiguration": {
           "Port": "<port>",
           "RuntimeEnvironmentSecrets": {
             "Credential1":"arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX",
             "Credential2":"arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
           }
         },
         "ImageRepositoryType": "ECR_PUBLIC"
       }
     },
     "InstanceConfiguration": {
       "Cpu": "1 vCPU",
       "Memory": "3 GB",
       "InstanceRoleArn": "<instance-role-arn>"
     }
   }
   ```  
**Example Service App Runner basé sur des images — Demande**  

   ```
   aws apprunner create-service \
   --cli-input-json file://input.json
   ```  
**Example Service App Runner basé sur des images — Response**  

   ```
   {
   ...
         "ImageRepository": {
            "ImageIdentifier":"<image-identifier>",
            "ImageConfiguration":{
               "Port": "<port>",
               "RuntimeEnvironmentSecrets":{
                  "Credential1": "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX",
                  "Credential2": "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
               },                
               "ImageRepositoryType":"ECR"
         }      
      },
      "InstanceConfiguration": {
           "CPU": "1 vCPU",
           "Memory": "3 GB",
           "InstanceRoleArn: "<instance-role-arn>"
      }
   ...
   }
   ```  
**Example Fichier Input.json pour le service App Runner basé sur du code**  

   ```
   {
     "ServiceName": "example-secrets",
     "SourceConfiguration": {
       "AuthenticationConfiguration": {
         "ConnectionArn": "arn:aws:apprunner:us-east-1:123456789012:connection/my-github-connection/XXXXXXXXXX"
       },
       "AutoDeploymentsEnabled": false,
       "CodeRepository": {
         "RepositoryUrl": "<repository-url>",
         "SourceCodeVersion": {
           "Type": "BRANCH",
           "Value": "main"
         },
         "CodeConfiguration": {
           "ConfigurationSource": "API",
           "CodeConfigurationValues": {
             "Runtime": "<runtime>",
             "BuildCommand": "<build-command>",
             "StartCommand": "<start-command>",
             "Port": "<port>",
             "RuntimeEnvironmentSecrets": {
               "Credential1":"arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX",
               "Credential2":"arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
             }
           }
         }
       }
     },
     "InstanceConfiguration": {
       "Cpu": "1 vCPU",
       "Memory": "3 GB",
       "InstanceRoleArn": "<instance-role-arn>"
     }
   }
   ```  
**Example Service App Runner basé sur du code — Demande**  

   ```
   aws apprunner create-service \
   --cli-input-json file://input.json
   ```  
**Example Service App Runner basé sur du code — Response**  

   ```
   {
   ...
      "SourceConfiguration":{
         "CodeRepository":{
            "RepositoryUrl":"<repository-url>",
            "SourceCodeVersion":{
               "Type":"Branch",
               "Value":"main"
            },
            "CodeConfiguration":{
               "ConfigurationSource":"API",
               "CodeConfigurationValues":{
                  "Runtime":"<runtime>",
                  "BuildCommand":"<build-command>",
                  "StartCommand":"<start-command>",
                  "Port":"<port>",               
                  "RuntimeEnvironmentSecrets":{
                     "Credential1" : "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXX",
                     "Credential2" : "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
                  } 
               }
            }
         },
         "InstanceConfiguration": {
           "CPU": "1 vCPU",
           "Memory": "3 GB",
           "InstanceRoleArn: "<instance-role-arn>"
      }
   ...
   }
   ```

1. Le `apprunner.yaml` modèle est mis à jour pour refléter les secrets ajoutés. 

   Voici un exemple du `apprunner.yaml` modèle mis à jour.  
**Example `apprunner.yaml`**  

   ```
   version: 1.0
   runtime: python3
   build:
     commands:
       build:
         - python -m pip install flask
   run:
     command: python app.py
     network:
       port: 8080
     env:
       - name: MY_VAR_EXAMPLE
         value: "example"
     secrets:
       - name: my-secret
         value-from: "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX"
       - name: my-parameter
         value-from: "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>"
       - name: my-parameter-only-name
         value-from: "parameter-name"
   ```