Verwendencqlsh, um eine Verbindung zu Amazon Keyspaces herzustellen - Amazon Keyspaces (für Apache Cassandra)

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.

Verwendencqlsh, um eine Verbindung zu Amazon Keyspaces herzustellen

Um eine Verbindung zu Amazon Keyspaces herzustellencqlsh, 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 Zugriffstasten 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

Murmur3Partitionerist 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.

Allgemeine Informationen zu finden Sie cqlsh unter cqlsh: Die CQL Shell.

Verwenden voncqlsh-expansion, um eine Verbindung zu Amazon Keyspaces herzustellen

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 installierencqlsh-expansion, um Ihre Python-Version herauszufinden, verwendenPython --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 befindetPATH, 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
  2. Um das zu konfigurierencqlsh-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.

    2. Kopieren Sie eine vorkonfigurierte cqlshrc Konfigurationsdatei in das .cassandra Verzeichnis.

    3. Kopieren Sie das digitale Starfield-Zertifikat 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.

    Um das Skript zunächst zu überprüfen, können Sie es im Github-Repo unter aufrufen. post_install.py

    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 wurdenpip 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 es 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 (Nord-Virginia).

    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 fest.

  2. 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 In diesem Beispiel verwenden wir den Endpunkt. cassandra.us-east-1.amazonaws.com

  3. Konfigurieren Sie die Authentifizierungsmethode.

    Die empfohlene Methode zur Erhöhung der Sicherheit ist die Verbindung mit IAM Zugriffsschlüsseln (IAMBenutzer, 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 unterErstellen und Konfigurieren AWS Anmeldeinformationen für Amazon Keyspaces.

    2. 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 Rolle benötigt, um eine Verbindung zu Amazon Keyspaces herzustellen, finden Sie unterZugreifen auf Amazon Keyspaces-Tabellen.

    3. 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 fest.

      Anmerkung

      Wenn Sie von einer EC2 Amazon-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 Regeln für EC2 ausgehende Nachrichten finden Sie unter Regeln zu einer Sicherheitsgruppe hinzufügen im EC2 Amazon-Benutzerhandbuch.

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

    Um mit dem eine Verbindung zu Amazon Keyspaces herzustellencqlsh-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 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 Sie müssen diesem Benutzer auch Berechtigungen für den Zugriff auf Amazon Keyspaces erteilen. Weitere Informationen finden Sie unterZugreifen auf Amazon Keyspaces-Tabellen.

      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 manuell cqlsh Verbindungen für TLS

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

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

  1. Laden Sie das digitale Starfield-Zertifikat mit dem folgenden Befehl herunter und speichern Sie es sf-class2-root.crt lokal oder in Ihrem Home-Verzeichnis.

    curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
    Anmerkung

    Sie können das digitale Amazon-Zertifikat auch verwenden, um eine Verbindung zu Amazon Keyspaces herzustellen, und Sie können dies auch weiterhin tun, wenn Ihr Kunde erfolgreich eine Verbindung zu Amazon Keyspaces herstellt. Das Starfield-Zertifikat bietet zusätzliche Abwärtskompatibilität für Kunden, die ältere Zertifizierungsstellen verwenden.

  2. Ö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/sf-class2-root.crt