Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan driver klien Cassandra Go untuk mengakses Amazon Keyspaces secara terprogram
Bagian ini menunjukkan kepada Anda cara terhubung ke Amazon Keyspaces dengan menggunakan driver klien Go. 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 dan 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.
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 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 Gocql untuk Apache Cassandra dan kredensyal khusus layanan
-
Buat direktori untuk aplikasi Anda.
mkdir ./gocqlexample
-
Arahkan ke direktori baru.
cd gocqlexample
-
Buat file untuk aplikasi Anda.
touch cqlapp.go
-
Unduh driver Go.
go get github.com/gocql/gocql
-
Tambahkan kode contoh berikut ke file cqlapp.go.
package main import ( "fmt" "github.com/gocql/gocql" "log" ) func main() { // add the Amazon Keyspaces service endpoint cluster := gocql.NewCluster("
cassandra.us-east-2.amazonaws.com
") cluster.Port=9142 // add your service specific credentials cluster.Authenticator = gocql.PasswordAuthenticator{ Username: "ServiceUserName
", Password: "ServicePassword
"} // provide the path to the sf-class2-root.crt cluster.SslOpts = &gocql.SslOptions{ CaPath: "path_to_file
/sf-class2-root.crt", EnableHostVerification: false, } // Override default Consistency to LocalQuorum cluster.Consistency = gocql.LocalQuorum cluster.DisableInitialHostLookup = false session, err := cluster.CreateSession() if err != nil { fmt.Println("err>", err) } defer session.Close() // run a sample query from the system keyspace var text string iter := session.Query("SELECT keyspace_name FROM system_schema.tables;").Iter() for iter.Scan(&text) { fmt.Println("keyspace_name:", text) } if err := iter.Close(); err != nil { log.Fatal(err) } session.Close() }Catatan penggunaan:
Ganti
"
dengan jalur ke sertifikat yang disimpan di langkah pertama.path_to_file
/sf-class2-root.crt"Pastikan
ServiceUserNama dan
pengguna dan kata sandi yang Anda peroleh saat Anda membuat kredensyal khusus layanan dengan mengikuti langkah-langkahnya. Menghasilkan kredensi khusus layananServicePassword
cocokkan dengan namaUntuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.
Bangun programnya.
go build cqlapp.go
Jalankan program.
./cqlapp
Connect ke Amazon Keyspaces menggunakan driver Go untuk Apache Cassandra dan plugin otentikasi SiGv4
Contoh kode berikut menunjukkan cara menggunakan plugin otentikasi SiGv4 untuk driver Go open-source untuk mengakses Amazon Keyspaces (untuk Apache Cassandra).
Jika Anda belum melakukannya, buat kredensyal untuk pengguna IAM Anda atau peran mengikuti langkah-langkah di. Cara membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces
Tambahkan plugin otentikasi Go SiGv4 ke aplikasi Anda dari repositori. GitHub
$ go mod init $ go get github.com/aws/aws-sigv4-auth-cassandra-gocql-driver-plugin
Dalam contoh kode ini, titik akhir Amazon Keyspaces diwakili oleh kelas. Cluster
Ini menggunakan properti AwsAuthenticator
for authenticator cluster untuk mendapatkan kredensyal.
package main import ( "fmt" "github.com/aws/aws-sigv4-auth-cassandra-gocql-driver-plugin/sigv4" "github.com/gocql/gocql" "log" ) func main() { // configuring the cluster options cluster := gocql.NewCluster("
cassandra.us-west-2.amazonaws.com
") cluster.Port=9142 var auth sigv4.AwsAuthenticator = sigv4.NewAwsAuthenticator() auth.Region = "us-west-2
" auth.AccessKeyId = "AKIAIOSFODNN7EXAMPLE
" auth.SecretAccessKey = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
" cluster.Authenticator = auth cluster.SslOpts = &gocql.SslOptions{ CaPath: "path_to_file
/sf-class2-root.crt", EnableHostVerification: false, } cluster.Consistency = gocql.LocalQuorum cluster.DisableInitialHostLookup = false session, err := cluster.CreateSession() if err != nil { fmt.Println("err>", err) return } defer session.Close() // doing the query var text string iter := session.Query("SELECT keyspace_name FROM system_schema.tables;").Iter() for iter.Scan(&text) { fmt.Println("keyspace_name:", text) } if err := iter.Close(); err != nil { log.Fatal(err) } }
Catatan penggunaan:
Ganti
"
dengan jalur ke sertifikat yang disimpan di langkah pertama.path_to_file
/sf-class2-root.crt"Pastikan bahwa
AccessKeyId
danSecretAccessKey
cocok dengan kunci akses dan kunci akses rahasia yang Anda peroleh menggunakanAwsAuthenticator
. Untuk informasi selengkapnya, lihat Mengonfigurasi AWS SDK for Go di bagian. AWS SDK for GoUntuk menyimpan kunci akses di luar kode, lihat praktik terbaik diCara mengelola kunci akses untuk pengguna IAM.
Untuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.