JWTotentikasi dan otorisasi untuk Amazon Service OpenSearch - OpenSearch Layanan Amazon

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

JWTotentikasi dan otorisasi untuk Amazon Service OpenSearch

Amazon OpenSearch Service sekarang memungkinkan Anda untuk menggunakan JSON Web Tokens (JWTs) untuk otentikasi dan otorisasi. JWTsadalah token akses JSON berbasis yang digunakan untuk memberikan akses masuk tunggal (SSO). Anda dapat menggunakan JWTs di OpenSearch Layanan untuk membuat token masuk tunggal untuk memvalidasi permintaan ke domain Layanan Anda OpenSearch . Untuk menggunakannyaJWTs, Anda harus mengaktifkan kontrol akses berbutir halus, dan Anda harus memberikan kunci publik yang valid RSA atau ECDSA PEM diformat. Untuk informasi selengkapnya tentang kontrol akses berbutir halus, lihat Kontrol akses berbutir halus di Layanan Amazon. OpenSearch

Anda dapat mengonfigurasi Token JSON Web dengan menggunakan konsol OpenSearch Layanan, AWS Command Line Interface (AWS CLI), atau AWS SDKs.

Pertimbangan

Sebelum Anda menggunakan JWTs OpenSearch Layanan Amazon, Anda harus mempertimbangkan hal berikut:

  • Karena ukuran kunci RSA publik dalam PEM pemformatan, kami sarankan menggunakan AWS konsol untuk mengonfigurasi JWT otentikasi dan otorisasi.

  • Anda harus memberikan pengguna dan peran yang valid saat menentukan subjek dan bidang peran untuk AndaJWTs, jika tidak, permintaan akan ditolak.

  • OpenSearch 2.11 adalah versi kompatibel paling awal yang dapat digunakan untuk JWT otentikasi.

Memodifikasi kebijakan akses domain

Sebelum Anda dapat mengonfigurasi domain Anda untuk menggunakan JWT otentikasi dan otorisasi, Anda harus memperbarui kebijakan akses domain Anda untuk memungkinkan JWT pengguna mengakses domain. Jika tidak, semua permintaan JWT resmi yang masuk ditolak. Kebijakan akses domain yang disarankan untuk menyediakan akses penuh ke sub sumber daya (/*) adalah:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESHttp*", "Resource": "domain-arn/*" } ] }

Mengkonfigurasi JWT otentikasi dan otorisasi

Anda dapat mengaktifkan JWT otentikasi dan otorisasi selama proses pembuatan domain atau dengan memperbarui domain yang ada. Langkah-langkah pengaturan sedikit berbeda tergantung pada opsi mana yang Anda pilih.

Langkah-langkah berikut menjelaskan cara mengonfigurasi domain yang ada untuk JWT otentikasi dan otorisasi di konsol OpenSearch Layanan:

  1. Di bawah Konfigurasi domain, arahkan ke JWTotentikasi dan otorisasi untuk OpenSearch, pilih Aktifkan JWT otentikasi dan otorisasi.

  2. Konfigurasikan kunci publik yang akan digunakan untuk domain Anda. Untuk melakukan ini, Anda dapat mengunggah PEM file, berisi kunci publik, atau memasukkannya secara manual.

    catatan

    Jika kunci yang diunggah atau dimasukkan tidak valid, peringatan akan muncul di atas kotak teks yang menentukan masalah.

  3. (Opsional) Di bawah Pengaturan tambahan, Anda dapat mengonfigurasi bidang opsional berikut

    • Kunci subjek - Anda dapat membiarkan bidang ini kosong untuk menggunakan sub kunci default untuk AndaJWTs.

    • Kunci peran — Anda dapat membiarkan bidang ini kosong untuk menggunakan roles kunci default untuk AndaJWTs.

    Setelah Anda membuat perubahan, simpan domain Anda.

Menggunakan a JWT untuk mengirim permintaan pengujian

Setelah membuat baru JWT dengan subjek dan pasangan peran yang ditentukan, Anda dapat mengirim permintaan pengujian. Untuk melakukan ini, gunakan kunci pribadi untuk menandatangani permintaan Anda melalui alat yang membuatJWT. OpenSearch Layanan dapat memvalidasi permintaan yang masuk dengan memverifikasi tanda tangan ini.

catatan

Jika Anda menentukan kunci subjek atau kunci peran khusus untuk AndaJWT, Anda harus menggunakan nama klaim yang benar untuk AndaJWT.

Berikut ini adalah contoh cara menggunakan JWT token untuk mengakses OpenSearch Layanan melalui titik akhir pencarian domain Anda:

curl -XGET "$search_endpoint" -H "Authorization: Bearer <JWT>"

AWS CLI Perintah berikut memungkinkan JWT otentikasi dan otorisasi OpenSearch asalkan domain ada:

aws opensearch update-domain-config --domain-name <your_domain_name> --advanced-security-options '{"JWTOptions":{"Enabled":true, "PublicKey": "<your_public_key>", "SubjectKey": "<your_subject_key>", "RolesKey": "<your_roles_key>"}}'

Mengkonfigurasi JWT otentikasi dan otorisasi (konfigurasi via) API

Permintaan konfigurasi berikut API memungkinkan JWT otentikasi dan otorisasi untuk domain OpenSearch yang ada:

POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/my-domain/config { "AdvancedSecurityOptions": { "JWTOptions": { "Enabled": true, "PublicKey": "public-key", "RolesKey": "optional-roles-key", "SubjectKey": "optional-subject-key" } } }
Menghasilkan key pair

JWTsUntuk mengonfigurasi OpenSearch domain Anda, Anda harus memberikan kunci publik dalam format Privacy-Enhanced Mail ()PEM. Amazon OpenSearch Service saat ini mendukung dua algoritma enkripsi asimetris saat menggunakanJWTs: RSA dan. ECDSA

Untuk membuat RSA key pair menggunakan library openssl umum, ikuti langkah-langkah berikut:

  1. openssl genrsa -out privatekey.pem 2048

  2. openssl rsa -in privatekey.pem -pubout -out publickey.pem

Dalam contoh ini, publickey.pem file berisi kunci publik untuk digunakan dengan OpenSearch Layanan Amazon, sementara privatekey.pem berisi pribadi untuk menandatangani yang JWTs dikirim ke layanan. Selain itu, Anda memiliki opsi untuk mengonversi kunci pribadi ke pkcs8 format yang umum digunakan jika Anda memerlukannya untuk menghasilkan kunci pribadi AndaJWTs.

Jika Anda menggunakan tombol unggah untuk menambahkan PEM file langsung ke konsol, file harus memiliki .pem ekstensi, ekstensi file lain seperti.crt,.cert, atau tidak .key didukung saat ini.