

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.

# Conexión a una VPC con subredes sin acceso a Internet
<a name="remote-access-local-ide-setup-vpc-no-internet"></a>

Antes de conectar su IDE remoto a espacios de Studio en subredes privadas sin acceso a Internet, asegúrese de que su administrador lo haya hecho[Configuración de Studio para que se ejecute con subredes sin acceso a Internet dentro de una VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md).

Dispones de las siguientes opciones para conectar tu IDE remoto a los espacios de Studio en subredes privadas:
+ Configura el proxy HTTP (compatible con VS Code y Kiro)
+ Servidor remoto y extensiones preempaquetados (solo VS Code)

**importante**  
El cursor no es compatible para conectarse a espacios de Studio en subredes privadas sin acceso saliente a Internet.

**Topics**
+ [Proxy HTTP con una lista de permisos controlada](#remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing)
+ [Servidor remoto y extensiones preempaquetados (solo VS Code)](#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions)

## Proxy HTTP con una lista de permisos controlada
<a name="remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing"></a>

Cuando tu espacio de Studio esté protegido por un firewall o un proxy, pídele al administrador que te permita acceder al servidor IDE y a los puntos finales y relacionados con las extensiones. CDNs Para obtener más información, consulte [Configuración del proxy HTTP con una lista de permisos controlada](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 ]

Configure el proxy HTTP para el desarrollo remoto de VS Code proporcionando la URL del proxy con la `remote.SSH.httpProxy` configuración o. `remote.SSH.httpsProxy`

**nota**  
Considere habilitar «Remote.ssh: Use Curl and Wget Configuration Files» para usar la configuración del entorno y los archivos remotos. `curlrc` `wgetrc` Esto es para que los `wgetrc` archivos `curlrc` y, colocados en sus respectivas ubicaciones predeterminadas en el SageMaker espacio, puedan usarse para habilitar ciertos casos.

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

Configure el proxy HTTP para el desarrollo remoto de Kiro configurando la `aws.sagemaker.ssh.kiro.httpsProxy` configuración en su punto final de proxy HTTP o HTTPS.

Si utiliza servidores MCP (Model Context Protocol) en Kiro, también necesitará añadir las variables de entorno del proxy a la configuración de su servidor MCP:

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

------

Esta opción funciona cuando se le permite configurar un proxy HTTP e instalar extensiones adicionales de forma flexible, ya que algunas extensiones requieren un punto de conexión público.

## Servidor remoto y extensiones preempaquetados (solo VS Code)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions"></a>

**nota**  
Esta opción solo está disponible para Visual Studio Code. Kiro y Cursor no admiten la configuración de servidor remoto preconfigurada.

Si sus espacios de Studio no pueden acceder a puntos de conexión externos para descargar el servidor remoto y las extensiones de Visual Studio Code, puede preempaquetarlos. Con este enfoque, su administrador puede exportar un archivo tarball que contiene el directorio `.VS Code-server` de una versión específica de Visual Studio Code. A continuación, el administrador utiliza un script de configuración del ciclo de vida de la SageMaker IA (LCC) para copiar y extraer el archivo tar en su directorio principal (). `/home/sagemaker-user` Para obtener más información, consulte [Configure el servidor remoto y las extensiones preempaquetados (solo en 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).

**Instrucciones para preempaquetar su servidor remoto de Visual Studio Code y las extensiones**

1. Instale Visual Studio Code en su equipo local.

1. Cuando te conectas al espacio: SageMaker 
   + Utilice el perfil predeterminado para garantizar que sea compatible con las extensiones preempaquetadas. De lo contrario, tendrá que instalar las extensiones con los archivos VSIX descargados después de conectarse al espacio de Studio.
   + Elija un script de LCC específico de la versión de Visual Studio Code para asociarlo al espacio cuando lo lance.

### Ejemplo de uso de Dockerfile para preempaquetar el servidor remoto y las extensiones de Visual Studio Code
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile"></a>

El siguiente es un ejemplo de Dockerfile para lanzar un contenedor local con el servidor SSH preinstalado, en el caso de que no se pueda crear un espacio con acceso remoto y a Internet.

**nota**  
En este ejemplo, el servidor SSH no requiere autenticación y solo se usa para exportar el servidor remoto de Visual Studio Code.
El contenedor debe diseñarse y ejecutarse en una arquitectura 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"]
```

Use los siguientes comandos para diseñar y ejecutar el contenedor.

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

Conexión mediante el siguiente comando:

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

Para poder conectar este contenedor, debe configurar lo siguiente en el archivo `.ssh/config`. Después, cuando se conecte, podrá ver `remote_access_export` como nombre de host en el panel lateral de SSH remoto. Por ejemplo:

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

Archive `/tmp/remote_access/.VS Code-server` y siga los pasos del servidor remoto y las extensiones preempaquetadas de Visual Studio Code para conectar e instalar la extensión. Después de descomprimirla, asegúrese de que la carpeta `.VS Code-server` aparezca como la carpeta principal.

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

### Ejemplo 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>

En el siguiente ejemplo se muestra cómo instalar una versión específica del servidor remoto de Visual Studio 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
```