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 kepada Anda cara terhubung ke Amazon Keyspaces menggunakan driver klien Python. Untuk memberikan kredentif kepada pengguna dan aplikasi untuk akses terprogram ke sumber daya Amazon Keyspaces, Anda dapat melakukan salah satu dari hal berikut:
-
Buat kredentif khusus layanan yang terkait dengan pengguna AWS Identity and Access Management (IAM) tertentu.
-
Untuk keamanan yang ditingkatkan, sebaiknya buat kunci akses IAM untuk pengguna atau peran IAM yang digunakan di semua AWS layanan. Plugin otentikasi SigV4 Amazon Keyspaces untuk driver klien Cassandra memungkinkan Anda mengotentikasi panggilan ke Amazon Keyspaces menggunakan kunci akses IAM alih-alih nama pengguna dan kata sandi. Untuk informasi selengkapnya, lihat Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces.
Topik
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 berikut dan simpan file secara lokal atau di direktori home Anda.
AmazonRootCA1
AmazonRootCA2
AmazonRootCA3
AmazonRootCA4
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 CA 1—4). Selama transisi ini, konfigurasikan klien untuk mempercayai Amazon Root CA 1—4 dan root Starfield untuk memastikan kompatibilitas di semua Wilayah.
Gabungkan semua sertifikat yang diunduh ke dalam 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
Hubungkan ke Amazon Keyspaces menggunakan driver Python untuk Apache Cassandra dan kredenSIAL khusus layanan
Contoh kode berikut menunjukkan cara menyambung ke Amazon Keyspaces dengan driver klien Python dan kredenSIAL 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/keyspaces-bundle.pem') 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:
Ganti
"dengan jalur ke file sertifikat gabungan yang disimpan pada langkah pertama.path_to_file/keyspaces-bundle.pem"Pastikan
ServiceUserNamedanServicePasswordcocok dengan nama pengguna dan kata sandi yang Anda peroleh saat membuat kredenSIAL khusus layanan dengan mengikuti langkah-langkah untuk. Buat kredensil khusus layanan untuk akses terprogram ke Amazon KeyspacesUntuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.
Hubungkan 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 kredenSIAL untuk peran IAM Anda mengikuti langkah-langkah diMembuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces. Tutorial ini menggunakan kredenSIAL sementara, yang memerlukan peran IAM. Untuk informasi selengkapnya tentang kredenSIAL sementara, lihatBuat kredensi sementara untuk terhubung ke Amazon Keyspaces menggunakan peran IAM dan plugin SiGv4.
Kemudian, tambahkan plugin otentikasi Python SIGv4 ke lingkungan Anda dari GitHub repositori
pip install cassandra-sigv4
Contoh kode berikut menunjukkan cara menyambung 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 kredenSIAL 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/keyspaces-bundle.pem') 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:
Ganti
"dengan jalur ke sertifikat yang disimpan pada langkah pertama.path_to_file/keyspaces-bundle.pem"Pastikan bahwa
aws_access_key_id,aws_secret_access_key, dan yangaws_session_tokencocok denganAccess Key,Secret Access Key, danSession TokenAnda peroleh menggunakanboto3.session. Untuk informasi selengkapnya, lihat Kredensi di AWS SDK for Python (Boto3).Untuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.