Verwenden von cqlsh zum Herstellen einer Verbindung mit Amazon Keyspaces - 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.

Verwenden von cqlsh zum Herstellen einer Verbindung mit Amazon Keyspaces

Um über eine Verbindung zu Amazon Keyspaces herzustellencqlsh, können Sie die verwendencqlsh-expansion. 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 aufrechterhalten. Die cqlsh-expansion integriert das SigV4-Authentifizierungs-Plugin und ermöglicht Ihnen, eine Verbindung über IAM-Zugriffsschlüssel anstelle von Benutzername und Passwort herzustellen. Sie müssen nur die cqlshSkripts installieren, um eine Verbindung herzustellen, nicht die vollständige Apache-Cassandra-Verteilung, da Amazon Keyspaces Serverless ist. Dieses leichte Installationspaket enthält die cqlsh-expansion und die klassischen cqlsh Skripte, die Sie auf jeder Plattform installieren können, die Python unterstützt.

Allgemeine Informationen zu cqlshfinden Sie unter cqlsh: Die CQL-Shell .

Verwenden der cqlsh-expansion zum Herstellen einer Verbindung mit Amazon Keyspaces

Installieren und Konfigurieren der cqlsh-expansion
  1. Um das cqlsh-expansion Python-Paket zu installieren, können Sie einen pip Befehl ausführen. Dadurch werden die cqlsh-expansionSkripts mithilfe einer pip-Installation zusammen mit einer Datei mit einer Liste von Abhängigkeiten auf Ihrem Computer installiert. Der --user flag weist anpip, das Installationsverzeichnis des Python-Benutzers für Ihre Plattform zu verwenden. Auf einem Unix-basierten System sollte dies das ~/.local/ Verzeichnis sein.

    Sie benötigen Python 3, um die zu installierencqlsh-expansion. Um Ihre Python-Version zu ermitteln, verwenden Sie Python --version. Zur Installation von können Sie einen der folgenden Befehle ausführen.

    python3 -m pip install --user cqlsh-expansion
    pip3 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 in der befindetPATH, müssen Sie es gemäß den Anweisungen Ihres Betriebssystems hinzufügen. Im Folgenden finden Sie ein Beispiel für Ubuntu Linux.

    export PATH DEFAULT=${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 wie folgt aussehen.

    cqlsh 6.1.0
  2. Um die zu konfigurierencqlsh-expansion, können Sie ein Skript nach der Installation ausführen, um die folgenden Schritte automatisch auszuführen:

    1. Erstellen Sie das .cassandra Verzeichnis im Stammverzeichnis 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 während der Übertragung bietet eine zusätzliche Datenschutzebene, indem Ihre Daten verschlüsselt werden, während sie zu und von Amazon Keyspaces übertragen werden.

    Um das Skript zuerst zu überprüfen, können Sie auf es im Github-Repo unter zugreifenpost_install.py.

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

    cqlsh-expansion.init
    Anmerkung

    Das vom Skript für die Nachinstallation erstellte Verzeichnis und die Datei werden nicht entferntpip uninstall, wenn Sie die cqlsh-expansion mit deinstallieren, und müssen manuell gelöscht werden.

Herstellen einer Verbindung mit 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. In diesem Beispiel verwenden wir USA Ost (Nord-Virginia).

    export AWS_DEFAULT_REGION=us-east-1

    Weitere Informationen zum Festlegen von Umgebungsvariablen, einschließlich für andere Plattformen, finden Sie unter Festlegen von Umgebungsvariablen.

  2. Suchen Sie Ihren Service-Endpunkt.

    Wählen Sie den entsprechenden Service-Endpunkt für Ihre Region aus. Informationen zum Überprüfen der verfügbaren Endpunkte 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 Verbindung mit IAM-Zugriffsschlüsseln (IAM-Benutzer, -Rollen und Verbundidentitäten) ist die empfohlene Methode für verbesserte Sicherheit.

    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 befolgen Sie die bewährten Methoden und erstellen Sie eine IAM-Rolle, die IAM-Benutzer annehmen können. Weitere Informationen zum Erstellen von IAM-Zugriffsschlüsseln finden Sie unter So erstellen und konfigurieren Sie 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 IAM-Rolle für die Verbindung mit Amazon Keyspaces benötigt, finden Sie unter Zugreifen 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, einschließlich für andere Plattformen, finden Sie unter Festlegen von Umgebungsvariablen.

      Anmerkung

      Wenn Sie eine Verbindung von einer Amazon EC2-Instance herstellen, müssen Sie auch eine Regel für ausgehenden Datenverkehr in der Sicherheitsgruppe konfigurieren, die Datenverkehr von der Instance zu Amazon Keyspaces zulässt. Weitere Informationen zum Anzeigen und Bearbeiten ausgehender EC2-Regeln finden Sie unter Hinzufügen von Regeln zu einer Sicherheitsgruppe im Amazon EC2-Benutzerhandbuch für Linux-Instances.

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

    Verwenden Sie den folgenden Befehlcqlsh-expansion, um eine Verbindung mit Amazon Keyspaces über die herzustellen. 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, sollte eine Ausgabe ähnlich dem folgenden Beispiel angezeigt werden.

    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 ein Verbindungsfehler auftritt, finden Sie Informationen Ich kann keine Verbindung zu Amazon Keyspaces mit cqlsh herstellen zur Fehlerbehebung unter .

    • Stellen Sie mit servicespezifischen Anmeldeinformationen eine Verbindung 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 servicespezifische Anmeldeinformationen für Amazon Keyspaces erstellen, wie unter beschriebenGenerieren Sie dienstspezifische Anmeldeinformationen. 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.

      Nachdem Sie servicespezifische 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] mit dem Zeichen „;“, 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 servicespezifischen 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 vom Skript nach der Installation erstellt wurden. Um den Ordner und die Dateien zu entfernen, die vom Nachinstallationsskript erstellt wurden, können Sie das .cassandra Verzeichnis löschen.

So konfigurieren Sie cqlsh Verbindungen für TLS manuell

Amazon Keyspaces akzeptiert nur sichere Verbindungen mit Transport Layer Security (TLS). Sie können das cqlsh-expansion Dienstprogramm verwenden, das das Zertifikat automatisch für Sie herunterlädt und eine vorkonfigurierte cqlshrc Konfigurationsdatei installiert. Weitere Informationen finden Sie unter Verwenden der cqlsh-expansion zum Herstellen einer Verbindung mit Amazon Keyspaces 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 dies weiterhin tun, wenn Ihr Client erfolgreich eine Verbindung zu Amazon Keyspaces herstellt. Das Starfield-Zertifikat bietet zusätzliche Abwärtskompatibilität für Clients, die ältere Zertifizierungsstellen verwenden.

  2. Öffnen Sie beispielsweise die cqlshrc Konfigurationsdatei im Cassandra-Stammverzeichnis ${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