Menggunakan cqlsh untuk terhubung ke Amazon Keyspaces - Amazon Keyspaces (untuk Apache Cassandra)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan cqlsh untuk terhubung ke Amazon Keyspaces

Untuk terhubung ke Amazon Keyspaces menggunakancqlsh, Anda dapat menggunakan file. cqlsh-expansion Ini adalah toolkit yang berisi alat Apache Cassandra umum seperti cqlsh dan pembantu yang telah dikonfigurasi sebelumnya untuk Amazon Keyspaces sambil mempertahankan kompatibilitas penuh dengan Apache Cassandra. cqlsh-expansionIni mengintegrasikan plugin otentikasi SiGv4 dan memungkinkan Anda untuk terhubung menggunakan kunci akses IAM alih-alih nama pengguna dan kata sandi. Anda hanya perlu menginstal cqlsh skrip untuk membuat koneksi dan bukan distribusi Apache Cassandra penuh, karena Amazon Keyspaces tanpa server. Paket instalasi ringan ini mencakup cqlsh-expansion dan cqlsh skrip klasik yang dapat Anda instal di platform apa pun yang mendukung Python.

Untuk informasi umum tentangcqlsh, lihat cqlsh: shell CQL.

Menggunakan untuk terhubung cqlsh-expansion ke Amazon Keyspaces

Menginstal dan mengkonfigurasi cqlsh-expansion
  1. Untuk menginstal paket cqlsh-expansion Python, Anda dapat menjalankan perintah. pip Ini menginstal cqlsh-expansion skrip pada mesin Anda menggunakan pip install bersama dengan file yang berisi daftar dependensi. --user flagMemberitahu pip untuk menggunakan direktori instalasi pengguna Python untuk platform Anda. Pada sistem berbasis Unix, itu harus menjadi ~/.local/ direktori.

    Anda memerlukan Python 3 untuk menginstalcqlsh-expansion, untuk mengetahui versi Python Anda, gunakan. Python --version Untuk menginstal, Anda dapat menjalankan perintah berikut.

    python3 -m pip install --user cqlsh-expansion

    Outputnya akan terlihat mirip dengan ini.

    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

    Jika direktori install tidak ada diPATH, Anda perlu menambahkannya mengikuti instruksi sistem operasi Anda. Di bawah ini adalah salah satu contoh untuk Ubuntu Linux.

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

    Untuk mengonfirmasi bahwa paket diinstal, Anda dapat menjalankan perintah berikut.

    cqlsh-expansion --version

    Outputnya akan terlihat seperti ini.

    cqlsh 6.1.0
  2. Untuk mengkonfigurasicqlsh-expansion, Anda dapat menjalankan skrip pasca-instal untuk secara otomatis menyelesaikan langkah-langkah berikut:

    1. Buat .cassandra direktori di direktori home pengguna jika belum ada.

    2. Salin file konfigurasi yang telah cqlshrc dikonfigurasi sebelumnya ke .cassandra direktori.

    3. Salin sertifikat digital Starfield ke .cassandra direktori. Amazon Keyspaces menggunakan sertifikat ini untuk mengonfigurasi koneksi aman dengan Transport Layer Security (TLS). Enkripsi dalam perjalanan menyediakan lapisan perlindungan data tambahan dengan mengenkripsi data Anda saat melakukan perjalanan ke dan dari Amazon Keyspaces.

    Untuk meninjau skrip terlebih dahulu, Anda dapat mengaksesnya di repo Github di. post_install.py

    Untuk menggunakan skrip, Anda dapat menjalankan perintah berikut.

    cqlsh-expansion.init
    catatan

    Direktori dan file yang dibuat oleh skrip pasca-instal tidak dihapus ketika Anda menghapus instalasi cqlsh-expansionpip uninstall, dan harus dihapus secara manual.

