

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.

# Herstellen einer Verbindung zu Amazon Neptune-Datenbanken mithilfe der IAM-Authentifizierung mit Gremlin Python
<a name="gremlin-python-iam-auth"></a>

## -Übersicht
<a name="gremlin-python-iam-auth-overview"></a>

 Dieses Handbuch zeigt, wie Sie mithilfe des Gremlin-Python-Treibers eine Verbindung zu einer Amazon Neptune-Datenbank mit aktivierter IAM-Authentifizierung herstellen, wobei die Signature Version 4-Authentifizierung und die AWS SDK für Python (Boto3). 

## Voraussetzungen
<a name="gremlin-python-iam-auth-prereqs"></a>
+ Ein Amazon Neptune-Cluster mit aktivierter IAM-Authentifizierung.
+ Python 3.10 oder höher. Das `gremlinpython` Bibliothek abgestimmt auf TinkerPop 3.8.x benötigt diese Version.
+ AWS konfigurierte Anmeldeinformationen (über Umgebungsvariablen, Datei mit gemeinsam genutzten Anmeldeinformationen oder IAM-Rolle).

## Erstellen Sie eine Basisverbindung
<a name="gremlin-python-iam-auth-basic-connection"></a>

 Verwenden Sie das folgende Codebeispiel als Anleitung zum Herstellen einer Basisverbindung mit der IAM-Authentifizierung mithilfe des Gremlin-Python-Treibers. 

```
from boto3 import Session
from botocore.auth import SigV4Auth
from botocore.awsrequest import AWSRequest

from gremlin_python.process.anonymous_traversal import traversal
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection

def main():
    endpoint = '{{your.cluster.endpoint}}.neptune.amazonaws.com'
    conn_string = 'wss://' + endpoint + ':8182/gremlin'
    default_region = 'us-east-1'
    service = 'neptune-db'

    credentials = Session().get_credentials()
    if credentials is None:
        raise Exception("No AWS credentials found")
    creds = credentials.get_frozen_credentials()
    # region set inside config profile or via AWS_DEFAULT_REGION environment variable will be loaded
    region = Session().region_name if Session().region_name else default_region

    request = AWSRequest(method='GET', url=conn_string, data=None)
    SigV4Auth(creds, service, region).add_auth(request)

    rc = DriverRemoteConnection(conn_string, 'g', headers=request.headers.items())
    g = traversal().with_remote(rc)

    # simple query to verify connection
    count = g.V().count().next()
    print('Vertex count: ' + str(count))

    # cleanup
    rc.close()

if __name__ == "__main__":
    main()
```