

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.

# Accédez à un hôte bastion à l'aide du gestionnaire de session et d'Amazon EC2 Instance Connect
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect"></a>

*Piotr Chotkowski et Witold Kowalik, Amazon Web Services*

## Résumé
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-summary"></a>

Un *hôte bastion*, parfois appelé *boîte de saut*, est un serveur qui fournit un point d'accès unique depuis un réseau externe aux ressources situées sur un réseau privé. Un serveur exposé à un réseau public externe, tel qu'Internet, présente un risque de sécurité potentiel en cas d'accès non autorisé. Il est important de sécuriser et de contrôler l'accès à ces serveurs.

Ce modèle décrit comment vous pouvez utiliser [Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) et [Amazon EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) pour vous connecter en toute sécurité à un hôte bastion Amazon Elastic Compute Cloud (Amazon EC2) déployé dans votre Compte AWS. Le gestionnaire de session est une fonctionnalité de AWS Systems Manager. Les avantages de ce modèle incluent :
+ L'hôte bastion déployé ne possède aucun port entrant ouvert exposé à l'Internet public. Cela réduit la surface d'attaque potentielle.
+ Vous n'avez pas besoin de stocker et de gérer des clés Secure Shell (SSH) à long terme dans votre Compte AWS. Au lieu de cela, chaque utilisateur génère une nouvelle paire de clés SSH chaque fois qu'il se connecte à l'hôte Bastion. Gestion des identités et des accès AWS Les politiques (IAM) associées aux informations d' AWS identification de l'utilisateur contrôlent l'accès à l'hôte Bastion.

**Public visé**

Ce modèle est destiné aux lecteurs ayant une connaissance de base d'Amazon EC2, d'Amazon Virtual Private Cloud (Amazon VPC) et de Hashicorp Terraform.

