View a markdown version of this page

Menghubungkan ke database Amazon Neptunus menggunakan otentikasi IAM dengan konsol Gremlin - Amazon Neptune

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

Menghubungkan ke database Amazon Neptunus menggunakan otentikasi IAM dengan konsol Gremlin

Untuk menyambung ke Amazon Neptunus menggunakan konsol Gremlin dengan otentikasi Signature Version 4, Anda requestInterceptor() gunakan untuk menyambungkan tanda tangan SiGv4 ke sambungan yang dibuat oleh perintah. :remote Ini mengharuskan Anda untuk mengkonfigurasi Cluster objek secara manual dan kemudian meneruskannya ke :remote perintah.

Perhatikan bahwa ini sangat berbeda dari situasi khas di mana :remote perintah mengambil file konfigurasi untuk membentuk koneksi. Pendekatan file konfigurasi tidak akan berfungsi karena requestInterceptor() harus diatur secara terprogram, dan tidak dapat memuat konfigurasinya dari file.

catatan

Contoh berikut digunakanrequestInterceptor(), yang diperkenalkan di TinkerPop 3.6.6. Jika Anda menggunakan TinkerPop versi lebih awal dari 3.6.6 (tetapi 3.5.5 atau lebih tinggi), gunakan handshakeInterceptor() alih-alih requestInterceptor() dalam contoh kode di bawah ini.

Prasyarat berikut diperlukan:

  • Anda harus memiliki kredensyal IAM yang diperlukan untuk menandatangani permintaan. Lihat Menggunakan rantai penyedia kredensi default di Panduan AWS SDK untuk Java Pengembang.

  • Anda harus menginstal versi konsol Gremlin yang kompatibel dengan versi mesin Neptunus yang digunakan oleh cluster DB Anda.

Jika Anda menggunakan kredensil sementara, kredensil tersebut akan kedaluwarsa setelah interval tertentu, seperti halnya token sesi, jadi Anda harus memperbarui token sesi saat Anda meminta kredensil baru. Lihat Menggunakan kredensil keamanan sementara untuk meminta akses ke AWS sumber daya di Panduan Pengguna IAM.

Untuk bantuan menghubungkan menggunakan SSL/TLS, lihat. Konfigurasi SSL/TLS

Hubungkan konsol Gremlin dengan penandatanganan Sig4
  1. Mulai konsol Gremlin:

    $ bin/gremlin.sh
  2. Pada gremlin> prompt, instal amazon-neptune-sigv4-signer perpustakaan (ini hanya perlu dilakukan sekali untuk konsol):

    :install com.amazonaws amazon-neptune-sigv4-signer 2.4.0

    Jika Anda mengalami masalah dengan langkah ini, mungkin membantu untuk berkonsultasi dengan TinkerPop dokumentasi tentang konfigurasi Grape.

    catatan

    Jika Anda menggunakan proxy HTTP, Anda mungkin mengalami kesalahan dengan langkah ini di mana :install perintah tidak selesai. Untuk mengatasi masalah ini, jalankan perintah berikut untuk memberi tahu konsol tentang proxy:

    System.setProperty("https.proxyHost", "(the proxy IP address)") System.setProperty("https.proxyPort", "(the proxy port)")
  3. Impor kelas yang diperlukan untuk menangani masuk kerequestInterceptor():

    :import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider :import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer
  4. Jika Anda menggunakan kredensi sementara, Anda juga perlu menyediakan Token Sesi Anda sebagai berikut:

    System.setProperty("aws.sessionToken","(your session token)")
  5. Jika Anda belum menetapkan kredensi akun Anda, Anda dapat menetapkannya sebagai berikut:

    System.setProperty("aws.accessKeyId","(your access key)") System.setProperty("aws.secretKey","(your secret key)")
  6. Buat Cluster objek secara manual untuk terhubung ke Neptunus:

    cluster = Cluster.build("(host name)") \ .enableSsl(true) \ .requestInterceptor { r -> \ def sigV4Signer = new NeptuneNettyHttpSigV4Signer("(Amazon region)", \ DefaultCredentialsProvider.create()); \ sigV4Signer.signRequest(r); \ return r; } \ .create()

    Untuk bantuan menemukan nama host dari instans DB Neptunus, lihat. Menghubungkan ke Titik Akhir Amazon Neptune.

  7. Buat :remote koneksi menggunakan nama variabel Cluster objek pada langkah sebelumnya:

    :remote connect tinkerpop.server cluster
  8. Masukkan perintah berikut untuk beralih ke mode jarak jauh. Ini mengirimkan semua kueri Gremlin ke koneksi jarak jauh:

    :remote console