

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.

# Configurer Remote IDE
<a name="remote-access-local-ide-setup"></a>

Une fois que les administrateurs ont terminé les instructions[Connectez votre IDE distant à des SageMaker espaces avec accès à distance](remote-access.md), vous pouvez connecter votre IDE distant à vos SageMaker espaces distants.

**Topics**
+ [Configuration de votre environnement local](#remote-access-local-ide-setup-local-environment)
+ [Connectez-vous à votre IDE distant](#remote-access-local-ide-setup-local-vs-code)
+ [Connexion à un VPC avec des sous-réseaux sans accès à Internet](remote-access-local-ide-setup-vpc-no-internet.md)
+ [Filtrage de vos espaces Studio](remote-access-local-ide-setup-filter.md)

## Configuration de votre environnement local
<a name="remote-access-local-ide-setup-local-environment"></a>

Installez votre IDE distant préféré sur votre machine locale :
+ [Code Visual Studio](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Curseur](https://cursor.com/home)

Pour plus d'informations sur les exigences de version, consultez[Exigences relatives à la version IDE](remote-access.md#remote-access-ide-version-requirements).

## Connectez-vous à votre IDE distant
<a name="remote-access-local-ide-setup-local-vs-code"></a>

Avant de pouvoir établir une connexion entre votre IDE distant et vos SageMaker espaces distants, votre administrateur doit[Configuration de l’accès à distance](remote-access-remote-setup.md). Votre administrateur configure une méthode spécifique pour vous permettre d’établir une connexion. Choisissez la méthode qui a été configurée pour vous.

**Topics**
+ [Méthode 1 : lien profond depuis l’interface utilisateur de Studio](#remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui)
+ [Méthode 2 : AWS boîte à outils dans l'IDE distant](#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code)
+ [Méthode 3 : Connexion depuis le terminal via la CLI SSH](#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli)

### Méthode 1 : lien profond depuis l’interface utilisateur de Studio
<a name="remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui"></a>

Utilisez la procédure suivante pour établir une connexion à l’aide d’un lien profond.

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

1. Dans l’interface utilisateur de Studio, accédez à votre espace.

1. Choisissez **Ouvrir dans VS Code**, **Ouvrir dans Kiro** ou **Ouvrir dans le curseur** pour votre IDE préféré. Assurez-vous que votre IDE préféré est déjà installé sur votre ordinateur local.

1. Lorsque vous y êtes invité, confirmez l'ouverture de votre IDE. Votre IDE s'ouvre avec une autre fenêtre contextuelle pour confirmer. Une fois terminée, la connexion à distance est établie.

### Méthode 2 : AWS boîte à outils dans l'IDE distant
<a name="remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code"></a>

Utilisez la procédure suivante pour établir une connexion à l’aide d’ AWS Toolkit for Visual Studio Code. Cette méthode est disponible pour VS Code, Kiro et Cursor.

1. Ouvrez votre IDE distant (VS Code, Kiro ou Cursor).

1. Ouvrez l'extension AWS Toolkit.

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

1. Dans l' AWS explorateur, développez **SageMaker l'IA**, puis développez **Studio**.

1. Recherchez votre espace Studio.

1. Choisissez l’icône **Connexion** à côté de votre espace pour le démarrer.
**Note**  
Arrêtez et redémarrez l’espace dans Toolkit for Visual Studio pour permettre l’accès à distance, si vous n’êtes pas déjà connecté.
Si l’espace n’utilise pas une [taille d’instance](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html#remote-access-instance-requirements) prise en charge, il vous sera demandé de changer l’instance.

### Méthode 3 : Connexion depuis le terminal via la CLI SSH
<a name="remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli"></a>

Choisissez l'une des options de plate-forme suivantes pour afficher la procédure d'établissement d'une connexion à l'aide de la CLI SSH.

**Note**  
Assurez-vous d'avoir [Prérequis pour les machines locales](remote-access.md#remote-access-local-prerequisites) installé les dernières versions du logiciel avant de suivre les instructions ci-dessous.
Si c'est le cas[Apporter votre propre image (BYOI)](studio-updated-byoi.md), assurez-vous d'avoir installé les dépendances requises répertoriées dans la liste [Exigences relatives aux images](remote-access.md#remote-access-image-requirements) avant de continuer

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

Créez un script shell (par exemple, `/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. Rendez le script exécutable :

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

1. Configurez `$HOME/.ssh/config` pour ajouter l’entrée suivante :

```
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
```

Par exemple, le paramètre `PARTITION` peut avoir la valeur `aws`.

Si vous devez utiliser un [profil AWS d'identification nommé](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-configure-files-using-profiles), modifiez la commande proxy comme suit :

```
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
```
+ Connectez-vous via SSH ou exécutez la commande SCP :

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

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

**Prérequis pour Windows :**
+ PowerShell 5.1 ou version ultérieure
+ Client SSH (OpenSSH recommandé)

Créez un PowerShell script (par exemple,`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
}
```
+ Configurez `C:\Users\user-name\.ssh\config` pour ajouter l’entrée suivante :

```
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
```

------

# Connexion à un VPC avec des sous-réseaux sans accès à Internet
<a name="remote-access-local-ide-setup-vpc-no-internet"></a>

Avant de connecter votre IDE distant à des espaces Studio situés dans des sous-réseaux privés sans accès à Internet, assurez-vous que votre administrateur l'a fait[Configuration de Studio pour l’exécuter avec des sous-réseaux sans accès à Internet au sein d’un VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md).

Vous disposez des options suivantes pour connecter votre IDE distant aux espaces Studio situés dans des sous-réseaux privés :
+ Configurer le proxy HTTP (compatible avec VS Code et Kiro)
+ Serveur distant et extensions préemballés (VS Code uniquement)

**Important**  
Le curseur n'est pas pris en charge pour la connexion aux espaces Studio dans des sous-réseaux privés sans accès Internet sortant.

**Topics**
+ [Proxy HTTP avec liste d’autorisations contrôlée](#remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing)
+ [Serveur distant et extensions préemballés (VS Code uniquement)](#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions)

## Proxy HTTP avec liste d’autorisations contrôlée
<a name="remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing"></a>

Lorsque votre espace Studio se trouve derrière un pare-feu ou un proxy, demandez à votre administrateur d'autoriser l'accès à votre serveur IDE, à vos extensions et à vos points de terminaison CDNs . Pour de plus amples informations, veuillez consulter [Configuration d’un proxy HTTP avec une liste d’autorisations contrôlée](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 ]

Configurez le proxy HTTP pour le développement à distance de VS Code en fournissant l'URL du proxy avec le `remote.SSH.httpsProxy` paramètre `remote.SSH.httpProxy` or.

**Note**  
Envisagez d'activer « Remote.ssh : Use Curl And Wget Configuration Files » pour utiliser la configuration depuis l'environnement et les fichiers distants. `curlrc` `wgetrc` Ainsi, les `wgetrc` fichiers `curlrc` et, placés dans leurs emplacements par défaut respectifs dans l' SageMaker espace, peuvent être utilisés pour activer certains cas.

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

Configurez le proxy HTTP pour le développement à distance de Kiro en définissant le `aws.sagemaker.ssh.kiro.httpsProxy` paramètre sur votre point de terminaison de proxy HTTP ou HTTPS.

Si vous utilisez des serveurs MCP (Model Context Protocol) dans Kiro, vous devez également ajouter les variables d'environnement proxy à la configuration de votre serveur MCP :

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

------

Cette option fonctionne lorsque vous êtes autorisé à configurer un proxy HTTP et elle vous permet d’installer des extensions supplémentaires de manière flexible, car certaines extensions nécessitent un point de terminaison public.

## Serveur distant et extensions préemballés (VS Code uniquement)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions"></a>

**Note**  
Cette option n'est disponible que pour Visual Studio Code. Kiro et Cursor ne prennent pas en charge la configuration préconfigurée de serveurs distants.

Lorsque vos espaces Studio ne peuvent pas accéder à des points de terminaison externes pour télécharger le serveur distant VS Code et ses extensions, vous pouvez les prépackager. Avec cette approche, votre administrateur peut exporter une archive contenant le répertoire `.VS Code-server` d’une version spécifique de VS Code. L'administrateur utilise ensuite un script SageMaker AI Lifecycle Configuration (LCC) pour copier et extraire l'archive dans votre répertoire personnel ()`/home/sagemaker-user`. Pour de plus amples informations, veuillez consulter [Configurer un serveur distant préconfiguré et des extensions (VS Code uniquement)](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).

**Instructions pour prépackager votre serveur distant VS Code et les extensions**

1. Installez VS Code sur votre ordinateur local.

1. Lorsque vous vous connectez à l' SageMaker espace :
   + Utilisez le profil par défaut pour garantir la compatibilité avec les extensions prépackagées. Dans le cas contraire, vous devrez installer les extensions à l’aide des fichiers VSIX téléchargés après vous être connecté à l’espace Studio.
   + Choisissez un script LCC spécifique à la version de VS Code à attacher à l’espace lorsque vous lancez cet espace.

### Exemple d’utilisation d’un fichier Docker pour prépackager votre serveur distant VS Code et les extensions
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile"></a>

Voici un exemple de fichier Docker pour lancer un conteneur local avec un serveur SSH préinstallé, s’il n’est pas possible de créer un espace avec un accès à distance et Internet activé.

**Note**  
Dans cet exemple, le serveur SSH ne nécessite pas d’authentification et est uniquement utilisé pour exporter le serveur distant VS Code.
Le conteneur doit être généré et exécuté sur une architecture 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"]
```

Générez et exécutez le conteneur à l’aide des commandes suivantes :

```
# 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 &'
```

Connectez-vous en utilisant la commande suivante :

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

Avant de pouvoir connecter ce conteneur, configurez les éléments suivants dans le fichier `.ssh/config`. Ensuite, vous pourrez voir `remote_access_export` en tant que nom d’hôte sur le panneau latéral de connexion SSH à distance lors de la connexion. Par exemple :

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

Archivez `/tmp/remote_access/.VS Code-server` et suivez les étapes décrites dans Serveur distant VS Code prépackagé et extensions pour connecter et installer l’extension. Après l’avoir décompressé, assurez-vous que le dossier `.VS Code-server` apparaît en tant que dossier parent.

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

### Exemple de 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>

Voici un exemple qui montre comment installer une version spécifique du serveur distant 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
```

# Filtrage de vos espaces Studio
<a name="remote-access-local-ide-setup-filter"></a>

Vous pouvez utiliser le filtrage pour afficher uniquement les espaces Amazon SageMaker AI pertinents dans l' AWS Toolkit for Visual Studio Code explorateur. Vous trouverez ci-dessous des informations sur le filtrage manuel et le filtrage automatisé. Pour plus d’informations sur les définitions du filtrage manuel et automatique, consultez [Vue d’ensemble du filtrage](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-overview).

Cette configuration s'applique uniquement lorsque vous utilisez la [Méthode 2 : AWS boîte à outils dans l'IDE distant](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code) méthode pour vous connecter depuis votre IDE distant aux espaces Amazon SageMaker Studio. Pour plus d’informations, consultez [Configuration de l’accès à distance](remote-access-remote-setup.md).

**Topics**
+ [Filtrage manuel](#remote-access-local-ide-setup-filter-manual)
+ [Configuration du filtrage automatique lors de l’utilisation des informations d’identification IAM pour se connecter](#remote-access-local-ide-setup-filter-automatic-IAM-credentials)

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

Pour filtrer manuellement les espaces affichés :
+ Ouvrez votre IDE Remote et accédez à l'explorateur du panneau latéral Toolkit for VS Code
+ Trouvez la section **SageMaker AI**
+ Choisissez l'icône du filtre à droite de l'en-tête de la section SageMaker AI. Un menu déroulant s’affiche.
+ Dans le menu déroulant, sélectionnez les profils utilisateur pour lesquels vous voulez afficher des espaces.

## Configuration du filtrage automatique lors de l’utilisation des informations d’identification IAM pour se connecter
<a name="remote-access-local-ide-setup-filter-automatic-IAM-credentials"></a>

Le filtrage automatisé dépend de la méthode d’authentification utilisée lors de la connexion. Voir [Connexion AWS depuis le Toolkit dans le](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html#connect-to-aws) guide de l'utilisateur du Toolkit for VS Code pour plus d'informations.

Lorsque vous vous authentifiez et que vous vous connectez à l’aide des **informations d’identification IAM**, le filtrage automatisé nécessite la [Configuration lors de la connexion avec les informations d’identification IAM](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-set-up-iam-credentials). Sans cette configuration, si les utilisateurs optent pour le filtrage par identité, aucun espace n’est affiché.

Une fois ce qui précède configuré, AWS Toolkit fait correspondre les espaces appartenant aux profils utilisateur qui commencent par le nom d'utilisateur IAM authentifié ou le nom de session du rôle assumé.

Le filtrage automatique est facultatif pour les utilisateurs :
+ Ouvrez vos paramètres Remote IDE
+ Accédez à l’extension **AWS Toolkit**.
+ Recherchez **Activer le filtrage par identité**.
+ Choisissez d’activer le filtrage automatique des espaces en fonction de votre identité AWS .