

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Accedi a un host bastion utilizzando Session Manager e Amazon EC2 Instance Connect
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect"></a>

*Piotr Chotkowski e Witold Kowalik, Amazon Web Services*

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

Un *bastion host*, a volte chiamato *jump box*, è un server che fornisce un unico punto di accesso da una rete esterna alle risorse situate in una rete privata. Un server esposto a una rete pubblica esterna, come Internet, rappresenta un potenziale rischio per la sicurezza in caso di accesso non autorizzato. È importante proteggere e controllare l'accesso a questi server.

Questo modello descrive come utilizzare [Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) e [Amazon EC2 Instance Connect per connetterti](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) in modo sicuro a un host bastion di Amazon Elastic Compute Cloud EC2 (Amazon) distribuito nel tuo. Account AWS Session Manager è una funzionalità di. AWS Systems Manager I vantaggi di questo modello includono:
+ L'host bastion distribuito non dispone di porte aperte in ingresso esposte alla rete Internet pubblica. Ciò riduce la potenziale superficie di attacco.
+ Non è necessario archiviare e mantenere chiavi Secure Shell (SSH) a lungo termine nel tuo Account AWS. Invece, ogni utente genera una nuova coppia di chiavi SSH ogni volta che si connette all'host bastion. AWS Identity and Access Management Le policy (IAM) allegate alle AWS credenziali dell'utente controllano l'accesso all'host bastion.

**Destinatari**

Questo modello è destinato ai lettori che hanno esperienza con una conoscenza di base di Amazon EC2, Amazon Virtual Private Cloud (Amazon VPC) e Hashicorp Terraform.

## Prerequisiti e limitazioni
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-prereqs"></a>