Menghubungkan ke Amazon Keyspaces menggunakan cqlsh-expansion
  1. Konfigurasikan Anda Wilayah AWS dan tambahkan sebagai variabel lingkungan pengguna.

    Untuk menambahkan Region default Anda sebagai variabel lingkungan pada sistem berbasis Unix, Anda dapat menjalankan perintah berikut. Untuk contoh ini, kita menggunakan US East (Virginia N.).

    export AWS_DEFAULT_REGION=us-east-1

    Untuk informasi selengkapnya tentang cara mengatur variabel lingkungan, termasuk untuk platform lain, lihat Cara mengatur variabel lingkungan.

  2. Temukan titik akhir layanan Anda.

    Pilih titik akhir layanan yang sesuai untuk Wilayah Anda. Untuk meninjau titik akhir yang tersedia untuk Amazon Keyspaces, lihat. Titik akhir layanan untuk Amazon Keyspaces Untuk contoh ini, kita menggunakan endpointcassandra.us-east-1.amazonaws.com.

  3. Konfigurasikan metode otentikasi.

    Menghubungkan dengan kunci akses IAM (pengguna IAM, peran, dan identitas federasi) adalah metode yang direkomendasikan untuk meningkatkan keamanan.

    Sebelum Anda dapat terhubung dengan kunci akses IAM, Anda harus menyelesaikan langkah-langkah berikut:

    1. Buat pengguna IAM, atau ikuti praktik terbaik dan buat peran IAM yang dapat diasumsikan oleh pengguna IAM. Untuk informasi selengkapnya tentang cara membuat kunci akses IAM, lihatCara membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces.

    2. Buat kebijakan IAM yang memberikan peran (atau pengguna IAM) setidaknya akses hanya-baca ke Amazon Keyspaces. Untuk informasi selengkapnya tentang izin yang diperlukan bagi pengguna IAM atau peran untuk terhubung ke Amazon Keyspaces, lihat. Mengakses tabel Amazon Keyspaces

    3. Tambahkan kunci akses pengguna IAM ke variabel lingkungan pengguna seperti yang ditunjukkan pada contoh berikut.

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

      Untuk informasi selengkapnya tentang cara mengatur variabel lingkungan, termasuk untuk platform lain, lihat Cara mengatur variabel lingkungan.

      catatan

      Jika Anda terhubung dari instans Amazon EC2, Anda juga perlu mengonfigurasi aturan keluar di grup keamanan yang mengizinkan lalu lintas dari instans ke Amazon Keyspaces. Untuk informasi selengkapnya tentang cara melihat dan mengedit aturan keluar EC2, lihat Menambahkan aturan ke grup keamanan di Panduan Pengguna Amazon EC2.

  4. Connect ke Amazon Keyspaces menggunakan autentikasi cqlsh-expansion dan SiGv4.

    Untuk terhubung ke Amazon Keyspaces dengancqlsh-expansion, Anda dapat menggunakan perintah berikut. Pastikan untuk mengganti titik akhir layanan dengan titik akhir yang benar untuk Wilayah Anda.

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

    Jika koneksi berhasil, Anda akan melihat output yang mirip dengan contoh berikut.

    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>

    Jika Anda mengalami kesalahan koneksi, lihat Saya tidak dapat terhubung ke Amazon Keyspaces dengan cqlsh untuk informasi pemecahan masalah.

    • Connect ke Amazon Keyspaces dengan kredensyal khusus layanan.

      Untuk terhubung dengan kombinasi nama pengguna dan kata sandi tradisional yang digunakan Cassandra untuk otentikasi, Anda harus terlebih dahulu membuat kredensi khusus layanan untuk Amazon Keyspaces seperti yang dijelaskan dalam. Menghasilkan kredensi khusus layanan Anda juga harus memberikan izin kepada pengguna tersebut untuk mengakses Amazon Keyspaces, untuk informasi selengkapnya lihat. Mengakses tabel Amazon Keyspaces

      Setelah Anda membuat kredensi dan izin khusus layanan untuk pengguna, Anda harus memperbarui cqlshrc file, biasanya ditemukan di jalur direktori pengguna. ~/.cassandra/ Dalam cqlshrc file, pergi ke [authentication] bagian Cassandra dan komentari modul SiGv4 dan kelas di bawah [auth_provider] menggunakan karakter “;” seperti yang ditunjukkan pada contoh berikut.

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

      Setelah memperbarui cqlshrc file, Anda dapat terhubung ke Amazon Keyspaces dengan kredensyal khusus layanan menggunakan perintah berikut.

      cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 -u myUserName -p myPassword --ssl
Pembersihan
  • Untuk menghapus cqlsh-expansion paket Anda dapat menggunakan pip uninstall perintah.

    pip3 uninstall cqlsh-expansion

    pip3 uninstallPerintah tidak menghapus direktori dan file terkait yang dibuat oleh skrip pasca-instal. Untuk menghapus folder dan file yang dibuat oleh skrip pasca-instal, Anda dapat menghapus .cassandra direktori.

Cara mengkonfigurasi cqlsh koneksi secara manual untuk TLS

Amazon Keyspaces hanya menerima koneksi aman menggunakan Transport Layer Security (TLS). Anda dapat menggunakan cqlsh-expansion utilitas yang secara otomatis mengunduh sertifikat untuk Anda dan menginstal file konfigurasi yang telah cqlshrc dikonfigurasi sebelumnya. Untuk informasi lebih lanjut, lihat Menggunakan untuk terhubung cqlsh-expansion ke Amazon Keyspaces di halaman ini.

Jika Anda ingin mengunduh sertifikat dan mengonfigurasi koneksi secara manual, Anda dapat melakukannya dengan menggunakan langkah-langkah berikut.

  1. Unduh sertifikat digital Starfield menggunakan perintah berikut dan simpan sf-class2-root.crt secara lokal atau di direktori home Anda.

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

    Anda juga dapat menggunakan sertifikat digital Amazon untuk terhubung ke Amazon Keyspaces dan dapat terus melakukannya jika klien Anda berhasil terhubung ke Amazon Keyspaces. Sertifikat Starfield memberikan kompatibilitas mundur tambahan untuk klien yang menggunakan otoritas sertifikat yang lebih lama.

  2. Buka file cqlshrc konfigurasi di direktori home Cassandra, misalnya ${HOME}/.cassandra/cqlshrc dan tambahkan baris berikut.

    [connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory [ssl] validate = true certfile = path_to_file/sf-class2-root.crt