Menyambung ke Neptune Menggunakan Konsol Gremlin dengan Penandatangan Signature Versi 4 - Amazon Neptune

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

Menyambung ke Neptune Menggunakan Konsol Gremlin dengan Penandatangan Signature Versi 4

Cara Anda terhubung ke Amazon Neptunus menggunakan konsol Gremlin dengan otentikasi Signature Version 4 tergantung pada apakah Anda TinkerPop menggunakan versi atau lebih tinggi, atau 3.4.11 versi sebelumnya. Dalam kedua kasus tersebut, prasyarat berikut diperlukan:

  • Anda harus memiliki kredensyal IAM yang diperlukan untuk menandatangani permintaan. Lihat Menggunakan rantai penyedia kredensi default di Panduan AWS SDK for 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

Menggunakan TinkerPop 3.4.11 atau lebih tinggi untuk terhubung ke Neptunus dengan penandatanganan Sig4

Dengan TinkerPop 3.4.11 atau lebih tinggi, Anda akan menggunakanhandshakeInterceptor(), yang menyediakan cara untuk mencolokkan tanda tangan Sigv4 ke koneksi yang dibuat oleh perintah. :remote Seperti pendekatan yang digunakan untuk Java, 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 handshakeInterceptor() harus diatur secara terprogram, dan tidak dapat memuat konfigurasinya dari file.

Hubungkan konsol Gremlin (TinkerPop 3.4.11 dan lebih tinggi) 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 penandatanganan kehandshakeInterceptor():

    :import com.amazonaws.auth.DefaultAWSCredentialsProviderChain :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) \ .handshakeInterceptor { r -> \ def sigV4Signer = new NeptuneNettyHttpSigV4Signer("(Amazon region)", \ new DefaultAWSCredentialsProviderChain()); \ 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

Menggunakan versi TinkerPop lebih awal dari 3.4.11 untuk terhubung ke Neptunus dengan penandatanganan Sig4

Dengan TinkerPop 3.4.10 atau lebih rendah, gunakan amazon-neptune-gremlin-java-sigv4 pustaka yang disediakan oleh Neptunus untuk menghubungkan konsol ke Neptunus dengan penandatanganan Sigv4, seperti yang dijelaskan di bawah ini:

Hubungkan konsol Gremlin (TinkerPop versi lebih awal dari 3.4.11) 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
    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)")

    Mungkin juga membantu untuk berkonsultasi dengan TinkerPop dokumentasi tentang konfigurasi Grape.

  3. Di conf subdirektori direktori yang diekstrak, buat file bernama. neptune-remote.yaml

    Jika Anda menggunakan AWS CloudFormation template untuk membuat cluster DB Neptunus Anda, file sudah neptune-remote.yaml ada. Dalam hal ini, yang harus Anda lakukan adalah mengedit file yang ada untuk menyertakan pengaturan channelizer yang ditunjukkan di bawah ini.

    Jika tidak, salin teks berikut ke dalam file, ganti (nama host) dengan nama host atau alamat IP instans DB Neptunus Anda. Perhatikan bahwa tanda kurung siku ([]) yang melampirkan nama host diperlukan.

    hosts: [(host name)] port: 8182 connectionPool: { channelizer: org.apache.tinkerpop.gremlin.driver.SigV4WebSocketChannelizer, enableSsl: true } serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }}
  4. penting

    Anda harus menyediakan kredensial IAM untuk menandatangani permintaan. Masukkan perintah berikut untuk mengatur kredensial Anda sebagai variabel lingkungan, menggantikan item yang relevan dengan kredensial Anda.

    export AWS_ACCESS_KEY_ID=access_key_id export AWS_SECRET_ACCESS_KEY=secret_access_key export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1

    Signer Neptune Versi 4 menggunakan rantai penyedia kredensial default. Untuk metode tambahan untuk memberikan kredensial, lihat Menggunakan Rantai Penyedia Kredensial Default dalam Panduan Developer AWS SDK for Java .

    Variabel SERVICE_REGION diperlukan, bahkan ketika menggunakan file kredensials.

  5. Buat :remote koneksi menggunakan .yaml file:

    :remote connect tinkerpop.server conf/neptune-remote.yaml
  6. Masukkan perintah berikut untuk beralih ke mode jarak jauh, yang mengirimkan semua kueri Gremlin ke koneksi jarak jauh:

    :remote console