

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfigurieren Sie Netzwerke, Sicherheitsgruppen und IAM-Authentifizierung
<a name="best-practices-ecs-eks-networking-iam"></a>

Container-Bereitstellungen auf Amazon ECS oder Amazon EKS erfordern eine korrekte Netzwerkkonfiguration und IAM-Anmeldeinformationsverwaltung, um eine Verbindung zu Neptune herzustellen.

**Checkliste für Sicherheitsgruppen**
+ Die Neptune-Cluster-Sicherheitsgruppe muss eingehendes TCP auf Port 8182 (oder dem für Ihren Neptune-Cluster konfigurierten benutzerdefinierten Port) vom Amazon EKS-Knoten oder Pod-CIDR-Bereich zulassen.
+ Wenn Sie das Amazon VPC CNI-Plugin mit benutzerdefiniertem Netzwerk verwenden, stellen Sie sicher, dass das Pod-Subnetz über eine Route zum Neptune-Subnetz verfügt.
+ Neptune muss sich in derselben Amazon VPC wie Ihr Amazon ECS- oder Amazon EKS-Cluster befinden oder über Amazon VPC-Peering oder Transit Gateway verbunden sein.

**Überprüfen Sie die Konnektivität innerhalb des Containers**

Bevor Sie Probleme auf Anwendungsebene debuggen, überprüfen Sie den Netzwerkpfad, indem Sie im Container einen der folgenden Befehle ausführen:

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

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

Weitere Informationen finden Sie unter [get-engine-status](https://docs.aws.amazon.com/cli/latest/reference/neptunedata/get-engine-status.html) in der Befehlsreferenz. 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
```

**Anmerkung**  
In diesem Beispiel wird davon ausgegangen, dass Ihre AWS Anmeldeinformationen in Ihrer Umgebung konfiguriert sind. Ersetze es {{us-east-1}} durch die Region deines Neptun-Clusters.

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

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

**Anmerkung**  
Die `-k` Flagge überspringt die Überprüfung des Zertifikats. Verwenden Sie dies nur für Konnektivitätstests, nicht für Produktionscode.

------

Eine erfolgreiche Antwort bestätigt, dass Sicherheitsgruppen, Routing und DNS-Auflösung funktionieren. Ein Timeout weist auf ein Problem auf Netzwerkebene hin.

**Aktualisierung der IAM-Anmeldeinformationen**

Wenn Sie die [IAM-Authentifizierung](iam-auth.md) mit Neptune verwenden, müssen Ihre Pods die Anmeldeinformationen aktualisieren, bevor sie ablaufen. Wir empfehlen [Amazon EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html) für neue Bereitstellungen. IAM Roles for Service Accounts (IRSA) wird ebenfalls unterstützt und ist weit verbreitet.

Rufen Sie bei beiden Ansätzen die Anmeldeinformationen *innerhalb* der Authentifizierungsgeneratorfunktion ab und nicht nur einmal beim Start. IRSA- und Pod Identity-Token laufen nach 1 Stunde ab. Wenn Sie Anmeldeinformationen bei der Initialisierung zwischenspeichern, schlagen Anfragen fehl, sobald das Token `AccessDeniedException: security token expired` abgelaufen ist.
+ Für gremlin-go: Aufruf `cfg.Credentials.Retrieve(ctx)` innerhalb der Funktion, an die übergeben wurde. `gen` `NewDynamicAuth`
+ Für Java: `NeptuneGremlinClient` mit einem verwenden`HandshakeInterceptor`, das die SigV4-Signatur bei jeder neuen Verbindung aktualisiert.

**Cross-account Zugriff**

Neptune unterstützt keine direkte kontoübergreifende IAM-Authentifizierung. Wenn sich Ihr Amazon EKS-Cluster in einem anderen AWS Konto als Ihr Neptune-Cluster befindet, muss der Pod zunächst eine Rolle im Neptune-Konto annehmen, bevor er sich authentifiziert.

**Eingangskonfiguration für Graph Explorer**

Wenn Sie [Graph Explorer](https://github.com/aws/graph-explorer) in einer containerisierten Umgebung ausführen, stellen Sie sicher, dass der Proxy auf alle Pfade zugreifen kann — nicht nur. `/explorer` Konfigurieren Sie in Amazon EKS Ihre Ingress-Controller-Regeln so, dass alle Pfade zulässig sind. Konfigurieren Sie auf Amazon ECS Ihre Application Load Balancer Balancer-Zielgruppe und Listener-Regeln so, dass alle Pfade an den Graph Explorer-Container weitergeleitet werden. Der Proxy von Graph Explorer ruft, `/summary` `/gremlin``/openCypher`, und auf. `/sparql` Path-restricted Routing-Regeln unterbrechen den Proxy im Hintergrund.