## Conditions préalables et limitations
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ AWS Command Line Interface (AWS CLI) version 2, [installée](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) et [configurée](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ Plug-in de gestion de session pour le AWS CLI, [installé](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)
+ [Terraform CLI, installée](https://developer.hashicorp.com/terraform/cli)
+ Stockage pour l'[état](https://developer.hashicorp.com/terraform/language/state) Terraform, tel qu'un bucket Amazon Simple Storage Service (Amazon S3) et une table Amazon DynamoDB servant de backend distant pour stocker l'état Terraform. Pour plus d'informations sur l'utilisation de backends distants pour l'état Terraform, consultez [Amazon S3 Backends](https://www.terraform.io/language/settings/backends/s3) (documentation Terraform). Pour un exemple de code qui configure la gestion de l'état à distance avec un backend Amazon S3, consultez [remote-state-s3-backend](https://registry.terraform.io/modules/nozaq/remote-state-s3-backend/aws/latest) (Terraform Registry). Notez les critères suivants :
  + Le compartiment Amazon S3 et la table DynamoDB doivent se trouver dans le même emplacement. Région AWS
  + Lors de la création de la table DynamoDB, la clé de partition doit `LockID` être (distinguez majuscules et minuscules) et le type de clé de partition doit l'être. `String` Tous les autres paramètres du tableau doivent être à leurs valeurs par défaut. Pour plus d'informations, reportez-vous aux sections [À propos des clés primaires](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey) et [Création d'une table](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/getting-started-step-1.html) dans la documentation DynamoDB.
+ Un client SSH, installé

**Limites**
+ Ce modèle est conçu comme une preuve de concept (PoC) ou comme base pour un développement ultérieur. Il ne doit pas être utilisé sous sa forme actuelle dans les environnements de production. Avant le déploiement, ajustez l'exemple de code dans le référentiel en fonction de vos besoins et de votre cas d'utilisation.
+ Ce modèle suppose que l'hôte bastion cible utilise Amazon Linux 2 comme système d'exploitation. Bien qu'il soit possible d'utiliser d'autres Amazon Machine Images (AMIs), ce modèle ne s'applique pas aux autres systèmes d'exploitation.
**Note**  
Le support d'Amazon Linux 2 touche à sa fin. Pour plus d'informations, consultez [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).
+ Dans ce modèle, l'hôte bastion est situé dans un sous-réseau privé sans passerelle NAT ni passerelle Internet. Cette conception isole l' EC2 instance Amazon de l'Internet public. Vous pouvez ajouter une configuration réseau spécifique qui lui permet de communiquer avec Internet. Pour plus d'informations, consultez [Connecter votre cloud privé virtuel (VPC) à d'autres réseaux](https://docs.aws.amazon.com/vpc/latest/userguide/extend-intro.html) dans la documentation Amazon VPC. De même, conformément au [principe du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege), l'hôte du bastion n'a accès à aucune autre ressource de votre site, Compte AWS sauf si vous lui accordez explicitement des autorisations. Pour plus d'informations, consultez la section [Politiques basées sur les ressources](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) dans la documentation IAM.

**Versions du produit**
+ Version 2 de l'interface de ligne de commande AWS
+ Terraform version 1.3.9

## Architecture
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-architecture"></a>

**Pile technologique cible**
+ Un VPC avec un seul sous-réseau privé
+ Les points de [terminaison VPC d'interface](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) suivants :
  + `amazonaws.<region>.ssm`— Le point de terminaison du AWS Systems Manager service.
  + `amazonaws.<region>.ec2messages`— Systems Manager utilise ce point de terminaison pour passer des appels depuis l'agent SSM vers le service Systems Manager.
  + `amazonaws.<region>.ssmmessages`— Le gestionnaire de session utilise ce point de terminaison pour se connecter à votre EC2 instance Amazon via un canal de données sécurisé.
+ Une EC2 instance `t3.nano` Amazon exécutant Amazon Linux 2
+ Rôle IAM et profil d'instance
+ Groupes de sécurité Amazon VPC et règles de groupe de sécurité pour les points de terminaison et l'instance Amazon EC2 

**Architecture cible**

![\[Schéma d'architecture de l'utilisation du gestionnaire de session pour accéder à un hôte bastion.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/a02aed20-1852-4c91-902f-f553795006e2/images/819c503b-7eec-4a9c-862b-b87107d50dc1.png)


Le schéma montre le processus suivant :

1. L'utilisateur assume un rôle IAM autorisé à effectuer les opérations suivantes :
   + Authentifier, autoriser et se connecter à l'instance Amazon EC2 
   + Démarrer une session avec le gestionnaire de session

1. L'utilisateur lance une session SSH via le gestionnaire de session.

1. Le gestionnaire de session authentifie l'utilisateur, vérifie les autorisations dans les politiques IAM associées, vérifie les paramètres de configuration et envoie un message à l'agent SSM pour ouvrir une connexion bidirectionnelle.

1. L'utilisateur transmet la clé publique SSH à l'hôte Bastion via les métadonnées Amazon. EC2 Cela doit être fait avant chaque connexion. La clé publique SSH reste disponible pendant 60 secondes.

1. L'hôte Bastion communique avec les points de terminaison VPC de l'interface pour Systems Manager et Amazon. EC2

1. L'utilisateur accède à l'hôte Bastion via le gestionnaire de session en utilisant un canal de communication bidirectionnel crypté TLS 1.2.

**Automatisation et évolutivité**

Les options suivantes sont disponibles pour automatiser le déploiement ou faire évoluer cette architecture :
+ Vous pouvez déployer l'architecture via un pipeline d'intégration et de livraison continues (CI/CD).
+ Vous pouvez modifier le code pour changer le type d'instance de l'hôte Bastion.
+ Vous pouvez modifier le code pour déployer plusieurs hôtes bastions. Dans le `bastion-host/main.tf` fichier, dans le bloc de `aws_instance` ressources, ajoutez le `count` méta-argument. Pour plus d'informations, consultez la documentation [Terraform](https://developer.hashicorp.com/terraform/language/meta-arguments/count).

## Outils
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-tools"></a>

**Services AWS**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir Services AWS par le biais de commandes dans votre interface de ligne de commande.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fournit une capacité de calcul évolutive dans le AWS Cloud. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)vous aide à gérer vos applications et votre infrastructure exécutées dans le AWS Cloud. Il simplifie la gestion des applications et des ressources, réduit le délai de détection et de résolution des problèmes opérationnels et vous aide à gérer vos AWS ressources en toute sécurité à grande échelle. Ce modèle utilise le [Gestionnaire de session](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html), une fonctionnalité de Systems Manager.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer AWS des ressources dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous pourriez exécuter dans votre propre centre de données et présente l'avantage d'utiliser l'infrastructure évolutive d' AWS.

**Autres outils**
+ [HashiCorp Terraform](https://www.terraform.io/docs) est un outil d'infrastructure en tant que code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud. Ce modèle utilise la [CLI Terraform](https://developer.hashicorp.com/terraform/cli).

**Référentiel de code**

Le code de ce modèle est disponible dans l'[hôte GitHub Access a bastion à l'aide du gestionnaire de session et du référentiel Amazon EC2 Instance Connect](https://github.com/aws-samples/secured-bastion-host-terraform).

## Bonnes pratiques
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-best-practices"></a>
+ Nous vous recommandons d'utiliser des outils d'analyse de code automatisés pour améliorer la sécurité et la qualité du code. Ce modèle a été scanné à l'aide de [Checkov](https://www.checkov.io/), un outil d'analyse de code statique pour IaC. Nous vous recommandons au minimum d'effectuer des contrôles de validation et de formatage de base à l'aide des commandes `terraform validate` et `terraform fmt -check -recursive` Terraform.
+ Il est recommandé d'ajouter des tests automatisés pour IaC. Pour plus d'informations sur les différentes approches pour tester le code Terraform, consultez [Testing HashiCorp Terraform (article de blog Terraform](https://www.hashicorp.com/blog/testing-hashicorp-terraform)).
+ Lors du déploiement, Terraform utilise l' EC2 instance Amazon qui remplace chaque fois qu'une nouvelle version de l'[AMI Amazon Linux 2 est détectée](https://aws.amazon.com/marketplace/pp/prodview-zc4x2k7vt6rpu?sr=0-1&ref_=beagle&applicationId=AWSMPContessa). Cela déploie la nouvelle version du système d'exploitation, y compris les correctifs et les mises à niveau. Si le calendrier de déploiement est peu fréquent, cela peut présenter un risque de sécurité car l'instance ne dispose pas des derniers correctifs. Il est important de mettre à jour et d'appliquer fréquemment des correctifs de sécurité aux EC2 instances Amazon déployées. Pour plus d'informations, consultez la section [Gestion des mises à jour sur Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/update-management.html).
+ Ce modèle étant une preuve de concept, il utilise des politiques AWS gérées, telles que`AmazonSSMManagedInstanceCore`. AWS les politiques gérées couvrent les cas d'utilisation courants mais n'accordent pas d'autorisations de moindre privilège. Selon les besoins de votre cas d'utilisation, nous vous recommandons de créer des politiques personnalisées qui accordent des autorisations de moindre privilège pour les ressources déployées dans cette architecture. Pour plus d'informations, voir [Commencer avec les politiques AWS gérées et passer aux autorisations du moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-use-aws-defined-policies).
+ Utilisez un mot de passe pour protéger l'accès aux clés SSH et stockez les clés dans un emplacement sécurisé.
+ Configurez la journalisation et la surveillance pour l'hôte du bastion. La journalisation et la surveillance sont des éléments importants de la maintenance des systèmes, tant du point de vue opérationnel que de la sécurité. Il existe plusieurs manières de surveiller les connexions et l'activité dans votre hôte Bastion. Pour plus d'informations, consultez les rubriques suivantes dans la documentation de Systems Manager :
  + [Surveillance AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring.html)
  + [Connexion et surveillance AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/logging-and-monitoring.html)
  + [Activité des sessions d'audit](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-auditing.html)
  + [Journalisation de l’activité de session](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging.html)

## Épopées
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-epics"></a>

### Déployez les ressources
<a name="deploy-the-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le référentiel de code. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingénieur, développeur | 
| Initialisez le répertoire de travail Terraform. | Cette étape n'est nécessaire que pour le premier déploiement. Si vous redéployez le modèle, passez à l'étape suivante.Dans le répertoire racine du dépôt cloné, entrez la commande suivante, où :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)<pre>terraform init \<br />    -backend-config="bucket=$S3_STATE_BUCKET" \<br />    -backend-config="key=$PATH_TO_STATE_FILE" \<br />    -backend-config="region=$AWS_REGION</pre>Vous pouvez également ouvrir le fichier **config.tf** et, dans la `terraform` section, fournir ces valeurs manuellement. | DevOps ingénieur, Développeur, Terraform | 
| Déployez les ressources. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingénieur, Développeur, Terraform | 

### Configuration de l'environnement local
<a name="set-up-the-local-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez la connexion SSH. | Mettez à jour le fichier de configuration SSH pour autoriser les connexions SSH via le gestionnaire de session. Pour obtenir des instructions, consultez [Autoriser les connexions SSH pour le gestionnaire de session](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable). Cela permet aux utilisateurs autorisés de saisir une commande proxy qui démarre une session du gestionnaire de session et transfère toutes les données via une connexion bidirectionnelle. | DevOps ingénieur | 
| Générez les clés SSH. | Entrez la commande suivante pour générer une paire de clés SSH privées et publiques locales. Vous utilisez cette paire de clés pour vous connecter à l'hôte Bastion.<pre>ssh-keygen -t rsa -f my_key</pre> | DevOps ingénieur, développeur | 

### Connectez-vous à l'hôte Bastion à l'aide du gestionnaire de session
<a name="connect-to-the-bastion-host-by-using-sesh"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Obtenez l'ID de l'instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | AWS général | 
| Envoyez la clé publique SSH. | Dans cette section, vous allez télécharger la clé publique vers les [métadonnées d'instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) de l'hôte Bastion. Une fois la clé téléchargée, vous avez 60 secondes pour établir une connexion avec l'hôte du bastion. Au bout de 60 secondes, la clé publique est supprimée. Pour plus d'informations, consultez la section [Dépannage](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting) de ce modèle. Effectuez rapidement les étapes suivantes pour éviter que la clé ne soit supprimée avant de vous connecter à l'hôte Bastion.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | AWS général | 
| Connectez-vous à l'hôte Bastion. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)Il existe d'autres options pour ouvrir une connexion SSH avec l'hôte Bastion. Pour plus d'informations, consultez la section Autres *approches pour établir une connexion SSH avec l'hôte Bastion* dans la section [Informations supplémentaires](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-additional) de ce modèle. | AWS général | 

### (Facultatif) Nettoyer
<a name="optional-clean-up"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez les ressources déployées. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingénieur, Développeur, Terraform | 

## Résolution des problèmes
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| `TargetNotConnected`erreur lors de la tentative de connexion à l'hôte bastion | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | 
| `Permission denied`erreur lors de la tentative de connexion à l'hôte bastion | Une fois la clé publique téléchargée sur l'hôte du bastion, vous n'avez que 60 secondes pour établir la connexion. Après 60 secondes, la clé est automatiquement supprimée et vous ne pouvez pas l'utiliser pour vous connecter à l'instance. Dans ce cas, vous pouvez répéter l'étape pour renvoyer la clé à l'instance. | 

## Ressources connexes
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-resources"></a>

**AWS documentation**
+ [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)(documentation de Systems Manager)
+ [Installez le plugin Session Manager pour AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) (documentation Systems Manager)
+ [Autoriser les connexions SSH pour Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable) (documentation Systems Manager)
+ [À propos de l'utilisation d' EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) ( EC2 documentation Amazon)
+ [Connectez-vous à l'aide d' EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-methods.html) ( EC2 documentation Amazon)
+ [Gestion des identités et des accès pour Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-iam.html) ( EC2 documentation Amazon)
+ [Utilisation d'un rôle IAM pour accorder des autorisations aux applications exécutées sur des EC2 instances Amazon](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) (documentation IAM)
+ [Bonnes pratiques de sécurité dans l'IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) (documentation IAM)
+ [Contrôlez le trafic vers les ressources à l'aide de groupes de sécurité](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) (documentation Amazon VPC)

**Autres ressources**
+ [Page Web du développeur Terraform](https://developer.hashicorp.com/terraform)
+ [Commande : valider](https://developer.hashicorp.com/terraform/cli/commands/validate) (documentation Terraform)
+ [Commande : fmt (documentation](https://developer.hashicorp.com/terraform/cli/commands/fmt) Terraform)
+ [Tester HashiCorp Terraform](https://www.hashicorp.com/blog/testing-hashicorp-terraform) (HashiCorp article de blog)
+ [Page Web de Checkov](https://www.checkov.io/)

## Informations supplémentaires
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-additional"></a>

**Autres approches pour établir une connexion SSH avec l'hôte Bastion**

*Réacheminement de port*

Vous pouvez utiliser `-D 8888` cette option pour ouvrir une connexion SSH avec une redirection de port dynamique. Pour plus d'informations, consultez les [instructions](https://explainshell.com/explain?cmd=ssh+-i+%24PRIVATE_KEY_FILE+-D+8888+ec2-user%40%24INSTANCE_ID) sur explainshell.com. Voici un exemple de commande permettant d'ouvrir une connexion SSH à l'aide de la redirection de port.

```
ssh -i $PRIVATE_KEY_FILE -D 8888 ec2-user@$INSTANCE_ID
```

Ce type de connexion ouvre un proxy SOCKS qui peut transférer le trafic depuis votre navigateur local via l'hôte Bastion. Si vous utilisez Linux ou macOS, pour voir toutes les options, entrez`man ssh`. Cela affiche le manuel de référence SSH.

*En utilisant le script fourni*

Au lieu d'exécuter manuellement les étapes décrites dans *Connect to the bastion host by using Session Manager* dans la section [Epics](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-epics), vous pouvez utiliser le script **connect.sh** inclus dans le référentiel de code. Ce script génère la paire de clés SSH, transmet la clé publique à l' EC2 instance Amazon et établit une connexion avec l'hôte Bastion. Lorsque vous exécutez le script, vous transmettez le tag et le nom de la clé en tant qu'arguments. Voici un exemple de commande permettant d'exécuter le script.

```
./connect.sh sandbox-dev-bastion-host my_key
```