

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à.

# Connect il tuo IDE remoto a SageMaker spazi con accesso remoto
<a name="remote-access"></a>

Puoi connetterti in remoto dal tuo IDE remoto agli spazi Amazon SageMaker Studio. Puoi utilizzare la tua configurazione IDE locale personalizzata, inclusi strumenti di sviluppo assistito dall'intelligenza artificiale ed estensioni personalizzate, con le risorse di calcolo scalabili di Amazon AI. SageMaker In questa guida sono descritti i concetti e le istruzioni di configurazione per gli amministratori e gli utenti.

Una connessione IDE remota stabilisce una connessione sicura tra l'IDE locale e gli spazi. SageMaker Questa connessione consente di:
+ **Accedi alle risorse di calcolo SageMaker AI**: esegui codice su un'infrastruttura SageMaker AI scalabile dal tuo ambiente locale
+ **Mantieni i limiti di sicurezza**: lavora all'interno dello stesso framework di sicurezza dell'IA SageMaker 
+ **Mantieni la tua esperienza IDE familiare**: utilizza estensioni, temi e configurazioni locali compatibili che supportano lo sviluppo remoto

**Nota**  
Non tutte le estensioni IDE sono compatibili con lo sviluppo remoto. Le estensioni che richiedono componenti GUI locali, hanno dipendenze dall’architettura o richiedono interazioni client-server specifiche potrebbero non funzionare correttamente nell’ambiente remoto. Verifica che le estensioni richieste supportino lo sviluppo remoto prima dell'uso.

