Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otentikasi dan otorisasi JWT untuk Layanan Amazon OpenSearch
Amazon OpenSearch Service sekarang memungkinkan Anda untuk menggunakan JSON Web Tokens (JWTs) untuk otentikasi dan otorisasi. JWTs adalah token akses berbasis JSON 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 menggunakannya JWTs, Anda harus mengaktifkan kontrol akses berbutir halus, dan Anda harus memberikan kunci publik berformat RSA atau ECDSA PEM yang valid. Untuk informasi selengkapnya tentang kontrol akses berbutir halus, lihat Kontrol akses berbutir halus di Layanan Amazon. OpenSearch
Anda dapat mengonfigurasi Token Web JSON 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 publik RSA dalam pemformatan PEM, kami sarankan menggunakan AWS konsol untuk mengonfigurasi otentikasi dan otorisasi JWT.
-
Anda harus memberikan pengguna dan peran yang valid saat menentukan subjek dan bidang peran untuk Anda JWTs, jika tidak, permintaan akan ditolak.
-
OpenSearch 2.11 adalah versi kompatibel paling awal yang dapat digunakan untuk otentikasi JWT.
Memodifikasi kebijakan akses domain
Sebelum Anda dapat mengonfigurasi domain Anda untuk menggunakan otentikasi dan otorisasi JWT, Anda harus memperbarui kebijakan akses domain Anda untuk memungkinkan pengguna JWT mengakses domain. Jika tidak, semua permintaan resmi JWT 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 otentikasi dan otorisasi JWT
Anda dapat mengaktifkan otentikasi dan otorisasi JWT 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 otentikasi dan otorisasi JWT di konsol Layanan: OpenSearch
-
Di bawah konfigurasi Domain, arahkan ke otentikasi dan otorisasi JWT untuk OpenSearch, pilih Aktifkan otentikasi dan otorisasi JWT.
-
Konfigurasikan kunci publik yang akan digunakan untuk domain Anda. Untuk melakukan ini, Anda dapat mengunggah file PEM, 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.
-
(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 Anda JWTs. -
Kunci peran — Anda dapat membiarkan bidang ini kosong untuk menggunakan
roles
kunci default untuk Anda JWTs.
Setelah Anda membuat perubahan, simpan domain Anda.
-
Menggunakan JWT untuk mengirim permintaan pengujian
Setelah membuat JWT baru 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 membuat JWT. OpenSearch Layanan dapat memvalidasi permintaan yang masuk dengan memverifikasi tanda tangan ini.
catatan
Jika Anda menentukan kunci subjek khusus atau kunci peran untuk JWT Anda, Anda harus menggunakan nama klaim yang benar untuk JWT Anda.
Berikut ini adalah contoh cara menggunakan token JWT untuk mengakses OpenSearch Layanan melalui titik akhir pencarian domain Anda:
curl -XGET "$search_endpoint" -H "Authorization: Bearer <JWT>"
AWS CLI Perintah berikut memungkinkan otentikasi dan otorisasi JWT untuk OpenSearch asalkan domain itu 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 otentikasi dan otorisasi JWT (konfigurasi melalui API)
Permintaan berikut ke API konfigurasi memungkinkan otentikasi dan otorisasi JWT untuk domain yang OpenSearch 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
JWTs Untuk 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 menggunakan JWTs: RSA dan ECDSA.
Untuk membuat key pair RSA menggunakan library openssl umum, ikuti langkah-langkah berikut:
openssl genrsa -out privatekey.pem 2048
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 Anda JWTs.
Jika Anda menggunakan tombol unggah untuk menambahkan file PEM langsung ke konsol, file tersebut harus memiliki .pem
ekstensi, ekstensi file lain seperti.crt
,.cert
, atau tidak .key
didukung saat ini.