

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 las redes, los grupos de seguridad y la autenticación de IAM
<a name="best-practices-ecs-eks-networking-iam"></a>

Las implementaciones en contenedores en Amazon ECS o Amazon EKS requieren una configuración de red y una administración de credenciales de IAM correctas para conectarse a Neptune.

**Lista de verificación de los grupos de seguridad**
+ El grupo de seguridad del clúster de Neptune debe permitir el TCP entrante en el puerto 8182 (o el puerto personalizado configurado para el clúster de Neptune) desde el nodo EKS de Amazon EKS o el rango CIDR del pod.
+ Si utiliza el complemento CNI de Amazon VPC con redes personalizadas, compruebe que la subred del pod tenga una ruta a la subred de Neptune.
+ Neptune debe estar en la misma Amazon VPC que su clúster de Amazon ECS o Amazon EKS, o estar conectado a través de la interconexión de Amazon VPC o Transit Gateway.

**Verifique la conectividad desde el interior del contenedor**

Antes de depurar los problemas a nivel de la aplicación, confirme la ruta de red ejecutando uno de los siguientes comandos desde el interior del contenedor:

------
#### [ AWS CLI ]

```
aws neptunedata get-engine-status \
  --endpoint-url https://{{your-neptune-endpoint}}:8182
```

Para obtener más información, consulte [get-engine-status](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/get-engine-status.html) en la Referencia de comandos. AWS CLI 

------
#### [ SDK ]

```
import boto3
from botocore.config import Config

client = boto3.client(
    'neptunedata',
    region_name='{{us-east-1}}',
    endpoint_url='https://{{your-neptune-endpoint}}:8182',
    config=Config(read_timeout=10)
)

response = client.get_engine_status()
print(response['status'])
```

------
#### [ awscurl ]

```
awscurl https://{{your-neptune-endpoint}}:8182/status \
  --region {{us-east-1}} \
  --service neptune-db
```

**nota**  
En este ejemplo se supone que sus AWS credenciales están configuradas en su entorno. {{us-east-1}}Sustitúyala por la región de tu cúmulo de Neptuno.

------
#### [ curl ]

```
curl -k https://{{your-neptune-endpoint}}:8182/status
```

**nota**  
La `-k` bandera omite la verificación del certificado. Úselo solo para las pruebas de conectividad, no en el código de producción.

------

Una respuesta correcta confirma que los grupos de seguridad, el enrutamiento y la resolución de DNS funcionan correctamente. Un tiempo de espera indica un problema a nivel de red.

**Actualización de credenciales de IAM**

Si utilizas la [autenticación de IAM](iam-auth.md) con Neptune, tus pods deben actualizar las credenciales antes de que caduquen. Recomendamos [Amazon EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) para las nuevas implementaciones. Las funciones de IAM para cuentas de servicio (IRSA) también son compatibles y se utilizan ampliamente.

Con cualquiera de los dos enfoques, recupere las credenciales *dentro* de la función generadora de autenticación, no una vez al inicio. Los tokens IRSA y Pod Identity caducan después de 1 hora. Si guardas en caché las credenciales en el momento de la inicialización, las solicitudes fallarán cuando el token `AccessDeniedException: security token expired` caduque.
+ Para gremlin-go: llama `cfg.Credentials.Retrieve(ctx)` desde dentro de la función transferida a. `gen` `NewDynamicAuth`
+ Para Java: utilízalo `NeptuneGremlinClient` con una `HandshakeInterceptor` que actualice la firma de SigV4 en cada nueva conexión.

**Cross-account access**

Neptune no admite la autenticación IAM directa entre cuentas. Si su clúster de Amazon EKS está en una AWS cuenta diferente a la de su clúster de Neptune, el pod primero debe asumir una función en la cuenta de Neptune antes de autenticarse.

**Configuración de ingreso para Graph Explorer**

Si ejecuta [Graph Explorer](https://github.com/aws/graph-explorer) en un entorno contenerizado, asegúrese de que el proxy pueda acceder a todas las rutas, no solo. `/explorer` En Amazon EKS, configure las reglas del controlador de ingreso para permitir todas las rutas. En Amazon ECS, configure el grupo objetivo y las reglas de escucha del Application Load Balancer para reenviar todas las rutas al contenedor de Graph Explorer. El proxy de Graph Explorer realiza llamadas a`/summary`, `/gremlin``/openCypher`, y. `/sparql` Path-restricted las reglas de enrutamiento rompen el proxy silenciosamente.