

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
<a name="programmatic.cqlsh"></a>

Untuk terhubung ke Amazon Keyspaces menggunakan`cqlsh`, 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-expansion`Ini 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.

**catatan**  
`Murmur3Partitioner`adalah partisi yang direkomendasikan untuk Amazon Keyspaces dan. `cqlsh-expansion` `cqlsh-expansion`Itu tidak mendukung Amazon Keyspaces`DefaultPartitioner`. Untuk informasi selengkapnya, lihat [Bekerja dengan partisi di Amazon Keyspaces](working-with-partitioners.md).

Untuk informasi umum tentang`cqlsh`, lihat [`cqlsh`: shell CQL](https://cassandra.apache.org/doc/latest/cassandra/managing/tools/cqlsh.html).

**Topics**
+ [

## Menggunakan untuk terhubung `cqlsh-expansion` ke Amazon Keyspaces
](#using_cqlsh)
+ [

## Cara mengkonfigurasi `cqlsh` koneksi secara manual untuk TLS
](#encrypt_using_tls)

## Menggunakan untuk terhubung `cqlsh-expansion` ke Amazon Keyspaces
<a name="using_cqlsh"></a>

**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 flag`Memberitahu `pip` untuk menggunakan direktori instalasi pengguna Python untuk platform Anda. Pada sistem berbasis Unix, itu harus menjadi `~/.local/` direktori.

   Anda memerlukan Python 3 untuk menginstal`cqlsh-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 di`PATH`, 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
   ```

1. Untuk mengkonfigurasi`cqlsh-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.

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

   1. Salin file sertifikat gabungan ke dalam `.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 informasi selengkapnya tentang sertifikat, lihat[Cara mengkonfigurasi `cqlsh` koneksi secara manual untuk TLS](#encrypt_using_tls).

   Untuk meninjau skrip terlebih dahulu, Anda dapat mengaksesnya di repo Github di. [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)

   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-expansion``pip 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, kami menggunakan`us-east-1`.

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

   Untuk informasi selengkapnya tentang cara mengatur variabel lingkungan, termasuk untuk platform lain, lihat [Cara mengatur variabel lingkungan](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set).

1. 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](programmatic.endpoints.md) Untuk contoh ini, kita menggunakan endpoint`cassandra.us-east-1.amazonaws.com`.

1. 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, lihat[Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces](access.credentials.md).

   1. 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](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-one-table)

   1. 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set).
**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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#adding-security-group-rule).

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

   Untuk terhubung ke Amazon Keyspaces dengan`cqlsh-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](troubleshooting.connecting.md#troubleshooting.connection.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 kredensil khusus layanan untuk Amazon Keyspaces seperti yang dijelaskan dalam. [Buat kredensil khusus layanan untuk akses terprogram ke Amazon Keyspaces](programmatic.credentials.ssc.md) Anda juga harus memberikan izin kepada pengguna tersebut untuk mengakses Amazon Keyspaces, untuk informasi selengkapnya lihat. [Mengakses tabel Amazon Keyspaces](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-one-table) 

     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 kredenal 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 uninstall`Perintah 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
<a name="encrypt_using_tls"></a>

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](#using_cqlsh) di halaman ini. 

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

1.  Unduh sertifikat digital berikut dan simpan file secara lokal atau di direktori home Anda.

   1. AmazonRootCA1

   1. AmazonRootCA2

   1. AmazonRootCA3

   1. AmazonRootCA4

   1. Starfield Class 2 Root (opsional - untuk kompatibilitas mundur)

   Untuk mengunduh sertifikat, Anda dapat menggunakan perintah berikut.

   ```
   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
   ```
**catatan**  
Amazon Keyspaces sebelumnya menggunakan sertifikat TLS yang ditambatkan ke Starfield Class 2 CA. AWS memigrasikan semua Wilayah AWS ke sertifikat yang dikeluarkan di bawah Amazon Trust Services (Amazon Root CAs 1-4). Selama transisi ini, konfigurasikan klien untuk mempercayai Amazon Root CAs 1-4 dan root Starfield untuk memastikan kompatibilitas di semua Wilayah.

1. Gabungkan semua sertifikat yang diunduh menjadi satu `pem` file dengan nama *keyspaces-bundle.pem* dalam contoh kami. Anda dapat melakukan ini dengan menjalankan perintah berikut. Catat jalur ke file, Anda perlu ini nanti.

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

1. 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/keyspaces-bundle.pem
   ```