

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.

# Verwenden`cqlsh`, um eine Verbindung zu Amazon Keyspaces herzustellen
<a name="programmatic.cqlsh"></a>

Um eine Verbindung zu Amazon Keyspaces herzustellen`cqlsh`, können Sie den `cqlsh-expansion` verwenden. Dies ist ein Toolkit, das gängige Apache Cassandra-Tools wie `cqlsh` und Hilfsprogramme enthält, die für Amazon Keyspaces vorkonfiguriert sind und gleichzeitig die volle Kompatibilität mit Apache Cassandra gewährleisten. Es `cqlsh-expansion` integriert das SigV4-Authentifizierungs-Plugin und ermöglicht es Ihnen, eine Verbindung mithilfe von IAM-Zugriffsschlüsseln anstelle von Benutzername und Passwort herzustellen. Sie müssen nur die `cqlsh` Skripts installieren, um eine Verbindung herzustellen, und nicht die vollständige Apache Cassandra-Distribution, da Amazon Keyspaces serverlos ist. Dieses einfache Installationspaket enthält die `cqlsh-expansion` und die klassischen `cqlsh` Skripte, die Sie auf jeder Plattform installieren können, die Python unterstützt.

**Anmerkung**  
`Murmur3Partitioner`ist der empfohlene Partitionierer für Amazon Keyspaces und die. `cqlsh-expansion` Das unterstützt die Amazon Keyspaces `cqlsh-expansion` `DefaultPartitioner` nicht. Weitere Informationen finden Sie unter [Arbeiten mit Partitionierern in Amazon Keyspaces](working-with-partitioners.md).