**Topics**
+ [Concetti chiave](#remote-access-key-concepts)
+ [Metodi di connessione](#remote-access-connection-methods)
+ [Supportato IDEs](#remote-access-supported-ides)
+ [Requisiti della versione IDE](#remote-access-ide-version-requirements)
+ [Requisiti del sistema operativo](#remote-access-os-requirements)
+ [Prerequisiti del computer locale](#remote-access-local-prerequisites)
+ [Requisiti delle immagini](#remote-access-image-requirements)
+ [Requisiti per l’istanza](#remote-access-instance-requirements)
+ [Configurazione dell’accesso remoto](remote-access-remote-setup.md)
+ [Configura IDE remoto](remote-access-local-ide-setup.md)
+ [AWS Regioni supportate](remote-access-supported-regions.md)

## Concetti chiave
<a name="remote-access-key-concepts"></a>
+ **Connessione remota**: un tunnel sicuro tra l'IDE remoto e uno SageMaker spazio. Questa connessione consente lo sviluppo interattivo e l'esecuzione del codice utilizzando risorse di calcolo SageMaker AI.
+ [https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-spaces.html](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-spaces.html): un ambiente dedicato all'interno di Amazon SageMaker Studio in cui puoi gestire lo storage e le risorse per le tue applicazioni Studio.
+ **Deep link**: un pulsante (URL diretto) dall' SageMaker interfaccia utente che avvia una connessione remota all'IDE locale.

## Metodi di connessione
<a name="remote-access-connection-methods"></a>

Esistono tre modi principali per connettere l'IDE remoto agli SageMaker spazi:
+ **Accesso diretto**: puoi connetterti direttamente a uno spazio specifico utilizzando il pulsante **Apri spazio con** disponibile in SageMaker AI. Questo utilizza modelli di URL per stabilire una connessione remota e aprire il tuo SageMaker spazio nel tuo IDE remoto.
+ [https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html): puoi eseguire l’autenticazione con AWS Toolkit for Visual Studio Code. Ciò ti consente di connetterti agli spazi e aprire una finestra connessa in remoto dal tuo IDE remoto.
+ **Connessione terminale SSH**: puoi connetterti tramite riga di comando utilizzando la configurazione SSH.

## Supportato IDEs
<a name="remote-access-supported-ides"></a>

La connessione remota agli spazi di Studio supporta:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursore](https://cursor.com/home)

## Requisiti della versione IDE
<a name="remote-access-ide-version-requirements"></a>

La tabella seguente elenca i requisiti minimi di versione per ogni IDE remoto supportato.


| IDE | Versione minima | 
| --- | --- | 
|  Visual Studio Code  |  [v1.90 o superiore](https://code.visualstudio.com/updates/v1_90). Ti consigliamo di utilizzare l'[ultima versione stabile](https://code.visualstudio.com/updates).  | 
|  Kiro  |  v0.10.78 o superiore  | 
|  Cursore  |  v2.6.18 o superiore  | 

L'estensione AWS Toolkit è necessaria per connettere l'IDE remoto agli spazi di Studio. Per Kiro e Cursor, è richiesta la versione dell'estensione AWS Toolkit v3.100 o successiva.

## Requisiti del sistema operativo
<a name="remote-access-os-requirements"></a>

Per connetterti in remoto agli spazi di Studio, devi disporre di uno dei seguenti sistemi operativi:
+ macOS 13\$1
+ Windows 10
  + [Il supporto per Windows 10 termina il 14 ottobre 2025](https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281)
+ Windows 11
+ Linux
  + Per VS Code, installa il [Microsoft VS Code ufficiale per Linux](https://code.visualstudio.com/docs/setup/linux), non una versione open source

## Prerequisiti del computer locale
<a name="remote-access-local-prerequisites"></a>

Prima di connettere l'IDE remoto agli spazi di Studio, assicurati che il computer locale disponga delle dipendenze e dell'accesso alla rete richiesti.

**Importante**  
Gli ambienti con restrizioni all'installazione del software possono impedire agli utenti di installare le dipendenze richieste. Cerca AWS Toolkit for Visual Studio Code automaticamente queste dipendenze all'avvio delle connessioni remote e richiederà l'installazione se ce ne sono alcune mancanti. Coordinatevi con il vostro reparto IT per garantire la disponibilità di questi componenti.

**Dipendenze locali richieste**

Sul computer locale devono essere installati i seguenti componenti:
+ **[Remote-SSH Extension: estensione](https://code.visualstudio.com/docs/remote/ssh)** di sviluppo remoto per il tuo IDE (disponibile nel marketplace delle estensioni per VS Code, Kiro e Cursor)
+ **[Plugin Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)**: necessario per la gestione sicura delle sessioni
+ **Client SSH**: componente standard sulla maggior parte delle macchine ([OpenSSH consigliato](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse) per Windows)
+ **Comando IDE CLI**: in genere incluso nell'installazione IDE (ad esempio, per VS Code, `code` per Kiro, `kiro` `cursor` per Cursor)

**Requisiti specifici della piattaforma**
+ **Utenti Windows**: per le connessioni terminali SSH è richiesta la versione PowerShell 5.1 o successiva

**Requisiti per la connettività**

Il computer locale deve avere accesso in rete agli [endpoint di Session Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html). Ad esempio, negli Stati Uniti orientali (Virginia settentrionale) (us-east-1) questi possono essere:
+ ssm.us-east-1.amazonaws.com
+ ssm.us-east-1.api.aws
+ ssmmessages.us-east-1.amazonaws.com
+ ec2messages.us-east-1.amazonaws.com

## Requisiti delle immagini
<a name="remote-access-image-requirements"></a>

**SageMaker Immagini di distribuzione**

Quando si utilizza SageMaker Distribution con accesso remoto, utilizzare [SageMaker Distribution](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-distribution.html) versione 2.7 o successiva.

**Immagini personalizzate**

Se utilizzi [Bring Your Own Image (BYOI)](studio-updated-byoi.md) l'accesso remoto, assicurati di seguire le [specifiche dell'immagine personalizzata](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi-specs.html) e assicurati che siano installate le seguenti dipendenze:
+ `curl`o `wget` — Necessario per scaricare i componenti AWS CLI 
+ `unzip`— Necessario per estrarre i file AWS CLI di installazione
+ `tar`— Necessario per l'estrazione dell'archivio
+ `gzip`— Necessario per la gestione di file compressi

## Requisiti per l’istanza
<a name="remote-access-instance-requirements"></a>
+ **Memoria**: almeno 8 GB
+ **Tipi di istanze**: utilizza istanze con almeno 8 GB di memoria. I seguenti tipi di istanze *non* sono supportati a causa della memoria insufficiente (meno di 8 GB): `ml.t3.medium`, `ml.c7i.large`, `ml.c6i.large`, `ml.c6id.large` e `ml.c5.large`. Per un elenco completo dei tipi di istanze, consulta la pagina [Amazon EC2 On-Demand Pricing](https://aws.amazon.com/ec2/pricing/on-demand/).

**Topics**
+ [Concetti chiave](#remote-access-key-concepts)
+ [Metodi di connessione](#remote-access-connection-methods)
+ [Supportato IDEs](#remote-access-supported-ides)
+ [Requisiti della versione IDE](#remote-access-ide-version-requirements)
+ [Requisiti del sistema operativo](#remote-access-os-requirements)
+ [Prerequisiti del computer locale](#remote-access-local-prerequisites)
+ [Requisiti delle immagini](#remote-access-image-requirements)
+ [Requisiti per l’istanza](#remote-access-instance-requirements)
+ [Configurazione dell’accesso remoto](remote-access-remote-setup.md)
+ [Configura IDE remoto](remote-access-local-ide-setup.md)
+ [AWS Regioni supportate](remote-access-supported-regions.md)

# Configurazione dell’accesso remoto
<a name="remote-access-remote-setup"></a>

Prima che gli utenti possano connettere il proprio IDE remoto agli spazi di Studio, l'amministratore deve configurare le autorizzazioni. Questa sezione fornisce istruzioni per gli amministratori su come configurare il proprio dominio Amazon SageMaker AI con accesso remoto.

I diversi metodi di connessione richiedono autorizzazioni IAM specifiche. Configura le autorizzazioni appropriate a seconda del tipo di connessione utilizzato dagli utenti. Utilizza il flusso di lavoro seguente insieme alle autorizzazioni specifiche per il metodo di connessione.

**Importante**  
Attualmente le connessioni remote agli IDE non vengono autenticate con il Centro identità IAM, ma con le credenziali IAM. Questo vale per i domini che utilizzano il [metodo di autenticazione](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-custom.html#onboard-custom-authentication-details) del Centro identità IAM per concedere agli utenti l’accesso al dominio. Se preferisci non utilizzare l’autenticazione IAM per le connessioni remote, puoi scegliere di non aderire disabilitando questa funzionalità con la chiave condizionale `RemoteAccess` nelle policy IAM. Per ulteriori informazioni, consulta [Applicazione dell’accesso remoto](remote-access-remote-setup-abac.md#remote-access-remote-setup-abac-remote-access-enforcement). Quando si utilizzano le credenziali IAM, le connessioni IDE remote possono mantenere le sessioni attive anche dopo la disconnessione dalla sessione di IAM Identity Center. A volte, queste connessioni IDE remote possono persistere fino a 12 ore. Per garantire la sicurezza dell'ambiente, gli amministratori devono rivedere le impostazioni sulla durata della sessione, ove possibile, e prestare attenzione quando utilizzano workstation condivise o reti pubbliche.

1. Scegli una delle autorizzazioni seguenti in base ai diversi metodi di connessione degli utenti descritti in [Metodi di connessione](remote-access.md#remote-access-connection-methods).

1. [Crea una policy IAM personalizzata](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) basata sull’autorizzazione per il metodo di connessione.

**Topics**
+ [Fase 1. Configura la sicurezza e le autorizzazioni](#remote-access-remote-setup-permissions)
+ [Fase 2. Abilita l’accesso remoto al tuo spazio](#remote-access-remote-setup-enable)
+ [Controllo degli accessi avanzato](remote-access-remote-setup-abac.md)
+ [Configurazione di Studio per l’esecuzione con sottoreti senza accesso a Internet all’interno di un VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md)
+ [Configura il filtraggio automatico dello spazio di Studio quando usi il AWS Toolkit](remote-access-remote-setup-filter.md)

## Fase 1. Configura la sicurezza e le autorizzazioni
<a name="remote-access-remote-setup-permissions"></a>

**Topics**
+ [Metodo 1: autorizzazioni per i link diretti](#remote-access-remote-setup-method-1-deep-link-permissions)
+ [Metodo 2: autorizzazioni AWS Toolkit](#remote-access-remote-setup-method-2-aws-toolkit-permissions)
+ [Metodo 3: autorizzazioni del terminale SSH](#remote-access-remote-setup-method-3-ssh-terminal-permissions)

**Importante**  
L'utilizzo di autorizzazioni ampie per`sagemaker:StartSession`, in particolare con una risorsa wildcard, `*` comporta il rischio che qualsiasi utente con questa autorizzazione possa avviare una sessione con qualsiasi SageMaker app Space dell'account. Ciò può comportare l'impatto dell'accesso involontario degli scienziati dei dati agli Spazi di altri utenti. SageMaker Per gli ambienti di produzione, è necessario limitare queste autorizzazioni a uno spazio specifico per ARNs applicare il principio del privilegio minimo. Vedi esempi [Controllo degli accessi avanzato](remote-access-remote-setup-abac.md) di politiche di autorizzazione più granulari che utilizzano risorse ARNs, tag e vincoli basati sulla rete.

### Metodo 1: autorizzazioni per i link diretti
<a name="remote-access-remote-setup-method-1-deep-link-permissions"></a>

[Per gli utenti che si connettono tramite deep link dall' SageMaker interfaccia utente, utilizza la seguente autorizzazione e collegala al ruolo di [esecuzione dello spazio SageMaker AI o al ruolo di esecuzione del dominio](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role-space).](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role) Se il ruolo di esecuzione dello spazio non è configurato, per impostazione predefinita viene utilizzato il ruolo di esecuzione del dominio.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RestrictStartSessionOnSpacesToUserProfile",
            "Effect": "Allow",
            "Action": [
                "sagemaker:StartSession"
            ],
            "Resource": "arn:*:sagemaker:*:*:space/${sagemaker:DomainId}/*",
            "Condition": {
                "ArnLike": {
                    "sagemaker:ResourceTag/sagemaker:user-profile-arn": "arn:aws:sagemaker:*:*:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
                }
            }
        }
    ]
}
```

------

### Metodo 2: autorizzazioni AWS Toolkit
<a name="remote-access-remote-setup-method-2-aws-toolkit-permissions"></a>

Per gli utenti che si connettono tramite l' AWS Toolkit for Visual Studio Code estensione, allega la seguente politica a una delle seguenti:
+ Per l’autenticazione IAM, collega questa policy all’utente o al ruolo IAM.
+ Per l’autenticazione IdC, collega questa policy ai [set di autorizzazioni](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) gestiti dall’IdC.

Per mostrare solo gli spazi relativi all'utente autenticato, consulta[Panoramica sulla funzionalità di filtraggio](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-overview).

**Importante**  
Questa policy, che utilizza `*` come vincolo delle risorse, è consigliata solo per l’esecuzione di test rapidi. Per gli ambienti di produzione, è necessario limitare queste autorizzazioni a uno spazio specifico ARNs per applicare il principio del privilegio minimo. Vedi esempi [Controllo degli accessi avanzato](remote-access-remote-setup-abac.md) di politiche di autorizzazione più granulari che utilizzano risorse ARNs, tag e vincoli basati sulla rete.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListSpaces",
                "sagemaker:DescribeSpace",
                "sagemaker:ListApps",
                "sagemaker:DescribeApp",
                "sagemaker:DescribeDomain",
                "sagemaker:UpdateSpace",
                "sagemaker:CreateApp",
                "sagemaker:DeleteApp",
                "sagemaker:AddTags"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowStartSessionOnSpaces",
            "Effect": "Allow",
            "Action": "sagemaker:StartSession",
            "Resource": [
                "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-1",
                "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-2"
            ]
        }
    ]
}
```

------

### Metodo 3: autorizzazioni del terminale SSH
<a name="remote-access-remote-setup-method-3-ssh-terminal-permissions"></a>

Per le connessioni terminali SSH, l'`StartSession`API viene richiamata dallo script di comando del proxy SSH riportato di seguito, utilizzando le credenziali locali. AWS AWS CLI Per informazioni e istruzioni [sulla configurazione](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) delle credenziali locali dell'utente, consulta Configure the. AWS Per utilizzare queste autorizzazioni:

1. Collega questa policy all’utente o al ruolo IAM associato alle credenziali AWS locali.

1. Se utilizzi un profilo di credenziali denominato, modifica il comando proxy nella configurazione SSH:

   ```
   ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
   ```
**Nota**  
La policy deve essere collegata all'identità IAM (utente/ruolo) utilizzata nella configurazione delle AWS credenziali locali, non al ruolo di esecuzione del dominio Amazon SageMaker AI.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowStartSessionOnSpecificSpaces",
               "Effect": "Allow",
               "Action": "sagemaker:StartSession",
               "Resource": [
                   "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-1",
                   "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-2"
               ]
           }
       ]
   }
   ```

------

Dopo la configurazione, gli utenti possono eseguire `ssh my_studio_space_abc` per avviare lo spazio. Per ulteriori informazioni, consulta [Metodo 3: connettersi dal terminale tramite la CLI SSH](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli).

## Fase 2. Abilita l’accesso remoto al tuo spazio
<a name="remote-access-remote-setup-enable"></a>

Dopo aver configurato le autorizzazioni, devi attivare l'**accesso remoto** e avviare lo spazio in Studio prima che l'utente possa connettersi utilizzando il proprio IDE remoto. Questa configurazione deve essere eseguita solo una volta.

**Nota**  
Se gli utenti si connettono tramite[Metodo 2: autorizzazioni AWS Toolkit](#remote-access-remote-setup-method-2-aws-toolkit-permissions), questo passaggio non è necessariamente necessario. AWS Toolkit for Visual Studio gli utenti possono abilitare l'accesso remoto dal Toolkit.

**Attivazione dell’accesso remoto per lo spazio Studio**

1. [Avvia Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html#studio-updated-launch-console).

1. Apri l’interfaccia utente di Studio.

1. Vai al tuo spazio.

1. Nei dettagli dello spazio, attiva l’opzione **Accesso remoto**.

1. Scegli **Esegui lo spazio**.

# Controllo degli accessi avanzato
<a name="remote-access-remote-setup-abac"></a>

Amazon SageMaker AI supporta il controllo degli [accessi basato sugli attributi (ABAC) per ottenere un controllo](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) granulare degli accessi per le connessioni IDE remote utilizzando le politiche ABAC. Di seguito sono riportati alcuni esempi di politiche ABAC per connessioni IDE remote.

**Topics**
+ [Applicazione dell’accesso remoto](#remote-access-remote-setup-abac-remote-access-enforcement)
+ [Controllo degli accessi basato su tag](#remote-access-remote-setup-abac-tag-based-access-control)

## Applicazione dell’accesso remoto
<a name="remote-access-remote-setup-abac-remote-access-enforcement"></a>

Controlla l’accesso alle risorse utilizzando la chiave di condizione `sagemaker:RemoteAccess`. Questo è supportato sia da che`CreateSpace`. `UpdateSpace` APIs Nell'esempio seguente viene utilizzato `CreateSpace`. 

Puoi impedire agli utenti di creare spazi con l’accesso remoto abilitato. Limitando le impostazioni predefinite di accesso, puoi garantire una maggiore sicurezza. La policy seguente consente agli utenti di:
+ Creare nuovi spazi Studio in cui l’accesso remoto è esplicitamente disabilitato.
+ Creare nuovi spazi Studio senza specificare alcuna impostazione di accesso remoto.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyCreateSpaceRemoteAccessEnabled",
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateSpace",
                "sagemaker:UpdateSpace"
            ],
            "Resource": "arn:aws:sagemaker:*:*:space/*",
            "Condition": {
                "StringEquals": {
                    "sagemaker:RemoteAccess": [
                        "ENABLED"
                    ]
                }
            }
        },
        {
            "Sid": "AllowCreateSpace",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateSpace",
                "sagemaker:UpdateSpace"
            ],
            "Resource": "arn:aws:sagemaker:*:*:space/*"
        }
    ]
}
```

------

## Controllo degli accessi basato su tag
<a name="remote-access-remote-setup-abac-tag-based-access-control"></a>

Implementa il controllo degli accessi [basato su tag](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html) per limitare le connessioni in base ai tag di risorse e principali.

Puoi limitare l’accesso degli utenti esclusivamente alle risorse appropriate per i loro ruoli e le loro assegnazioni di progetto. Puoi utilizzare la policy seguente per:
+ Consentire agli utenti di connettersi solo agli spazi che corrispondono al team, all’ambiente e al centro di costo assegnato.
+ Implementare un controllo granulare degli accessi basato sulla struttura organizzativa.

In questo esempio, lo spazio contiene i tag seguenti:

```
{ "Team": "ML", "Environment": "Production", "CostCenter": "12345" }
```

È possibile avere un ruolo che contiene la policy seguente che associa i tag delle risorse e i tag dei principali:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RestrictStartSessionOnTaggedSpacesInDomain",
            "Effect": "Allow",
            "Action": [
                "sagemaker:StartSession"
            ],
            "Resource": [
                "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Team": "${aws:PrincipalTag/Team}",
                    "aws:ResourceTag/Environment": "${aws:PrincipalTag/Environment}",
                    "aws:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}",
                    "aws:ResourceTag/IDC_UserName": "${aws:PrincipalTag/IDC_UserName}"
                }
            }
        }
    ]
}
```

------

Quando i tag del ruolo corrispondono, l’utente è autorizzato ad avviare la sessione e a connettersi in remoto al proprio spazio. Per ulteriori informazioni, consulta [Controllo dell’accesso alle risorse AWS con i tag](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html).

# Configurazione di Studio per l’esecuzione con sottoreti senza accesso a Internet all’interno di un VPC
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access"></a>

Questa guida mostra come connetterti agli spazi Amazon SageMaker Studio dal tuo IDE remoto quando il tuo dominio Amazon SageMaker AI viene eseguito in sottoreti private senza accesso a Internet. Scoprirai quali sono i requisiti di connettività e le opzioni di configurazione per stabilire connessioni remote sicure in ambienti di rete isolati.

Puoi configurare Amazon SageMaker Studio per l'esecuzione in modalità solo VPC con sottoreti senza accesso a Internet. Questa configurazione migliora la sicurezza dei carichi di lavoro di machine learning operando in un ambiente di rete isolato in cui tutto il traffico fluisce attraverso il VPC. Per abilitare le comunicazioni esterne mantenendo al contempo la sicurezza, utilizza gli endpoint VPC per i AWS servizi e configura PrivateLink VPC per le dipendenze richieste. AWS 

**Supporto IDE per connessioni subnet private**

La tabella seguente mostra i metodi di connessione supportati per ogni IDE remoto quando ci si connette a spazi Studio in sottoreti private senza accesso a Internet.


| Metodo di connessione | VS Code | Kiro | Cursore | 
| --- | --- | --- | --- | 
|  Supporto per proxy HTTP  |  Supportata  |  Supportata  |  Non supportata  | 
|  Server remoto ed estensioni preconfezionati  |  Supportata  |  Non supportata  |  Non supportata  | 

**Importante**  
Il cursore non è supportato per la connessione agli spazi di Studio in sottoreti private senza accesso a Internet in uscita.

**Topics**
+ [Requisiti della rete di accesso remoto di Studio](#remote-access-remote-setup-vpc-subnets-without-internet-access-network-requirements)
+ [Configurazione della rete di accesso remoto di Studio](#remote-access-remote-setup-vpc-subnets-without-internet-access-setup)

## Requisiti della rete di accesso remoto di Studio
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-network-requirements"></a>

**Limitazioni della modalità VPC**: Studio in modalità VPC supporta solo le sottoreti private. Studio non funziona con le sottoreti collegate direttamente a un gateway Internet (IGW). Le connessioni IDE remote condividono le stesse limitazioni dell'IA. SageMaker Per ulteriori informazioni, consulta [Connessione dei notebook Studio in un VPC a risorse esterne](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html).

### Requisiti VPC PrivateLink
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-vpc-privatelink-requirements"></a>

Quando l' SageMaker intelligenza artificiale viene eseguita in sottoreti private, configura questi endpoint VPC SSM oltre agli endpoint VPC standard richiesti per. SageMaker Per ulteriori informazioni, consulta [Connessione di Studio tramite un endpoint VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-interface-endpoint.html).
+ `com.amazonaws.REGION.ssm`
+ `com.amazonaws.REGION.ssmmessages`

**Raccomandazioni sulla policy degli endpoint VPC**

Di seguito sono riportate le policy degli endpoint VPC consigliate che consentono le azioni necessarie per l'accesso remoto utilizzando la `aws:PrincipalIsAWSService` condizione per garantire che solo servizi AWS come Amazon SageMaker AI possano effettuare le chiamate. Per ulteriori informazioni sulla chiave di `aws:PrincipalIsAWSService` condizione, consulta [la](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice) documentazione.

**Politica degli endpoint SSM**

Utilizza la seguente politica per l'`com.amazonaws.REGION.ssm`endpoint:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "ssm:CreateActivation",
                "ssm:RegisterManagedInstance",
                "ssm:DeleteActivation",
                "ssm:DeregisterManagedInstance",
                "ssm:AddTagsToResource",
                "ssm:UpdateInstanceInformation",
                "ssm:UpdateInstanceAssociationStatus",
                "ssm:DescribeInstanceInformation",
                "ssm:ListInstanceAssociations",
                "ssm:ListAssociations",
                "ssm:GetDocument",
                "ssm:PutInventory"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:PrincipalIsAWSService": "true"
                }
            }
        }
    ]
}
```

**Politica degli endpoint dei messaggi SSM**

Utilizza la seguente politica per l'`com.amazonaws.REGION.ssmmessages`endpoint:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:PrincipalIsAWSService": "true"
                }
            }
        }
    ]
}
```

**Requisiti di rete specifici di VS Code**

La connessione remota VS Code richiede lo sviluppo remoto VS Code, che a sua volta necessita di un accesso alla rete specifico per installare il server remoto e le estensioni. Consulta le [domande frequenti sullo sviluppo remoto](https://code.visualstudio.com/docs/remote/faq) nella documentazione di Visual Studio Code per i requisiti di rete completi. Di seguito è riportato un riepilogo dei requisiti:
+ L’accesso agli endpoint del server VS Code di Microsoft è necessario per installare e aggiornare il server remoto VS Code.
+ L’accesso a Visual Studio Marketplace e ai relativi endpoint CDN è necessario per installare le estensioni VS Code tramite il pannello delle estensioni (in alternativa, le estensioni possono essere installate manualmente utilizzando i file VSIX senza connessione Internet).
+ Alcune estensioni potrebbero richiedere l’accesso a ulteriori endpoint per scaricare le relative dipendenze specifiche. Consulta la documentazione dell’estensione per i requisiti di connettività specifici.

**Requisiti di rete specifici di Kiro**

La connessione remota a Kiro richiede lo sviluppo remoto di Kiro, che richiede un accesso specifico alla rete per installare il server remoto e le estensioni. Per la configurazione del firewall e del server proxy, consulta Configurazione del firewall [Kiro.](https://kiro.dev/docs/privacy-and-security/firewalls/) I requisiti sono simili a quelli di VS Code:
+ L'accesso agli endpoint del server Kiro è necessario per installare e aggiornare il server remoto Kiro.
+ L'accesso al marketplace delle estensioni e ai relativi endpoint CDN è necessario per installare le estensioni Kiro tramite il pannello di estensione.
+ Alcune estensioni potrebbero richiedere l’accesso a ulteriori endpoint per scaricare le relative dipendenze specifiche. Consulta la documentazione dell’estensione per i requisiti di connettività specifici.

## Configurazione della rete di accesso remoto di Studio
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup"></a>

Sono disponibili le seguenti opzioni per connettere l'IDE remoto agli spazi Studio in sottoreti private:
+ Proxy HTTP (supportato per VS Code e Kiro)
+ Server remoto ed estensioni preconfezionati (solo VS Code)

### Configurazione del proxy HTTP con elenchi controllati di elementi consentiti
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup-http-proxy-with-controlled-allow-listing"></a>

Se lo spazio di Studio è protetto da un firewall o da un proxy, consenti l'accesso al server IDE e agli endpoint relativi alle estensioni CDNs .

1. Per eseguire il proxy HTTP, configura una sottorete pubblica, ad esempio Squid, dove puoi specificare quali siti web autorizzare. Assicurati che il proxy HTTP sia accessibile tramite spazi. SageMaker 

1. La sottorete pubblica può trovarsi nello stesso VPC utilizzato dallo Studio o in un VPC separato con tutti i domini di intelligenza artificiale VPCs utilizzati da Amazon. SageMaker 

### Configura server ed estensioni remoti preconfezionati (solo VS Code)
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup-pre-packaged-vs-code-remote-server-and-extensions"></a>

**Nota**  
Questa opzione è disponibile solo per Visual Studio Code. Kiro e Cursor non supportano la configurazione preconfezionata del server remoto.

Quando gli spazi Studio non possono accedere agli endpoint esterni per scaricare il server remoto e le estensioni VS Code, puoi preconfezionarli. Con questo approccio, esporti un tarball che contiene la directory `.VS Code-server` per una versione specifica di VS Code. Quindi, si utilizza uno script SageMaker AI Lifecycle Configuration (LCC) per copiare ed estrarre il tarball nella home directory () degli spazi di Studio. `/home/sagemaker-user` Questa soluzione basata su LCC funziona sia con immagini fornite che personalizzate. AWS Anche quando non si utilizzano sottoreti private, questo approccio accelera la configurazione del server remoto VS Code e delle estensioni preinstallate.

**Istruzioni per preconfezionare il server remoto e le estensioni VS Code**

1. Installa VS Code sul computer locale.

1. Avvia un container Docker basato su Linux (x64) con SSH abilitato, localmente o tramite uno spazio Studio con accesso a Internet. Per semplicità, consigliamo di utilizzare uno spazio Studio temporaneo con accesso remoto e accesso a Internet.

1. Connetti l’istanza VS Code installata sul container Docker locale tramite SSH remoto oppure connettiti allo spazio Studio tramite la funzionalità VS Code remoto di Studio. VS Code installa il server remoto in `.VS Code-server` nella home directory del container remoto durante la connessione. Per ulteriori informazioni, consulta [Esempio di utilizzo di Dockerfile per preconfezionare il server remoto e le estensioni VS Code](remote-access-local-ide-setup-vpc-no-internet.md#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile).

1. Una volta completata la connessione remota, assicurati di utilizzare il profilo predefinito VS Code.

1. Installa le estensioni VS Code richieste e convalidane la funzionalità. Ad esempio, crea ed esegui un notebook per installare le estensioni relative al notebook Jupyter nel server remoto VS Code.

   Assicurati di [installare l' AWS Toolkit for Visual Studio Code estensione](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html) dopo la connessione al contenitore remoto.

1. Archivia la directory `$HOME/.VS Code-server` (ad esempio, `VS Code-server-with-extensions-for-1.100.2.tar.gz`) nel container Docker locale o nel terminale dello spazio Studio connesso in remoto.

1. Carica il tarball su Amazon S3.

1. Crea uno [script LCC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lifecycle-configurations.html) ([Esempio di script LCC (LCC-install-VS C ode-server-v 1.100.2)](remote-access-local-ide-setup-vpc-no-internet.md#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc)) che:
   + Scarichi l’archivio specifico da Amazon S3.
   + Estragga l’archivio nella home directory quando viene avviato uno spazio Studio in una sottorete privata.

1. (Facoltativo) Estendi lo script LCC per supportare i tarball del server VS Code per ogni utente archiviati in cartelle Amazon S3 specifiche dell’utente.

1. (Facoltativo) Gestisci gli script LCC specifici della versione ([Esempio di script LCC (LCC-install-VS C ode-server-v 1.100.2)](remote-access-local-ide-setup-vpc-no-internet.md#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc)) da collegare ai tuoi spazi per garantire la compatibilità tra il client VS Code locale e il server remoto.

# Configura il filtraggio automatico dello spazio di Studio quando usi il AWS Toolkit
<a name="remote-access-remote-setup-filter"></a>

Gli utenti possono filtrare gli spazi nell' AWS Toolkit for Visual Studio Code explorer per visualizzare solo gli spazi pertinenti. Questa sezione fornisce informazioni sul filtraggio e su come configurare il filtraggio automatico.

Questa configurazione si applica solo quando si utilizza il [Metodo 2: AWS Toolkit nell'IDE remoto](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code) metodo di connessione dall'IDE remoto agli spazi Amazon SageMaker Studio. Per ulteriori informazioni, consulta [Configurazione dell’accesso remoto](remote-access-remote-setup.md).

**Topics**
+ [Panoramica sulla funzionalità di filtraggio](#remote-access-remote-setup-filter-overview)
+ [Configurazione quando si esegue la connessione con le credenziali IAM](#remote-access-remote-setup-filter-set-up-iam-credentials)

## Panoramica sulla funzionalità di filtraggio
<a name="remote-access-remote-setup-filter-overview"></a>

Il **filtraggio manuale** consente agli utenti di selezionare manualmente i profili utente per cui visualizzare gli spazi tramite l'interfaccia AWS Toolkit. Questo metodo funziona per tutti i tipi di autenticazione e ha la precedenza sul filtraggio automatico. Per il filtraggio manuale, consulta [Filtraggio manuale](remote-access-local-ide-setup-filter.md#remote-access-local-ide-setup-filter-manual).

Il **filtraggio automatico** mostra automaticamente solo gli spazi pertinenti per l’utente autenticato. Questo comportamento di filtraggio dipende dal metodo di autenticazione utilizzato durante l’accesso. [Per ulteriori informazioni, consulta Connessione AWS dal Toolkit](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html#connect-to-aws) nella Toolkit for VS Code User Guide. Di seguito sono elencate le opzioni di accesso.
+ **Autenticazione e connessione con SSO**: il filtraggio automatico è applicato per impostazione predefinita.
+ **Autenticazione e connessione con le credenziali IAM**: il filtraggio automatico **richiede che l’amministratore configuri** le credenziali IAM seguenti. Senza questa configurazione, AWS Toolkit non è in grado di identificare quali spazi appartengono all'utente, quindi tutti gli spazi vengono visualizzati per impostazione predefinita.
  + **Utilizzo delle credenziali utente IAM**
  + **Utilizzo delle credenziali della sessione del ruolo IAM assunto**

## Configurazione quando si esegue la connessione con le credenziali IAM
<a name="remote-access-remote-setup-filter-set-up-iam-credentials"></a>

**Quando si utilizzano le credenziali utente IAM**

Il Kit di strumenti per VS Code può associare gli spazi appartenenti ai profili utente che iniziano con il nome utente IAM autenticato o il nome della sessione del ruolo assunto. Per configurarlo:

**Nota**  
Per il corretto funzionamento del filtraggio automatico, gli amministratori devono configurare i nomi dei profili utente Studio in modo che seguano questa convenzione di denominazione.
+ Gli amministratori devono assicurarsi che i nomi dei profili utente Studio seguano la convenzione di denominazione:
  + Per gli utenti IAM: prefisso con `IAM-user-name-`.
  + Per i ruoli assunti: prefisso con `assumed-role-session-name-`.
+ `aws sts get-caller-identity` restituisce le informazioni sull’identità utilizzate per la corrispondenza.
+ Gli spazi che appartengono ai profili utente associati verranno filtrati automaticamente nel Kit di strumenti per VS Code.

**Quando si utilizzano le credenziali di sessione del ruolo IAM presunte** Oltre alla configurazione per l'utilizzo delle credenziali utente IAM di cui sopra, è necessario assicurarsi che la sessione ARNs includa gli identificatori utente come prefissi corrispondenti. Puoi configurare politiche di fiducia che assicurino che la sessione ARNs includa gli identificatori utente come prefissi. [Crea una policy di attendibilità](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) e collegala al ruolo assunto utilizzato per l’autenticazione.

Questa configurazione non è richiesta per le credenziali utente IAM dirette o per l’autenticazione IdC.

**Esempio di configurazione di una policy di attendibilità per le credenziali della sessione del ruolo IAM**: crea una policy di attendibilità che imponga alle sessioni del ruolo di includere il nome utente IAM. Di seguito è riportato un esempio di policy:

```
{
    "Statement": [
        {
            "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::ACCOUNT:root"},
            "Condition": {
                "StringLike": {"sts:RoleSessionName": "${aws:username}"}
            }
        }
    ]
}
```

# Configura IDE remoto
<a name="remote-access-local-ide-setup"></a>

Dopo che gli amministratori hanno completato le istruzioni riportate in[Connect il tuo IDE remoto a SageMaker spazi con accesso remoto](remote-access.md), puoi connettere l'IDE remoto agli SageMaker spazi remoti.

**Topics**
+ [Configurazione dell’ambiente locale](#remote-access-local-ide-setup-local-environment)
+ [Connect al tuo IDE remoto](#remote-access-local-ide-setup-local-vs-code)
+ [Connessione a VPC con sottoreti senza accesso a Internet](remote-access-local-ide-setup-vpc-no-internet.md)
+ [Filtraggio degli spazi Studio](remote-access-local-ide-setup-filter.md)

## Configurazione dell’ambiente locale
<a name="remote-access-local-ide-setup-local-environment"></a>

Installa il tuo IDE remoto preferito sul tuo computer locale:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursore](https://cursor.com/home)

Per informazioni sui requisiti di versione, vedere[Requisiti della versione IDE](remote-access.md#remote-access-ide-version-requirements).

## Connect al tuo IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code"></a>

Prima di poter stabilire una connessione dall'IDE remoto agli SageMaker spazi remoti, l'amministratore deve farlo[Configurazione dell’accesso remoto](remote-access-remote-setup.md). L’amministratore configura un metodo specifico per stabilire una connessione. Scegli il metodo che è stato configurato per te.

**Topics**
+ [Metodo 1: link diretto dall’interfaccia utente di Studio](#remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui)
+ [Metodo 2: AWS Toolkit nell'IDE remoto](#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code)
+ [Metodo 3: connettersi dal terminale tramite la CLI SSH](#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli)

### Metodo 1: link diretto dall’interfaccia utente di Studio
<a name="remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui"></a>

Utilizza la procedura seguente per stabilire una connessione tramite link diretto.

1. [Avvia Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html#studio-updated-launch-console).

1. Nell’interfaccia utente di Studio, accedi al tuo spazio.

1. Scegli **il pulsante Apri in VS Code**, **Apri in Kiro o** **Apri in cursore** per il tuo IDE preferito. Assicurati che il tuo IDE preferito sia già installato sul tuo computer locale.

1. Quando richiesto, conferma l'apertura dell'IDE. L'IDE si apre con un altro pop-up di conferma. Una volta completata, viene stabilita la connessione remota.

### Metodo 2: AWS Toolkit nell'IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code"></a>

Utilizza la procedura seguente per stabilire una connessione con il AWS Toolkit for Visual Studio Code. Questo metodo è disponibile per VS Code, Kiro e Cursor.

1. Apri il tuo IDE remoto (VS Code, Kiro o Cursor).

1. Apri l'estensione AWS Toolkit.

1. [Connettiti ad AWS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html).

1. In AWS Explorer, espandi **SageMaker AI**, quindi espandi **Studio**.

1. Trova il tuo spazio Studio.

1. Scegli l’icona **Connetti** accanto al tuo spazio per avviarlo.
**Nota**  
Arresta e riavvia lo spazio nel Kit di strumenti per Visual Studio per abilitare l’accesso remoto, se non è già connesso.
Se lo spazio non utilizza una [dimensione dell’istanza](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html#remote-access-instance-requirements) supportata, ti verrà chiesto di modificare l’istanza.

### Metodo 3: connettersi dal terminale tramite la CLI SSH
<a name="remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli"></a>

Scegli una delle seguenti opzioni di piattaforma per visualizzare la procedura per stabilire una connessione utilizzando la CLI SSH.

**Nota**  
Assicurati di avere [Prerequisiti del computer locale](remote-access.md#remote-access-local-prerequisites) installato le versioni più recenti prima di seguire le istruzioni riportate di seguito.
In caso [Bring Your Own Image (BYOI)](studio-updated-byoi.md) affermativo, assicuratevi di aver installato le dipendenze richieste elencate in [Requisiti delle immagini](remote-access.md#remote-access-image-requirements) prima di procedere

------
#### [ Linux/macOS ]

Crea uno script shell (ad esempio, `/home/user/sagemaker_connect.sh`):

```
#!/bin/bash
# Disable the -x option if printing each command is not needed.
set -exuo pipefail

SPACE_ARN="$1"
AWS_PROFILE="${2:-}"

# Validate ARN and extract region
if [[ "$SPACE_ARN" =~ ^arn:aws[-a-z]*:sagemaker:([a-z0-9-]+):[0-9]{12}:space\/[^\/]+\/[^\/]+$ ]]; then
    AWS_REGION="${BASH_REMATCH[1]}"
else
    echo "Error: Invalid SageMaker Studio Space ARN format."
    exit 1
fi

# Optional profile flag
PROFILE_ARG=()
if [[ -n "$AWS_PROFILE" ]]; then
    PROFILE_ARG=(--profile "$AWS_PROFILE")
fi

# Start session
START_SESSION_JSON=$(aws sagemaker start-session \
    --resource-identifier "$SPACE_ARN" \
    --region "${AWS_REGION}" \
    "${PROFILE_ARG[@]}")

# Extract fields using grep and sed
SESSION_ID=$(echo "$START_SESSION_JSON" | grep -o '"SessionId": "[^"]*"' | sed 's/.*: "//;s/"$//')
STREAM_URL=$(echo "$START_SESSION_JSON" | grep -o '"StreamUrl": "[^"]*"' | sed 's/.*: "//;s/"$//')
TOKEN=$(echo "$START_SESSION_JSON" | grep -o '"TokenValue": "[^"]*"' | sed 's/.*: "//;s/"$//')

# Validate extracted values
if [[ -z "$SESSION_ID" || -z "$STREAM_URL" || -z "$TOKEN" ]]; then
    echo "Error: Failed to extract session information from sagemaker start session response."
    exit 1
fi

# Call session-manager-plugin
session-manager-plugin \
    "{\"streamUrl\":\"$STREAM_URL\",\"tokenValue\":\"$TOKEN\",\"sessionId\":\"$SESSION_ID\"}" \
    "$AWS_REGION" "StartSession"
```

1. Rendi eseguibile lo script:

   ```
   chmod +x /home/user/sagemaker_connect.sh
   ```

1. Configura `$HOME/.ssh/config` per aggiungere la voce seguente:

```
Host space-name
  HostName 'arn:PARTITION:sagemaker:us-east-1:111122223333:space/domain-id/space-name'
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h'
  ForwardAgent yes
  AddKeysToAgent yes
  StrictHostKeyChecking accept-new
```

Ad esempio, `PARTITION` può essere `aws`.

Se è necessario utilizzare un [profilo di AWS credenziali denominato](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-configure-files-using-profiles), modificare il comando proxy come segue:

```
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
```
+ Connettiti tramite SSH o esegui il comando SCP:

```
ssh space-name
scp file_abc space-name:/tmp/
```

------
#### [ Windows ]

**Prerequisiti per Windows:**
+ PowerShell 5.1 o versione successiva
+ Client SSH (OpenSSH consigliato)

Crea uno PowerShell script (ad esempio,): `C:\Users\user-name\sagemaker_connect.ps1`

```
# sagemaker_connect.ps1
param(
    [Parameter(Mandatory=$true)]
    [string]$SpaceArn,

    [Parameter(Mandatory=$false)]
    [string]$AwsProfile = ""
)

# Enable error handling
$ErrorActionPreference = "Stop"

# Validate ARN and extract region
if ($SpaceArn -match "^arn:aws[-a-z]*:sagemaker:([a-z0-9-]+):[0-9]{12}:space\/[^\/]+\/[^\/]+$") {
    $AwsRegion = $Matches[1]
} else {
    Write-Error "Error: Invalid SageMaker Studio Space ARN format."
    exit 1
}

# Build AWS CLI command
$awsCommand = @("sagemaker", "start-session", "--resource-identifier", $SpaceArn, "--region", $AwsRegion)

if ($AwsProfile) {
    $awsCommand += @("--profile", $AwsProfile)
}

try {
    # Start session and capture output
    Write-Host "Starting SageMaker session..." -ForegroundColor Green
    $startSessionOutput = & aws @awsCommand

    # Try to parse JSON response
    try {
        $sessionData = $startSessionOutput | ConvertFrom-Json
    } catch {
        Write-Error "Failed to parse JSON response: $_"
        Write-Host "Raw response was:" -ForegroundColor Yellow
        Write-Host $startSessionOutput
        exit 1
    }

    $sessionId = $sessionData.SessionId
    $streamUrl = $sessionData.StreamUrl
    $token = $sessionData.TokenValue

    # Validate extracted values
    if (-not $sessionId -or -not $streamUrl -or -not $token) {
        Write-Error "Error: Failed to extract session information from sagemaker start session response."
        Write-Host "Parsed response was:" -ForegroundColor Yellow
        Write-Host ($sessionData | ConvertTo-Json)
        exit 1
    }

    Write-Host "Session started successfully. Connecting..." -ForegroundColor Green

    # Create session manager plugin command
    $sessionJson = @{
        streamUrl = $streamUrl
        tokenValue = $token
        sessionId = $sessionId
    } | ConvertTo-Json -Compress

    # Escape the JSON string
    $escapedJson = $sessionJson -replace '"', '\"'

    # Call session-manager-plugin
    & session-manager-plugin "$escapedJson" $AwsRegion "StartSession"

} catch {
    Write-Error "Failed to start session: $_"
    exit 1
}
```
+ Configura `C:\Users\user-name\.ssh\config` per aggiungere la voce seguente:

```
Host space-name                            
  HostName "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name"
  ProxyCommand "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy RemoteSigned -File "C:\\Users\\user-name\\sagemaker_connect.ps1" "%h"
  ForwardAgent yes
  AddKeysToAgent yes
  User sagemaker-user
  StrictHostKeyChecking accept-new
```

------

# Connessione a VPC con sottoreti senza accesso a Internet
<a name="remote-access-local-ide-setup-vpc-no-internet"></a>

Prima di connettere l'IDE remoto agli spazi di Studio in sottoreti private senza accesso a Internet, assicurati che l'amministratore lo abbia fatto. [Configurazione di Studio per l’esecuzione con sottoreti senza accesso a Internet all’interno di un VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md)

Sono disponibili le seguenti opzioni per connettere l'IDE remoto agli spazi Studio in sottoreti private:
+ Configura il proxy HTTP (supportato per VS Code e Kiro)
+ Server remoto ed estensioni preconfezionati (solo VS Code)

**Importante**  
Il cursore non è supportato per la connessione agli spazi di Studio in sottoreti private senza accesso a Internet in uscita.

**Topics**
+ [Proxy HTTP con elenchi controllati di elementi consentiti](#remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing)
+ [Server ed estensioni remoti preconfezionati (solo VS Code)](#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions)

## Proxy HTTP con elenchi controllati di elementi consentiti
<a name="remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing"></a>

Se lo spazio di Studio è protetto da un firewall o da un proxy, chiedete all'amministratore di consentire l'accesso al server IDE e agli endpoint relativi alle estensioni. CDNs Per ulteriori informazioni, consulta [Configurazione del proxy HTTP con elenchi controllati di elementi consentiti](remote-access-remote-setup-vpc-subnets-without-internet-access.md#remote-access-remote-setup-vpc-subnets-without-internet-access-setup-http-proxy-with-controlled-allow-listing).

------
#### [ VS Code ]

Configura il proxy HTTP per lo sviluppo remoto di VS Code fornendo all'URL del proxy l'`remote.SSH.httpProxy`impostazione or. `remote.SSH.httpsProxy`

**Nota**  
Prendi in considerazione l'abilitazione di «Remote.ssh: usa i file di configurazione Curl e Wget» per utilizzare la configurazione dall'ambiente e dai file remoti. `curlrc` `wgetrc` In questo modo i `wgetrc` file `curlrc` and, collocati nelle rispettive posizioni predefinite SageMaker nello spazio, possono essere utilizzati per abilitare determinati casi.

------
#### [ Kiro ]

Configura il proxy HTTP per lo sviluppo remoto di Kiro impostando l'`aws.sagemaker.ssh.kiro.httpsProxy`impostazione sul tuo endpoint proxy HTTP o HTTPS.

Se utilizzi i server MCP (Model Context Protocol) in Kiro, devi anche aggiungere le variabili di ambiente proxy alla configurazione del tuo server MCP:

```
"env": {
    "http_proxy": "${http_proxy}",
    "https_proxy": "${https_proxy}"
}
```

------

Questa opzione, che richiede le autorizzazioni per configurare il proxy HTTP, consente di installare estensioni aggiuntive in modo flessibile, visto che alcune estensioni richiedono un endpoint pubblico.

## Server ed estensioni remoti preconfezionati (solo VS Code)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions"></a>

**Nota**  
Questa opzione è disponibile solo per Visual Studio Code. Kiro e Cursor non supportano la configurazione preconfezionata del server remoto.

Quando gli spazi Studio non possono accedere agli endpoint esterni per scaricare il server remoto e le estensioni VS Code, puoi preconfezionarli. Con questo approccio, l’amministratore può esportare un tarball che contiene la directory `.VS Code-server` per una versione specifica di VS Code. Quindi, l'amministratore utilizza uno script SageMaker AI Lifecycle Configuration (LCC) per copiare ed estrarre il tarball nella home directory (). `/home/sagemaker-user` Per ulteriori informazioni, consulta [Configura server ed estensioni remoti preconfezionati (solo VS Code)](remote-access-remote-setup-vpc-subnets-without-internet-access.md#remote-access-remote-setup-vpc-subnets-without-internet-access-setup-pre-packaged-vs-code-remote-server-and-extensions).

**Istruzioni per utilizzare il preconfezionamento per il server remoto e le estensioni VS Code**

1. Installa VS Code sul computer locale.

1. Quando ti connetti allo spazio: SageMaker 
   + Utilizza il profilo predefinito per garantire la compatibilità con le estensioni preconfezionate. In caso contrario, dovrai installare le estensioni utilizzando i file VSIX scaricati dopo la connessione allo spazio Studio.
   + Scegli uno script LCC specifico per la versione di VS Code da collegare allo spazio quando lo avvii.

### Esempio di utilizzo di Dockerfile per preconfezionare il server remoto e le estensioni VS Code
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile"></a>

Di seguito è riportato un Dockerfile di esempio per avviare un container locale con il server SSH preinstallato, se non è possibile creare uno spazio con accesso remoto e accesso a Internet.

**Nota**  
In questo esempio, il server SSH non richiede l’autenticazione e viene utilizzato solo per esportare il server remoto VS Code.
Il container deve essere creato ed eseguito su un’architettura x64.

```
FROM amazonlinux:2023

# Install OpenSSH server and required tools
RUN dnf install -y \
    openssh-server \
    shadow-utils \
    passwd \
    sudo \
    tar \
    gzip \
    && dnf clean all

# Create a user with no password
RUN useradd -m -s /bin/bash sagemaker-user && \
    passwd -d sagemaker-user

# Add sagemaker-user to sudoers via wheel group
RUN usermod -aG wheel sagemaker-user && \
    echo 'sagemaker-user ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/sagemaker-user && \
    chmod 440 /etc/sudoers.d/sagemaker-user

# Configure SSH to allow empty passwords and password auth
RUN sed -i 's/^#\?PermitEmptyPasswords .*/PermitEmptyPasswords yes/' /etc/ssh/sshd_config && \
    sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config

# Generate SSH host keys
RUN ssh-keygen -A

# Expose SSH port
EXPOSE 22

WORKDIR /home/sagemaker-user
USER sagemaker-user

# Start SSH server
CMD ["bash"]
```

Utilizza i comandi seguenti per creare ed eseguire il container:

```
# Build the image
docker build . -t remote_server_export

# Run the container
docker run --rm -it -d \
  -v /tmp/remote_access/.VS Code-server:/home/sagemaker-user/.VS Code-server \
  -p 2222:22 \
  --name remote_server_export \
  remote_server_export
  
# change the permisson for the mounted folder
docker exec -i remote_server_export \
       bash -c 'sudo chown sagemaker-user:sagemaker-user ~/.VS Code-server'

# start the ssh server in the container 
docker exec -i remote_server_export bash -c 'sudo /usr/sbin/sshd -D &'
```

Connettiti con il comando seguente:

```
ssh sagemaker-user@localhost -p 2222
```

Prima di connettere il container, configura quanto segue nel file `.ssh/config`. Successivamente, potrai visualizzare `remote_access_export` come nome host nel pannello laterale SSH remoto durante la connessione. Esempio:

```
Host remote_access_export
  HostName localhost
  User=sagemaker-user
  Port 2222
  ForwardAgent yes
```

Archivia `/tmp/remote_access/.VS Code-server` e segui la procedura indicata in Server remoto ed estensioni VS Code preconfezionati per connettere e installare l’estensione. Dopo la decompressione, assicurati che la cartella `.VS Code-server` venga visualizzata come cartella principale.

```
cd /tmp/remote_access/
sudo tar -czvf VS Code-server-with-extensions-for-1.100.2.tar.gz .VS Code-server
```

### Esempio di script LCC (LCC-install-VS C ode-server-v 1.100.2)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc"></a>

Di seguito è riportato un esempio che spiega come installare una versione specifica del server remoto VS Code.

```
#!/bin/bash

set -x

remote_server_file=VS Code-server-with-extensions-for-1.100.2.tar.gz

if [ ! -d "${HOME}/.VS Code-server" ]; then
    cd /tmp
    aws s3 cp s3://S3_BUCKET/remote_access/${remote_server_file} .
    tar -xzvf ${remote_server_file}
    mv .VS Code-server "${HOME}"
    rm ${remote_server_file}
else
    echo "${HOME}/.VS Code-server already exists, skipping download and install."
fi
```

# Filtraggio degli spazi Studio
<a name="remote-access-local-ide-setup-filter"></a>

Puoi utilizzare il filtro per visualizzare solo gli spazi Amazon SageMaker AI pertinenti nell' AWS Toolkit for Visual Studio Code explorer. Di seguito vengono fornite informazioni sul filtraggio manuale e sul filtraggio automatico. Per ulteriori informazioni sulle definizioni di filtraggio manuale e automatico, consulta [Panoramica sulla funzionalità di filtraggio](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-overview).

Questa configurazione si applica solo quando si utilizza il [Metodo 2: AWS Toolkit nell'IDE remoto](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code) metodo di connessione dall'IDE remoto agli spazi Amazon SageMaker Studio. Per ulteriori informazioni, consulta [Configurazione dell’accesso remoto](remote-access-remote-setup.md).

**Topics**
+ [Filtraggio manuale](#remote-access-local-ide-setup-filter-manual)
+ [Configurazione del filtraggio automatico quando si utilizzano le credenziali IAM per l’accesso](#remote-access-local-ide-setup-filter-automatic-IAM-credentials)

## Filtraggio manuale
<a name="remote-access-local-ide-setup-filter-manual"></a>

Per filtrare manualmente gli spazi visualizzati:
+ Apri il tuo IDE remoto e vai all'esploratore del pannello laterale Toolkit for VS Code
+ Trova la sezione **SageMaker AI**
+ Scegli l'icona del filtro a destra dell'intestazione della sezione SageMaker AI. Si apre un menu a discesa.
+ Dal menu a discesa, seleziona i profili utente per i quali desideri visualizzare gli spazi.

## Configurazione del filtraggio automatico quando si utilizzano le credenziali IAM per l’accesso
<a name="remote-access-local-ide-setup-filter-automatic-IAM-credentials"></a>

Il filtraggio automatico dipende dal metodo di autenticazione utilizzato durante l’accesso. [Per ulteriori informazioni, consulta Connessione AWS dal Toolkit](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html#connect-to-aws) nella Guida per l'utente di Toolkit for VS Code.

Se utilizzi le **credenziali IAM** per l’autenticazione e la connessione, il filtraggio automatico richiede [Configurazione quando si esegue la connessione con le credenziali IAM](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-set-up-iam-credentials). Senza questa configurazione, se gli utenti aderiscono al filtraggio delle identità, non verranno visualizzati spazi.

Una volta impostato quanto sopra, AWS Toolkit abbina gli spazi appartenenti ai profili utente che iniziano con il nome utente IAM autenticato o il nome della sessione del ruolo assunto.

Il filtraggio automatico è opzionale per gli utenti:
+ Apri le impostazioni IDE remote
+ Vai all’estensione **Kit di strumenti AWS **.
+ Trova **Abilita filtraggio delle identità**.
+ Scegli di abilitare il filtraggio automatico degli spazi in base alla tua identità AWS .

# AWS Regioni supportate
<a name="remote-access-supported-regions"></a>

La tabella seguente elenca le AWS regioni in cui sono supportate le connessioni IDE remote agli spazi di Studio, oltre a quelle IDEs disponibili in ciascuna regione.


| AWS Regione | VS Code | Kiro | Cursore | 
| --- | --- | --- | --- | 
| us-east-1 | Supportata | Supportato | Supportata | 
| us-east-2 | Supportata | Supportato | Supportata | 
| us-west-1 | Supportata | Supportato | Supportata | 
| us-west-2 | Supportata | Supportato | Supportata | 
| af-south-1 | Supportata | Supportato | Supportata | 
| ap-east-1 | Supportata | Supportato | Supportata | 
| ap-south-1 | Supportata | Supportato | Supportata | 
| ap-northeast-1 | Supportata | Supportato | Supportata | 
| ap-northeast-2 | Supportata | Supportato | Supportata | 
| ap-northeast-3 | Supportata | Supportato | Supportata | 
| ap-southeast-1 | Supportata | Supportato | Supportata | 
| ap-southeast-2 | Supportata | Supportato | Supportata | 
| ap-southeast-3 | Supportata | Supportato | Supportata | 
| ap-southeast-5 | Supportata | Supportato | Supportata | 
| ca-central-1 | Supportata | Supportato | Supportata | 
| eu-central-1 | Supportata | Supportato | Supportata | 
| eu-central-2 | Supportata | Supportato | Supportata | 
| eu-north-1 | Supportata | Supportato | Supportata | 
| eu-south-1 | Supportata | Supportato | Supportata | 
| eu-south-2 | Supportata | Supportato | Supportata | 
| eu-west-1 | Supportata | Supportato | Supportata | 
| eu-west-2 | Supportata | Supportato | Supportata | 
| eu-west-3 | Supportata | Supportato | Supportata | 
| il-central-1 | Supportata | Supportato | Supportata | 
| me-central-1 | Supportata | Non supportata | Non supportata | 
| me-south-1 | Supportata | Non supportata | Non supportata | 
| sa-east-1 | Supportata | Supportato | Supportata | 