

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Una vez que los administradores completen las instrucciones[Conecte su IDE remoto a SageMaker espacios con acceso remoto](remote-access.md), podrá conectar su IDE remoto a sus SageMaker espacios remotos.

**Topics**
+ [Configuración del entorno local](#remote-access-local-ide-setup-local-environment)
+ [Conéctese a su IDE remoto](#remote-access-local-ide-setup-local-vs-code)
+ [Conexión a una VPC con subredes sin acceso a Internet](remote-access-local-ide-setup-vpc-no-internet.md)
+ [Filtración de los espacios de Studio](remote-access-local-ide-setup-filter.md)

## Configuración del entorno local
<a name="remote-access-local-ide-setup-local-environment"></a>

Instale el IDE remoto que prefiera en su máquina local:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursor](https://cursor.com/home)

Para obtener información sobre los requisitos de la versión, consulte[Requisitos de la versión IDE](remote-access.md#remote-access-ide-version-requirements).

## Conéctese a su IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code"></a>

Antes de que pueda establecer una conexión desde su IDE remoto a sus SageMaker espacios remotos, su administrador debe hacerlo[Configuración del acceso remoto](remote-access-remote-setup.md). El administrador configura un método específico para que usted pueda establecer una conexión. Elija el método que se ha configurado para usted.

**Topics**
+ [Método 1: enlace profundo desde la interfaz de usuario de Studio](#remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui)
+ [Método 2: AWS Kit de herramientas en el IDE remoto](#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code)
+ [Método 3: conectarse desde el terminal a través de la CLI de SSH](#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli)

### Método 1: enlace profundo desde la interfaz de usuario de Studio
<a name="remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui"></a>

Use el siguiente procedimiento para establecer una conexión mediante un enlace profundo.

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

1. En la interfaz de usuario de Studio, vaya a su espacio.

1. Selecciona el botón **Abrir en VS Code**, **Abrir en Kiro o** **Abrir en el cursor** para el IDE que prefieras. Asegúrese de que su IDE preferido ya esté instalado en su ordenador local.

1. Cuando se le solicite, confirme que desea abrir el IDE. El IDE se abre con otra ventana emergente para confirmarlo. Una vez completada, se establece la conexión remota.

### Método 2: AWS Kit de herramientas en el IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code"></a>

Use el siguiente procedimiento para establecer una conexión mediante el AWS Toolkit for Visual Studio Code. Este método está disponible para VS Code, Kiro y Cursor.

1. Abre tu IDE remoto (VS Code, Kiro o Cursor).

1. Abre la extensión AWS Toolkit.

1. [Conéctese a AWS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html).

1. En el AWS Explorador, expande **SageMaker AI** y, a continuación, expande **Studio**.

1. Busque su espacio de Studio.

1. Elija el icono **Conectar** situado junto a su espacio para iniciarlo.
**nota**  
Detenga y reinicie el espacio del Kit de herramientas para Visual Studio para habilitar el acceso remoto, si todavía no está conectado.
Si el espacio no utiliza un [tamaño de instancia](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html#remote-access-instance-requirements) compatible, se le pedirá que cambie la instancia.

### Método 3: conectarse desde el terminal a través de la CLI de SSH
<a name="remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli"></a>

Elija una de las siguientes opciones de plataforma para ver el procedimiento para establecer una conexión mediante la CLI de SSH.

**nota**  
Asegúrese de tener [Requisitos previos de la máquina local](remote-access.md#remote-access-local-prerequisites) instaladas las versiones más recientes antes de seguir las instrucciones que aparecen a continuación.
Si es así[Bring your own image (BYOI)](studio-updated-byoi.md), asegúrese de haber instalado las dependencias necesarias que se enumeran en [Requisitos de imágenes](remote-access.md#remote-access-image-requirements) antes de continuar

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

Cree un script de intérprete de comandos (por ejemplo, `/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. Haga que el script sea ejecutable.

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

1. Configure `$HOME/.ssh/config` para agregar la siguiente entrada:

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

Por ejemplo, el valor `{{PARTITION}}` puede ser `aws`.

Si necesita usar un [perfil de AWS credenciales con nombre](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-configure-files-using-profiles), cambie el comando proxy de la siguiente manera:

```
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h' {{YOUR_CREDENTIAL_PROFILE_NAME}}
```
+ Conéctese a través de SSH o ejecute el comando SCP:

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

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

**Requisitos previos para Windows:**
+ PowerShell 5.1 o posterior
+ Cliente SSH (se recomienda OpenSSH)

Cree un PowerShell script (por ejemplo,): `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
}
```
+ Configure `C:\Users\{{user-name}}\.ssh\config` para agregar la siguiente entrada:

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

------