Menggunakan driver klien Cassandra Python untuk mengakses Amazon Keyspaces secara terprogram - 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 driver klien Cassandra Python untuk mengakses Amazon Keyspaces secara terprogram

Di bagian ini, kami menunjukkan cara terhubung ke Amazon Keyspaces menggunakan driver klien Python. Untuk memberikan kredensyal kepada pengguna dan aplikasi untuk akses terprogram ke sumber daya Amazon Keyspaces, Anda dapat melakukan salah satu hal berikut:

  • Buat kredensyal khusus layanan yang terkait dengan pengguna AWS Identity and Access Management (IAM) tertentu.

  • Untuk keamanan yang ditingkatkan, kami sarankan untuk membuat kunci akses IAM untuk pengguna IAM atau peran yang digunakan di semua AWS layanan. Plugin otentikasi Amazon Keyspaces SigV4 untuk driver klien Cassandra memungkinkan Anda untuk mengautentikasi panggilan ke Amazon Keyspaces menggunakan kunci akses IAM alih-alih nama pengguna dan kata sandi. Untuk informasi selengkapnya, lihat Cara membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces.

Sebelum kamu memulai

Anda harus menyelesaikan tugas berikut sebelum Anda dapat memulai.

Amazon Keyspaces memerlukan penggunaan Transport Layer Security (TLS) untuk membantu mengamankan koneksi dengan klien. Untuk terhubung ke Amazon Keyspaces menggunakan TLS, Anda perlu mengunduh sertifikat digital Amazon dan mengonfigurasi driver Python untuk menggunakan TLS.

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

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

Connect ke Amazon Keyspaces menggunakan driver Python untuk Apache Cassandra dan kredensyal khusus layanan

Contoh kode berikut menunjukkan cara menyambung ke Amazon Keyspaces dengan driver klien Python dan kredensyal khusus layanan.

from cassandra.cluster import Cluster from ssl import SSLContext, PROTOCOL_TLSv1_2 , CERT_REQUIRED from cassandra.auth import PlainTextAuthProvider ssl_context = SSLContext(PROTOCOL_TLSv1_2 ) ssl_context.load_verify_locations('path_to_file/sf-class2-root.crt') ssl_context.verify_mode = CERT_REQUIRED auth_provider = PlainTextAuthProvider(username='ServiceUserName', password='ServicePassword') cluster = Cluster(['cassandra.us-east-2.amazonaws.com'], ssl_context=ssl_context, auth_provider=auth_provider, port=9142) session = cluster.connect() r = session.execute('select * from system_schema.keyspaces') print(r.current_rows)

Catatan penggunaan:

  1. Ganti "path_to_file/sf-class2-root.crt" dengan jalur ke sertifikat yang disimpan di langkah pertama.

  2. Pastikan ServiceUserNama dan ServicePasswordcocokkan dengan nama pengguna dan kata sandi yang Anda peroleh saat Anda membuat kredensyal khusus layanan dengan mengikuti langkah-langkahnya. Menghasilkan kredensi khusus layanan

  3. Untuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.

Connect ke Amazon Keyspaces menggunakan driver DataStax Python untuk Apache Cassandra dan plugin otentikasi SiGv4

Bagian berikut menunjukkan cara menggunakan plugin otentikasi SiGv4 untuk driver DataStax Python open-source untuk Apache Cassandra untuk mengakses Amazon Keyspaces (untuk Apache Cassandra).

Jika Anda belum melakukannya, mulailah dengan membuat kredensyal untuk peran IAM Anda mengikuti langkah-langkah di. Cara membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces Tutorial ini menggunakan kredensil sementara, yang membutuhkan peran IAM. Untuk informasi selengkapnya tentang kredenal sementara, lihat. Menggunakan kredensi sementara untuk terhubung ke Amazon Keyspaces menggunakan peran IAM dan plugin SiGv4

Kemudian, tambahkan plugin otentikasi Python SigV4 ke lingkungan Anda dari repositori. GitHub

pip install cassandra-sigv4

Contoh kode berikut menunjukkan cara terhubung ke Amazon Keyspaces dengan menggunakan driver DataStax Python open-source untuk Cassandra dan plugin otentikasi SiGv4. Plugin tergantung pada AWS SDK untuk Python (Boto3). Ini digunakan boto3.session untuk mendapatkan kredensil sementara.

from cassandra.cluster import Cluster from ssl import SSLContext, PROTOCOL_TLSv1_2 , CERT_REQUIRED from cassandra.auth import PlainTextAuthProvider import boto3 from cassandra_sigv4.auth import SigV4AuthProvider ssl_context = SSLContext(PROTOCOL_TLSv1_2) ssl_context.load_verify_locations('path_to_file/sf-class2-root.crt') ssl_context.verify_mode = CERT_REQUIRED # use this if you want to use Boto to set the session parameters. boto_session = boto3.Session(aws_access_key_id="AKIAIOSFODNN7EXAMPLE", aws_secret_access_key="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", aws_session_token="AQoDYXdzEJr...<remainder of token>", region_name="us-east-2") auth_provider = SigV4AuthProvider(boto_session) # Use this instead of the above line if you want to use the Default Credentials and not bother with a session. # auth_provider = SigV4AuthProvider() cluster = Cluster(['cassandra.us-east-2.amazonaws.com'], ssl_context=ssl_context, auth_provider=auth_provider, port=9142) session = cluster.connect() r = session.execute('select * from system_schema.keyspaces') print(r.current_rows)

Catatan penggunaan:

  1. Ganti "path_to_file/sf-class2-root.crt" dengan jalur ke sertifikat yang disimpan di langkah pertama.

  2. Pastikan aws_access_key_id, aws_secret_access_key, dan aws_session_token cocok dengan,, dan yang Anda peroleh menggunakan. Access Key Secret Access Key Session Token boto3.session Untuk informasi selengkapnya, lihat Kredensyal di. AWS SDK for Python (Boto3)

  3. Untuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.