Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menghubungkan ke database Amazon Neptune menggunakan otentikasi IAM dari baris perintah
Memiliki alat baris perintah untuk mengirimkan kueri ke cluster Neptune DB Anda sangat berguna, seperti yang diilustrasikan dalam banyak contoh dalam dokumentasi ini. Alat
Namun, untuk menjaga keamanan data Anda, yang terbaik adalah mengaktifkan otentikasi IAM.
Ketika otentikasi IAM diaktifkan, setiap permintaan harus ditandatangani menggunakan Signature Version 4 (Sig4). Alat baris perintah curl, dan dapat menandatangani kueri menggunakan penandatanganan Sig4. Menggunakan awscurlBagian di bawah ini menjelaskan cara menggunakan dengan awscurl aman dengan kredenSIAL sementara.
Menyiapkan alat baris perintah untuk menggunakan HTTPS
Neptunus mengharuskan semua koneksi menggunakan HTTPS. Alat baris perintah apa pun seperti curl atau awscurl membutuhkan akses ke sertifikat yang sesuai untuk menggunakan HTTPS. Selama curl atau awscurl dapat menemukan sertifikat yang sesuai, mereka menangani koneksi HTTPS seperti koneksi HTTP, tanpa memerlukan parameter tambahan. Contoh dalam dokumentasi ini didasarkan pada skenario tersebut.
Untuk mempelajari cara mendapatkan sertifikat tersebut dan cara memformatnya dengan benar menjadi penyimpanan sertifikat otoritas sertifikat (CA) yang curl dapat digunakan, lihat Verifikasi Sertifikat SSL 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 lebih lanjut, lihat Verifikasi Sertifikat SSL
Menggunakan awscurl dengan kredenSIAL sementara untuk terhubung dengan aman ke cluster DB dengan otentikasi IAM diaktifkan
Alat curl, tetapi membutuhkan informasi tambahan juga:
-
--access_key— Kunci akses yang valid. Jika tidak disediakan menggunakan parameter ini, itu harus disediakan dalamAWS_ACCESS_KEY_IDvariabel lingkungan, atau dalam file konfigurasi. -
--secret_key— Kunci rahasia yang valid yang sesuai dengan kunci akses. Jika tidak disediakan menggunakan parameter ini, itu harus disediakan dalamAWS_SECRET_ACCESS_KEYvariabel lingkungan, atau dalam file konfigurasi. -
--security_token— Token sesi yang valid. Jika tidak disediakan menggunakan parameter ini, itu harus disediakan dalamAWS_SECURITY_TOKENvariabel lingkungan, atau dalam file konfigurasi.
Di masa lalu, itu adalah praktik umum untuk menggunakan kredenSIAL persisten denganawscurl, seperti kredenSIAL pengguna IAM atau bahkan kredenSIAL root, tetapi ini tidak disarankan. Sebagai gantinya, buat kredenSIAL sementara menggunakan salah satu API Layanan Token AWS
Keamanan (STS), atau salah satu pembungkus AWS CLI nya.
Yang terbaik adalah menempatkan SessionToken nilaiAccessKeyId,SecretAccessKey, dan yang dikembalikan oleh panggilan STS ke variabel lingkungan yang sesuai di sesi shell Anda daripada ke dalam file konfigurasi. Kemudian, ketika shell berakhir, kredenSIAL secara otomatis dibuang, yang tidak terjadi dengan file konfigurasi. Demikian pula, jangan meminta durasi yang lebih lama untuk kredenSIAL sementara daripada yang mungkin Anda perlukan.
Contoh berikut menunjukkan langkah-langkah yang mungkin Anda ambil dalam shell Linux untuk mendapatkan kredenSIAL sementara yang berlaku selama setengah jam menggunakan sts assume-role, dan kemudian menempatkannya di variabel lingkungan tempat awscurl dapat menemukannya:
aws sts assume-role \ --duration-seconds 1800 \ --role-arn "arn:aws:iam::(account-id):role/(rolename)" \ --role-session-name AWSCLI-Session > $output AccessKeyId=$(echo $output | jq '.Credentials''.AccessKeyId') SecretAccessKey=$(echo $output | jq '.Credentials''.SecretAccessKey') SessionToken=$(echo $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