

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 en matière 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 AI**, 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
```

------