Allgemeine Informationen zu `cqlsh` finden Sie unter [`cqlsh`: Die CQL-Shell](https://cassandra.apache.org/doc/latest/cassandra/managing/tools/cqlsh.html).

**Topics**
+ [Verwenden von`cqlsh-expansion`, um eine Verbindung zu Amazon Keyspaces herzustellen](#using_cqlsh)
+ [Wie konfiguriert man `cqlsh` Verbindungen für TLS manuell](#encrypt_using_tls)

## Verwenden von`cqlsh-expansion`, um eine Verbindung zu Amazon Keyspaces herzustellen
<a name="using_cqlsh"></a>

**Installation und Konfiguration des `cqlsh-expansion`**

1. Um das `cqlsh-expansion` Python-Paket zu installieren, können Sie einen `pip` Befehl ausführen. Dadurch werden die `cqlsh-expansion` Skripts mithilfe einer *Pip-Installation* zusammen mit einer Datei, die eine Liste von Abhängigkeiten enthält, auf Ihrem Computer installiert. Das `--user flag` weist `pip` an, das Python-Benutzerinstallationsverzeichnis für Ihre Plattform zu verwenden. Auf einem Unix-basierten System sollte das das `~/.local/` Verzeichnis sein.

   Sie benötigen Python 3, um das zu installieren`cqlsh-expansion`, um Ihre Python-Version herauszufinden, verwenden`Python --version`. Zur Installation können Sie den folgenden Befehl ausführen.

   ```
   python3 -m pip install --user cqlsh-expansion
   ```

   Die Ausgabe sollte in etwa so aussehen.

   ```
   Collecting cqlsh-expansion
     Downloading cqlsh_expansion-0.9.6-py3-none-any.whl (153 kB)
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 153.7/153.7 KB 3.3 MB/s eta 0:00:00
   Collecting cassandra-driver
     Downloading cassandra_driver-3.28.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.1 MB)
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.1/19.1 MB 44.5 MB/s eta 0:00:00
   Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from cqlsh-expansion) (1.16.0)
   Collecting boto3
     Downloading boto3-1.29.2-py3-none-any.whl (135 kB)
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 135.8/135.8 KB 17.2 MB/s eta 0:00:00
   Collecting cassandra-sigv4>=4.0.2
     Downloading cassandra_sigv4-4.0.2-py2.py3-none-any.whl (9.8 kB)
   Collecting botocore<1.33.0,>=1.32.2
     Downloading botocore-1.32.2-py3-none-any.whl (11.4 MB)
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.4/11.4 MB 60.9 MB/s eta 0:00:00
   Collecting s3transfer<0.8.0,>=0.7.0
     Downloading s3transfer-0.7.0-py3-none-any.whl (79 kB)
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.8/79.8 KB 13.1 MB/s eta 0:00:00
   Collecting jmespath<2.0.0,>=0.7.1
     Downloading jmespath-1.0.1-py3-none-any.whl (20 kB)
   Collecting geomet<0.3,>=0.1
     Downloading geomet-0.2.1.post1-py3-none-any.whl (18 kB)
   Collecting python-dateutil<3.0.0,>=2.1
     Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
        ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 KB 33.1 MB/s eta 0:00:00
   Requirement already satisfied: urllib3<2.1,>=1.25.4 in /usr/lib/python3/dist-packages (from botocore<1.33.0,>=1.32.2->boto3->cqlsh-expansion) (1.26.5)
   Requirement already satisfied: click in /usr/lib/python3/dist-packages (from geomet<0.3,>=0.1->cassandra-driver->cqlsh-expansion) (8.0.3)
   Installing collected packages: python-dateutil, jmespath, geomet, cassandra-driver, botocore, s3transfer, boto3, cassandra-sigv4, cqlsh-expansion
     WARNING: The script geomet is installed in '/home/ubuntu/.local/bin' which is not on PATH.
     Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
     WARNING: The scripts cqlsh, cqlsh-expansion and cqlsh-expansion.init are installed in '/home/ubuntu/.local/bin' which is not on PATH.
     Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
   Successfully installed boto3-1.29.2 botocore-1.32.2 cassandra-driver-3.28.0 cassandra-sigv4-4.0.2 cqlsh-expansion-0.9.6 geomet-0.2.1.post1 jmespath-1.0.1 python-dateutil-2.8.2 s3transfer-0.7.0
   ```

   Wenn sich das Installationsverzeichnis nicht im befindet`PATH`, müssen Sie es gemäß den Anweisungen Ihres Betriebssystems hinzufügen. Im Folgenden finden Sie ein Beispiel für Ubuntu Linux.

   ```
   export PATH="$PATH:/home/ubuntu/.local/bin"
   ```

   Um zu bestätigen, dass das Paket installiert ist, können Sie den folgenden Befehl ausführen.

   ```
   cqlsh-expansion --version
   ```

   Die Ausgabe sollte so aussehen.

   ```
   cqlsh 6.1.0
   ```

1. Um das zu konfigurieren`cqlsh-expansion`, können Sie nach der Installation ein Skript ausführen, um die folgenden Schritte automatisch auszuführen:

   1. Erstellen Sie das `.cassandra` Verzeichnis im Home-Verzeichnis des Benutzers, falls es noch nicht vorhanden ist.

   1. Kopieren Sie eine vorkonfigurierte `cqlshrc` Konfigurationsdatei in das `.cassandra` Verzeichnis.

   1. Kopieren Sie die kombinierte Zertifikatsdatei in das `.cassandra` Verzeichnis. Amazon Keyspaces verwendet dieses Zertifikat, um die sichere Verbindung mit Transport Layer Security (TLS) zu konfigurieren. Die Verschlüsselung bei der Übertragung bietet eine zusätzliche Datenschutzebene, indem Ihre Daten auf dem Weg zu und von Amazon Keyspaces verschlüsselt werden. Weitere Informationen zu Zertifikaten finden Sie unter. [Wie konfiguriert man `cqlsh` Verbindungen für TLS manuell](#encrypt_using_tls)

   Um das Skript zunächst zu überprüfen, können Sie es im Github-Repo unter [https://github.com/aws-samples/amazon-keyspaces-toolkit/blob/master/cqlsh-expansion/cqlsh_expansion/post_install.py](https://github.com/aws-samples/amazon-keyspaces-toolkit/blob/master/cqlsh-expansion/cqlsh_expansion/post_install.py)aufrufen.

   Um das Skript zu verwenden, können Sie den folgenden Befehl ausführen. 

   ```
   cqlsh-expansion.init
   ```
**Anmerkung**  
Das Verzeichnis und die Datei, die durch das Post-Installationsskript erstellt wurden`pip uninstall`, werden bei der Deinstallation `cqlsh-expansion` von using nicht entfernt und müssen manuell gelöscht werden.

**Herstellen einer Verbindung zu Amazon Keyspaces mithilfe der `cqlsh-expansion`**

1. Konfigurieren Sie Ihre AWS-Region und fügen Sie sie als Benutzerumgebungsvariable hinzu.

   Um Ihre Standardregion als Umgebungsvariable auf einem Unix-basierten System hinzuzufügen, können Sie den folgenden Befehl ausführen. Für dieses Beispiel verwenden wir`us-east-1`.

   ```
   export AWS_DEFAULT_REGION=us-east-1
   ```

   Weitere Informationen zum Festlegen von Umgebungsvariablen, auch für andere Plattformen, finden Sie unter [So legen Sie Umgebungsvariablen](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set) fest.

1. Finden Sie Ihren Service-Endpunkt.

   Wählen Sie den entsprechenden Service-Endpunkt für Ihre Region aus. Informationen zu den verfügbaren Endpunkten für Amazon Keyspaces finden Sie unter. [Service-Endpunkte für Amazon Keyspaces](programmatic.endpoints.md) In diesem Beispiel verwenden wir den Endpunkt. `cassandra.us-east-1.amazonaws.com`

1. Konfigurieren Sie die Authentifizierungsmethode.

   Die empfohlene Methode zur Erhöhung der Sicherheit ist die Verbindung mit IAM-Zugriffsschlüsseln (IAM-Benutzer, Rollen und föderierte Identitäten). 

   Bevor Sie eine Verbindung mit IAM-Zugriffsschlüsseln herstellen können, müssen Sie die folgenden Schritte ausführen:

   1. Erstellen Sie einen IAM-Benutzer oder folgen Sie den bewährten Methoden und erstellen Sie eine IAM-Rolle, die IAM-Benutzer übernehmen können. Weitere Informationen zum Erstellen von IAM-Zugriffsschlüsseln finden Sie unter. [AWS Anmeldeinformationen für Amazon Keyspaces erstellen und konfigurieren](access.credentials.md)

   1. Erstellen Sie eine IAM-Richtlinie, die der Rolle (oder dem IAM-Benutzer) mindestens schreibgeschützten Zugriff auf Amazon Keyspaces gewährt. Weitere Informationen zu den Berechtigungen, die der IAM-Benutzer oder die IAM-Rolle benötigt, um eine Verbindung zu Amazon Keyspaces herzustellen, finden Sie unter. [Zugreifen auf Amazon Keyspaces-Tabellen](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-one-table)

   1. Fügen Sie die Zugriffsschlüssel des IAM-Benutzers zu den Umgebungsvariablen des Benutzers hinzu, wie im folgenden Beispiel gezeigt.

      ```
      export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
      export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      ```

      Weitere Informationen zum Festlegen von Umgebungsvariablen, auch für andere Plattformen, finden Sie unter [So legen Sie Umgebungsvariablen](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set) fest.
**Anmerkung**  
Wenn Sie von einer Amazon EC2 EC2-Instance aus eine Verbindung herstellen, müssen Sie auch eine ausgehende Regel in der Sicherheitsgruppe konfigurieren, die den Datenverkehr von der Instance zu Amazon Keyspaces zulässt. Weitere Informationen zum Anzeigen und Bearbeiten von EC2-Regeln für ausgehenden Datenverkehr finden [Sie unter Regeln zu einer Sicherheitsgruppe hinzufügen im Amazon EC2 EC2-Benutzerhandbuch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#adding-security-group-rule).

1. Stellen Sie mithilfe der `cqlsh-expansion` und SigV4-Authentifizierung eine Connect zu Amazon Keyspaces her.

   Um mit dem eine Verbindung zu Amazon Keyspaces herzustellen`cqlsh-expansion`, können Sie den folgenden Befehl verwenden. Stellen Sie sicher, dass Sie den Service-Endpunkt durch den richtigen Endpunkt für Ihre Region ersetzen.

   ```
   cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl
   ```

   Wenn die Verbindung erfolgreich ist, sollten Sie eine Ausgabe sehen, die dem folgenden Beispiel ähnelt.

   ```
   Connected to Amazon Keyspaces at cassandra.us-east-1.amazonaws.com:9142
   [cqlsh 6.1.0 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
   Use HELP for help.
   cqlsh current consistency level is ONE.
   cqlsh>
   ```

   Wenn Sie auf einen Verbindungsfehler stoßen, finden Sie Informationen [Ich kann mit cqlsh keine Verbindung zu Amazon Keyspaces herstellen](troubleshooting.connecting.md#troubleshooting.connection.cqlsh) zur Problembehandlung unter.
   + Stellen Sie mit dienstspezifischen Anmeldeinformationen eine Connect zu Amazon Keyspaces her.

     Um eine Verbindung mit der herkömmlichen Kombination aus Benutzername und Passwort herzustellen, die Cassandra für die Authentifizierung verwendet, müssen Sie zunächst dienstspezifische Anmeldeinformationen für Amazon Keyspaces erstellen, wie unter beschrieben. [Dienstspezifische Anmeldeinformationen für den programmatischen Zugriff auf Amazon Keyspaces erstellen](programmatic.credentials.ssc.md) Sie müssen diesem Benutzer auch Berechtigungen für den Zugriff auf Amazon Keyspaces erteilen. Weitere Informationen finden Sie unter[Zugreifen auf Amazon Keyspaces-Tabellen](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-one-table). 

     Nachdem Sie dienstspezifische Anmeldeinformationen und Berechtigungen für den Benutzer erstellt haben, müssen Sie die `cqlshrc` Datei aktualisieren, die sich normalerweise im Benutzerverzeichnispfad befindet. `~/.cassandra/` Gehen Sie in der `cqlshrc` Datei zum `[authentication]` Abschnitt Cassandra und kommentieren Sie das SigV4-Modul und die Klasse unter, `[auth_provider]` indem Sie das Zeichen „;“ verwenden, wie im folgenden Beispiel gezeigt. 

     ```
     [auth_provider]
     
     ; module = cassandra_sigv4.auth
     
     ; classname = SigV4AuthProvider
     ```

     Nachdem Sie die `cqlshrc` Datei aktualisiert haben, können Sie mit dem folgenden Befehl eine Verbindung zu Amazon Keyspaces mit dienstspezifischen Anmeldeinformationen herstellen.

     ```
     cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 -u myUserName -p myPassword --ssl
     ```

**Bereinigen**
+ Um das `cqlsh-expansion` Paket zu entfernen, können Sie den `pip uninstall` Befehl verwenden.

  ```
  pip3 uninstall cqlsh-expansion
  ```

  Der `pip3 uninstall` Befehl entfernt nicht das Verzeichnis und die zugehörigen Dateien, die durch das Post-Installationsskript erstellt wurden. Um den Ordner und die Dateien zu entfernen, die durch das Post-Installationsskript erstellt wurden, können Sie das `.cassandra` Verzeichnis löschen.

## Wie konfiguriert man `cqlsh` Verbindungen für TLS manuell
<a name="encrypt_using_tls"></a>

Amazon Keyspaces akzeptiert nur sichere Verbindungen mit Transport Layer Security (TLS). Sie können das `cqlsh-expansion` Hilfsprogramm verwenden, das die Zertifikate automatisch für Sie herunterlädt und eine vorkonfigurierte `cqlshrc` Konfigurationsdatei installiert. Weitere Informationen finden Sie [Verwenden von`cqlsh-expansion`, um eine Verbindung zu Amazon Keyspaces herzustellen](#using_cqlsh) auf dieser Seite. 

Wenn Sie die Zertifikate herunterladen und die Verbindung manuell konfigurieren möchten, können Sie dies mit den folgenden Schritten tun. 

1.  Laden Sie die folgenden digitalen Zertifikate herunter und speichern Sie die Dateien lokal oder in Ihrem Home-Verzeichnis.

   1. AmazonRootCA1

   1. AmazonRootCA2

   1. AmazonRootCA3

   1. AmazonRootCA4

   1. Starfield Class 2 Root (optional — aus Gründen der Abwärtskompatibilität)

   Um die Zertifikate herunterzuladen, können Sie die folgenden Befehle verwenden.

   ```
   curl -O https://www.amazontrust.com/repository/AmazonRootCA1.pem
   curl -O https://www.amazontrust.com/repository/AmazonRootCA2.pem
   curl -O https://www.amazontrust.com/repository/AmazonRootCA3.pem
   curl -O https://www.amazontrust.com/repository/AmazonRootCA4.pem
   curl -O https://certs.secureserver.net/repository/sf-class2-root.crt
   ```
**Anmerkung**  
Amazon Keyspaces verwendete zuvor TLS-Zertifikate, die in der Starfield Class 2 CA verankert waren. AWS migriert alle AWS-Regionen auf Zertifikate, die unter Amazon Trust Services (Amazon Root CAs 1—4) ausgestellt wurden. Während dieser Umstellung sollten Sie die Clients so konfigurieren, dass sie sowohl Amazon Root CAs 1—4 als auch Starfield Root vertrauen, um die Kompatibilität in allen Regionen sicherzustellen.

1. Kombinieren Sie alle heruntergeladenen Zertifikate in einer einzigen `pem` Datei mit dem Namen *keyspaces-bundle.pem* in unseren Beispielen. Sie erreichen dies mit dem -Befehl- Notieren Sie sich den Pfad zur Datei, den Sie später benötigen.

   ```
   cat AmazonRootCA1.pem \
    AmazonRootCA2.pem \
    AmazonRootCA3.pem \
    AmazonRootCA4.pem \
    sf-class2-root.crt \
    > keyspaces-bundle.pem
   ```

1. Öffnen Sie beispielsweise die `cqlshrc` Konfigurationsdatei im Cassandra-Home-Verzeichnis `${HOME}/.cassandra/cqlshrc` und fügen Sie die folgenden Zeilen hinzu.

   ```
   [connection]
   port = 9142
   factory = cqlshlib.ssl.ssl_transport_factory
   
   [ssl]
   validate = true
   certfile =  path_to_file/keyspaces-bundle.pem
   ```