**Prerequisiti**
+ Un attivo Account AWS
+ AWS Command Line Interface (AWS CLI) versione 2, [installata](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) e [configurata](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ Plugin Session Manager per AWS CLI, [installato](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)
+ [CLI Terraform, installata](https://developer.hashicorp.com/terraform/cli)
+ Storage per lo [stato](https://developer.hashicorp.com/terraform/language/state) Terraform, ad esempio un bucket Amazon Simple Storage Service (Amazon S3) e una tabella Amazon DynamoDB che funge da backend remoto per archiviare lo stato Terraform. Per ulteriori informazioni sull'utilizzo dei backend remoti per lo stato Terraform, consulta [Amazon S3](https://www.terraform.io/language/settings/backends/s3) Backends (documentazione Terraform). Per un esempio di codice che configura la gestione remota dello stato con un backend Amazon S3, consulta [remote-state-s3-backend](https://registry.terraform.io/modules/nozaq/remote-state-s3-backend/aws/latest) (Terraform Registry). Si notino i requisiti seguenti:
  + Il bucket Amazon S3 e la tabella DynamoDB devono trovarsi nello stesso spazio. Regione AWS
  + Quando si crea la tabella DynamoDB, la chiave di partizione deve `LockID` essere (distinzione tra maiuscole e minuscole) e il tipo di chiave di partizione deve essere. `String` Tutte le altre impostazioni della tabella devono avere i valori predefiniti. Per ulteriori informazioni, consulta [Informazioni sulle chiavi primarie](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey) e [Creazione di una tabella](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/getting-started-step-1.html) nella documentazione di DynamoDB.
+ Un client SSH, installato

**Limitazioni**
+ Questo modello è inteso come proof of concept (PoC) o come base per ulteriori sviluppi. Non deve essere utilizzato nella sua forma attuale in ambienti di produzione. Prima della distribuzione, modifica il codice di esempio nel repository in base ai requisiti e al caso d'uso.
+ Questo modello presuppone che l'host bastion di destinazione utilizzi Amazon Linux 2 come sistema operativo. Sebbene sia possibile utilizzare altre Amazon Machine Images (AMIs), altri sistemi operativi non rientrano nell'ambito di questo schema.
**Nota**  
Amazon Linux 2 sta per terminare il supporto. Per ulteriori informazioni, consulta [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).
+ In questo modello, l'host bastion si trova in una sottorete privata senza un gateway NAT e un gateway Internet. Questo design isola l' EC2 istanza Amazon dalla rete Internet pubblica. Puoi aggiungere una configurazione di rete specifica che le consenta di comunicare con Internet. Per ulteriori informazioni, consulta [Connect your virtual private cloud (VPC) ad altre reti nella documentazione](https://docs.aws.amazon.com/vpc/latest/userguide/extend-intro.html) di Amazon VPC. Allo stesso modo, seguendo il [principio del privilegio minimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege), l'host bastion non ha accesso ad altre risorse del tuo sistema a Account AWS meno che tu non conceda esplicitamente le autorizzazioni. Per ulteriori informazioni, consulta le politiche basate sulle [risorse](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) nella documentazione IAM.

**Versioni del prodotto**
+ AWS CLI versione 2
+ Terraform versione 1.3.9

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

**Stack tecnologico Target**
+ Un VPC con un'unica sottorete privata
+ I seguenti [endpoint VPC di interfaccia](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html):
  + `amazonaws.<region>.ssm`— L'endpoint del servizio. AWS Systems Manager 
  + `amazonaws.<region>.ec2messages`— Systems Manager utilizza questo endpoint per effettuare chiamate da SSM Agent al servizio Systems Manager.
  + `amazonaws.<region>.ssmmessages`— Session Manager utilizza questo endpoint per connettersi alla tua EC2 istanza Amazon tramite un canale dati sicuro.
+ Un' EC2 istanza `t3.nano` Amazon che esegue Amazon Linux 2
+ Ruolo e profilo dell'istanza IAM
+ Gruppi di sicurezza Amazon VPC e regole dei gruppi di sicurezza per gli endpoint e l'istanza Amazon EC2 

**Architettura di Target**

![\[Diagramma dell'architettura dell'utilizzo di Session Manager per accedere a un host bastion.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/a02aed20-1852-4c91-902f-f553795006e2/images/819c503b-7eec-4a9c-862b-b87107d50dc1.png)


Il diagramma mostra il seguente processo:

1. L'utente assume un ruolo IAM con le autorizzazioni per eseguire le seguenti operazioni:
   + Autentica, autorizza e connettiti all'istanza Amazon EC2 
   + Inizia una sessione con Session Manager

1. L'utente avvia una sessione SSH tramite Session Manager.

1. Session Manager autentica l'utente, verifica le autorizzazioni nelle politiche IAM associate, controlla le impostazioni di configurazione e invia un messaggio all'agente SSM per aprire una connessione bidirezionale.

1. L'utente invia la chiave pubblica SSH all'host bastion tramite i metadati di Amazon. EC2 Questa operazione deve essere eseguita prima di ogni connessione. La chiave pubblica SSH rimane disponibile per 60 secondi.

1. L'host bastion comunica con gli endpoint di interfaccia VPC per Systems Manager e Amazon. EC2

1. L'utente accede all'host bastion tramite Session Manager utilizzando un canale di comunicazione bidirezionale crittografato TLS 1.2.

**Automazione e scalabilità**

Sono disponibili le seguenti opzioni per automatizzare l'implementazione o scalare questa architettura:
+ È possibile implementare l'architettura tramite una pipeline di integrazione e distribuzione continua (CI/CD).
+ È possibile modificare il codice per cambiare il tipo di istanza del bastion host.
+ Puoi modificare il codice per distribuire più host bastion. Nel `bastion-host/main.tf` file, nel blocco di `aws_instance` risorse, aggiungi il `count` meta-argomento. Per ulteriori informazioni, consulta la documentazione di [Terraform](https://developer.hashicorp.com/terraform/language/meta-arguments/count).

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

**Servizi AWS**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) è uno strumento open source che consente di interagire Servizi AWS tramite comandi nella shell della riga di comando.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornisce capacità di elaborazione scalabile in. Cloud AWS Puoi avviare tutti i server virtuali di cui hai bisogno e dimensionarli rapidamente.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)ti aiuta a gestire le applicazioni e l'infrastruttura in esecuzione in. Cloud AWS Semplifica la gestione delle applicazioni e delle risorse, riduce i tempi di rilevamento e risoluzione dei problemi operativi e aiuta a gestire le AWS risorse in modo sicuro su larga scala. Questo modello utilizza [Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html), una funzionalità di Systems Manager.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito. Questa rete virtuale è simile a una comune rete da gestire all'interno del proprio data center, ma con i vantaggi dell'infrastruttura scalabile di AWS.

**Altri strumenti**
+ [HashiCorp Terraform](https://www.terraform.io/docs) è uno strumento Infrastructure as Code (IaC) che consente di utilizzare il codice per fornire e gestire l'infrastruttura e le risorse cloud. Questo modello utilizza [Terraform CLI](https://developer.hashicorp.com/terraform/cli).

**Archivio di codice**

Il codice per questo pattern è disponibile nell'[host GitHub Access a bastion utilizzando Session Manager e Amazon EC2 Instance Connect](https://github.com/aws-samples/secured-bastion-host-terraform).

## Best practice
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-best-practices"></a>
+ Ti consigliamo di utilizzare strumenti automatici di scansione del codice per migliorare la sicurezza e la qualità del codice. Questo modello è stato scansionato utilizzando [Checkov](https://www.checkov.io/), uno strumento statico di analisi del codice per IaC. Come minimo, ti consigliamo di eseguire controlli di convalida e formattazione di base utilizzando i comandi e Terraform. `terraform validate` `terraform fmt -check -recursive`
+ È buona norma aggiungere test automatici per IAc. Per ulteriori informazioni sui diversi approcci per testare il codice Terraform, consulta [Testing HashiCorp Terraform (post sul blog Terraform](https://www.hashicorp.com/blog/testing-hashicorp-terraform)).
+ Durante la distribuzione, Terraform utilizza l' EC2 istanza Amazon sostitutiva ogni volta che viene rilevata una nuova versione dell'[AMI Amazon Linux](https://aws.amazon.com/marketplace/pp/prodview-zc4x2k7vt6rpu?sr=0-1&ref_=beagle&applicationId=AWSMPContessa) 2. Questo implementa la nuova versione del sistema operativo, incluse patch e aggiornamenti. Se la pianificazione della distribuzione non è frequente, ciò può rappresentare un rischio per la sicurezza perché l'istanza non dispone delle patch più recenti. È importante aggiornare e applicare frequentemente patch di sicurezza alle istanze Amazon EC2 distribuite. Per ulteriori informazioni, consulta [Gestione degli aggiornamenti in Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/update-management.html).
+ Poiché questo modello è una dimostrazione di fattibilità, utilizza politiche AWS gestite, come`AmazonSSMManagedInstanceCore`. AWS le politiche gestite coprono casi d'uso comuni ma non concedono autorizzazioni con privilegi minimi. Se necessario per il tuo caso d'uso, ti consigliamo di creare policy personalizzate che concedano le autorizzazioni con il minimo privilegio per le risorse distribuite in questa architettura. Per ulteriori informazioni, consulta [Introduzione alle politiche AWS gestite e passaggio alle autorizzazioni con privilegi](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-use-aws-defined-policies) minimi.
+ Usa una password per proteggere l'accesso alle chiavi SSH e archivia le chiavi in un luogo sicuro.
+ Configura la registrazione e il monitoraggio per l'host bastion. La registrazione e il monitoraggio sono parti importanti della manutenzione dei sistemi, sia dal punto di vista operativo che di sicurezza. Esistono diversi modi per monitorare le connessioni e le attività nel tuo bastion host. Per ulteriori informazioni, vedere i seguenti argomenti nella documentazione di Systems Manager:
  + [Monitoraggio AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/monitoring.html)
  + [Registrazione e monitoraggio AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/logging-and-monitoring.html)
  + [Attività di controllo della sessione](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-auditing.html)
  + [Attività di registrazione delle sessioni](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-logging.html)

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

### Implementa le risorse
<a name="deploy-the-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clona il repository del codice. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingegnere, sviluppatore | 
| Inizializza la directory di lavoro di Terraform. | Questo passaggio è necessario solo per la prima implementazione. Se state ridistribuendo il pattern, passate al passaggio successivo.Nella directory principale del repository clonato, inserisci il seguente comando, dove:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/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>In alternativa, puoi aprire il file **config.tf** e, nella `terraform` sezione, fornire manualmente questi valori. | DevOps ingegnere, sviluppatore, Terraform | 
| Distribuisci le risorse. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingegnere, sviluppatore, Terraform | 

### Configura l'ambiente locale
<a name="set-up-the-local-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Configura la connessione SSH. | Aggiorna il file di configurazione SSH per consentire le connessioni SSH tramite Session Manager. Per istruzioni, consulta [Consentire le connessioni SSH per](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable) Session Manager. Ciò consente agli utenti autorizzati di immettere un comando proxy che avvia una sessione di Session Manager e trasferisce tutti i dati tramite una connessione bidirezionale. | DevOps ingegnere | 
| Genera le chiavi SSH. | Immettere il seguente comando per generare una coppia di chiavi SSH pubblica e privata locale. Utilizzi questa key pair per connetterti all'host bastion.<pre>ssh-keygen -t rsa -f my_key</pre> | DevOps ingegnere, sviluppatore | 

### Connect all'host bastion utilizzando Session Manager
<a name="connect-to-the-bastion-host-by-using-sesh"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Ottieni l'ID dell'istanza. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | Informazioni generali su AWS | 
| Invia la chiave pubblica SSH. | In questa sezione, carichi la chiave pubblica nei [metadati dell'istanza dell'host](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) bastion. Dopo aver caricato la chiave, hai 60 secondi per avviare una connessione con l'host del bastion. Dopo 60 secondi, la chiave pubblica viene rimossa. Per ulteriori informazioni, consultate la sezione [Risoluzione dei problemi](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting) di questo modello. Completa rapidamente i passaggi successivi per evitare che la chiave venga rimossa prima di connetterti al bastion host.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | Informazioni generali su AWS | 
| Connect al bastion host. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html)Esistono altre opzioni per aprire una connessione SSH con l'host bastion. Per ulteriori informazioni, consulta *Approcci alternativi per stabilire una connessione SSH con l'host bastion* nella sezione [Informazioni aggiuntive](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-additional) di questo modello. | Informazioni generali su AWS | 

### (Facoltativo) Pulizia
<a name="optional-clean-up"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rimuovi le risorse distribuite. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | DevOps ingegnere, sviluppatore, Terraform | 

## risoluzione dei problemi
<a name="access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| `TargetNotConnected`errore durante il tentativo di connessione all'host bastion | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect.html) | 
| `Permission denied`errore durante il tentativo di connessione all'host bastion | Dopo aver caricato la chiave pubblica sul bastion host, hai solo 60 secondi per avviare la connessione. Dopo 60 secondi, la chiave viene rimossa automaticamente e non puoi usarla per connetterti all'istanza. In tal caso, puoi ripetere il passaggio per inviare nuovamente la chiave all'istanza. | 

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

**AWS documentazione**
+ [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)(documentazione Systems Manager)
+ [Installa il plug-in Session Manager per AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) (documentazione di Systems Manager)
+ [Consentire connessioni SSH per Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html#ssh-connections-enable) (documentazione di Systems Manager)
+ [Informazioni sull'utilizzo di EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html) ( EC2 documentazione Amazon)
+ [Connessione tramite EC2 Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-methods.html) ( EC2 documentazione Amazon)
+ [Gestione delle identità e degli accessi per Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-iam.html) ( EC2 documentazione Amazon)
+ [Utilizzo di un ruolo IAM per concedere autorizzazioni alle applicazioni in esecuzione su EC2 istanze Amazon (documentazione](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) IAM)
+ [Le migliori pratiche di sicurezza in IAM (documentazione IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html))
+ [Controlla il traffico verso le risorse utilizzando gruppi di sicurezza](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html) (documentazione Amazon VPC)

**Altre risorse**
+ [Pagina web Terraform Developer](https://developer.hashicorp.com/terraform)
+ [Comando: validate (documentazione Terraform](https://developer.hashicorp.com/terraform/cli/commands/validate))
+ [Comando: fmt (documentazione Terraform](https://developer.hashicorp.com/terraform/cli/commands/fmt))
+ [Testare HashiCorp Terraform (post](https://www.hashicorp.com/blog/testing-hashicorp-terraform) sul blog) HashiCorp 
+ [Pagina web di Checkov](https://www.checkov.io/)

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

**Approcci alternativi per stabilire una connessione SSH con l'host bastion**

*Inoltro alla porta*

È possibile utilizzare l'`-D 8888`opzione per aprire una connessione SSH con port forwarding dinamico. Per ulteriori informazioni, consulta le [istruzioni](https://explainshell.com/explain?cmd=ssh+-i+%24PRIVATE_KEY_FILE+-D+8888+ec2-user%40%24INSTANCE_ID) su explainshell.com. Di seguito è riportato un esempio di comando per aprire una connessione SSH utilizzando il port forwarding.

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

Questo tipo di connessione apre un proxy SOCKS in grado di inoltrare il traffico dal browser locale attraverso l'host bastion. Se usi Linux o macOS, per vedere tutte le opzioni, inserisci. `man ssh` Viene visualizzato il manuale di riferimento SSH.

*Utilizzando lo script fornito*

Invece di eseguire manualmente i passaggi descritti in *Connect to the bastion host utilizzando Session Manager* nella sezione [Epics](#access-a-bastion-host-by-using-session-manager-and-amazon-ec2-instance-connect-epics), puoi utilizzare lo script **connect.sh** incluso nel repository del codice. Questo script genera la coppia di chiavi SSH, invia la chiave pubblica all' EC2 istanza Amazon e avvia una connessione con l'host bastion. Quando esegui lo script, passi il tag e il nome della chiave come argomenti. Di seguito è riportato un esempio del comando per eseguire lo script.

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