Menggunakan alat baris perintah untuk mengirimkan kueri ke cluster DB Neptunus Anda - Amazon Neptune

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

Menggunakan alat baris perintah untuk mengirimkan kueri ke cluster DB Neptunus Anda

Memiliki alat baris perintah untuk mengirimkan kueri ke cluster DB Neptunus Anda sangat berguna, seperti yang diilustrasikan dalam banyak contoh dalam dokumentasi ini. Alat curl adalah opsi yang sangat baik untuk berkomunikasi dengan titik akhir Neptunus jika otentikasi tidak diaktifkan. IAM

Namun, untuk menjaga keamanan data Anda, yang terbaik adalah mengaktifkan IAM otentikasi.

Ketika IAM otentikasi diaktifkan, setiap permintaan harus ditandatangani menggunakan Signature Version 4 (Sig4). Alat baris perintah awscurl pihak ketiga menggunakan sintaks yang sama seperti, dan dapat menandatangani kueri menggunakan curl penandatanganan Sig4. Menggunakan awscurlBagian di bawah ini menjelaskan cara menggunakan awscurl secara aman dengan kredensi sementara.

Menyiapkan alat baris perintah untuk digunakan HTTPS

Neptunus mengharuskan semua koneksi digunakan. HTTPS Alat baris perintah apa pun seperti curl atau awscurl membutuhkan akses ke sertifikat yang sesuai untuk digunakanHTTPS. Selama curl atau awscurl dapat menemukan sertifikat yang sesuai, mereka menangani HTTPS koneksi seperti HTTP koneksi, tanpa memerlukan parameter tambahan. Contoh dalam dokumentasi ini didasarkan pada skenario tersebut.

Untuk mempelajari cara mendapatkan sertifikat tersebut dan cara memformatnya dengan benar ke dalam penyimpanan sertifikat otoritas sertifikat (CA) yang curl dapat digunakan, lihat Verifikasi SSL Sertifikat dalam curl dokumentasi.

Anda kemudian dapat menentukan lokasi penyimpanan sertifikat CA ini menggunakan variabel lingkungan CURL_CA_BUNDLE. Pada Windows, curl secara otomatis mencarinya dalam sebuah file bernama curl-ca-bundle.crt. Ia pertama mencari dalam direktori yang sama dengan curl.exe dan kemudian di tempat lain di jalurnya. Untuk informasi selengkapnya, lihat Verifikasi SSL Sertifikat.

Menggunakan awscurl dengan kredensyal sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi diaktifkan IAM

Alat awscurl menggunakan sintaks yang sama seperticurl, tetapi membutuhkan informasi tambahan juga:

  • --access_key— Kunci akses yang valid. Jika tidak disediakan menggunakan parameter ini, itu harus disediakan dalam variabel AWS_ACCESS_KEY_ID lingkungan, atau dalam file konfigurasi.

  • --secret_key— Kunci rahasia yang valid sesuai dengan kunci akses. Jika tidak disediakan menggunakan parameter ini, itu harus disediakan dalam variabel AWS_SECRET_ACCESS_KEY lingkungan, atau dalam file konfigurasi.

  • --security_token— Token sesi yang valid. Jika tidak disediakan menggunakan parameter ini, itu harus disediakan dalam variabel AWS_SECURITY_TOKEN lingkungan, atau dalam file konfigurasi.

Di masa lalu, itu adalah praktik umum untuk menggunakan kredensyal persisten denganawscurl, seperti kredensyal IAM pengguna atau bahkan kredensyal root, tetapi ini tidak disarankan. Sebagai gantinya, buat kredensi sementara menggunakan salah satu AWS Security Token Service (STS) APIs, atau salah satunya AWS CLI pembungkus.

Yang terbaik adalah menempatkanAccessKeyId,SecretAccessKey, dan SessionToken nilai yang dikembalikan oleh STS panggilan ke variabel lingkungan yang sesuai di sesi shell Anda daripada ke dalam file konfigurasi. Kemudian, ketika shell berakhir, kredensyal secara otomatis dibuang, yang tidak terjadi dengan file konfigurasi. Demikian pula, jangan meminta durasi yang lebih lama untuk kredensyal sementara daripada yang mungkin Anda butuhkan.

Contoh berikut menunjukkan langkah-langkah yang mungkin Anda ambil dalam shell Linux untuk mendapatkan kredensyal sementara yang baik selama setengah jam menggunakan sts assume-role, dan kemudian menempatkannya dalam variabel lingkungan di mana dapat menemukannya: awscurl

aws sts assume-role \ --duration-seconds 1800 \ --role-arn "arn:aws:iam::(account-id):role/(rolename)" \ --role-session-name AWSCLI-Session > $output AccessKeyId=$(cat $output | jq '.Credentials''.AccessKeyId') SecretAccessKey=$(cat $output | jq '.Credentials''.SecretAccessKey') SessionToken=$(cat $output | jq '.Credentials''.SessionToken') export AWS_ACCESS_KEY_ID=$AccessKeyId export AWS_SECRET_ACCESS_KEY=$SecretAccessKey export AWS_SESSION_TOKEN=$SessionToken

Anda kemudian dapat menggunakan awscurl untuk membuat permintaan yang ditandatangani ke cluster DB Anda seperti ini:

awscurl (your cluster endpoint):8182/status \ --region us-east-1 \ --service neptune-db