Semua aplikasi OpenSearch yang dibuat dalam akun Alibaba Cloud Anda dimiliki oleh akun tersebut. Secara default, akun Alibaba Cloud memiliki izin penuh terhadap sumber daya yang dimilikinya. OpenSearch memungkinkan Anda menggunakan Resource Access Management (RAM) untuk memberikan izin kepada pengguna RAM mengakses dan mengelola sumber daya OpenSearch di dalam akun Alibaba Cloud Anda.
Perhatikan hal-hal berikut:
Berbeda dengan konsol OpenSearch lama, konsol OpenSearch baru menyempurnakan granularitas izin untuk pengguna RAM. Untuk menggunakan konsol OpenSearch baru sebagai pengguna RAM, Anda harus mengonfigurasi ulang kebijakan RAM untuk pengguna RAM tersebut.
Untuk memberikan izin kepada pengguna RAM, Anda harus menggunakan API OpenSearch atau SDK OpenSearch V3 atau yang lebih baru. Fitur ini tidak didukung oleh versi V2 atau sebelumnya dari API OpenSearch atau SDK OpenSearch.
Jika Anda menggunakan layanan pihak ketiga sebagai sumber data aplikasi OpenSearch, Anda harus mematuhi aturan sistem izin RAM untuk memberikan izin kepada pengguna RAM pada layanan pihak ketiga tersebut. Anda tidak dapat memberikan izin kepada pengguna RAM pada MaxCompute. Alasannya adalah bahwa pengguna RAM yang diberi otorisasi untuk mengakses proyek MaxCompute dari akun Alibaba Cloud terkait mungkin gagal mengakses sumber daya lain yang dimiliki oleh akun Alibaba Cloud tersebut. Akibatnya, pengguna RAM mungkin gagal merujuk proyek tersebut sebagai sumber data untuk terhubung ke OpenSearch. Kami menyarankan Anda menggunakan akun Alibaba Cloud untuk mengonfigurasi proyek MaxCompute sebagai sumber data aplikasi, dan kemudian mengelola aplikasi tersebut sebagai pengguna RAM.
Jika Anda ingin mengonfigurasi instance ApsaraDB RDS sebagai sumber data aplikasi di konsol OpenSearch sebagai pengguna RAM, Anda harus memberikan pengguna RAM izin yang diperlukan pada instance tersebut. Jika tidak, pesan kesalahan akan muncul, menunjukkan bahwa koneksi ke ApsaraDB RDS gagal. Untuk informasi lebih lanjut tentang cara memberikan izin kepada pengguna RAM pada instance ApsaraDB RDS, lihat bagian "Izin untuk Mengakses Instance ApsaraDB RDS" dari topik ini.
Tindakan yang dimulai dengan Search, seperti SearchApp dan SearchSuggest, tidak mendukung otorisasi bersyarat berbasis alamat IP. Jika Anda mengonfigurasi otorisasi bersyarat berbasis IP untuk tindakan semacam itu, kesalahan akan terjadi.
Waktu efektif
Setelah Anda memberikan izin kepada pengguna RAM atau memperbarui izin pengguna RAM, izin yang diberikan atau diperbarui akan berlaku dalam 5 menit.
Himpunan izin minimum umum
Jika Anda ingin menggunakan konsol OpenSearch sebagai pengguna RAM, Anda harus memberikan pengguna RAM izin yang diperlukan. Himpunan izin minimum umum mencakup izin yang diperlukan untuk mencari data dalam aplikasi, melihat daftar aplikasi, melihat detail aplikasi, mengonfigurasi pemantauan dan peringatan, serta mengakses instance ApsaraDB RDS. Bagian berikut menjelaskan izin-izin ini untuk referensi Anda.
Izin untuk Mencari Data dalam Aplikasi
Jika Anda ingin menggunakan SDK OpenSearch untuk mengirim permintaan pencarian atau menguji fitur pengambilan dokumen untuk aplikasi sebagai pengguna RAM, pengguna RAM tersebut harus memiliki izin untuk mencari data dalam aplikasi. Contoh kode berikut memberikan contoh kebijakan yang memberikan izin yang diperlukan untuk mengambil dokumen dari aplikasi bernama app_schema_demo:
{
"Statement": [
{
"Effect": "Allow",
"Action": "opensearch:SearchApp",
"Resource": "acs:opensearch:*:*:apps/app_schema_demo"
}
],
"Version": "1"
}Izin untuk Melihat Daftar Aplikasi
Jika Anda ingin melihat aplikasi setelah masuk ke konsol OpenSearch sebagai pengguna RAM, pengguna RAM tersebut harus memiliki izin untuk melihat daftar aplikasi.
{
"Statement": [
{
"Action": [
"opensearch:ListAppGroup",
"opensearch:DescribeAppStatistics",
"opensearch:ListAppGroupErrors"
],
"Effect": "Allow",
"Resource": "acs:opensearch:*:*:app-groups/*"
}
],
"Version": "1"
}Izin untuk Melihat Detail Aplikasi
Konsol OpenSearch menyediakan fitur pemantauan dan peringatan pada halaman detail aplikasi. Jika Anda ingin melihat detail aplikasi di konsol OpenSearch sebagai pengguna RAM, pengguna RAM tersebut harus memiliki izin untuk melihat detail aplikasi. Contoh kode berikut memberikan contoh kebijakan yang memberikan izin yang diperlukan untuk melihat detail aplikasi bernama app_schema_demo:
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"opensearch:DescribeAppGroup",
"opensearch:ListApp",
"opensearch:DescribeApp"
],
"Resource": "acs:opensearch:*:*:app-groups/app_schema_demo"
},
{
"Action": "opensearch:ListUserAnalyzers",
"Effect": "Allow",
"Resource": "acs:opensearch:*:*:user-analyzers/*"
}
],
"Version": "1"
}Izin untuk Mengonfigurasi Pemantauan dan Peringatan
OpenSearch menyediakan fitur pemantauan dan peringatan berdasarkan layanan CloudMonitor dari Alibaba Cloud. Kebijakan sistem AliyunCloudMonitorReadOnlyAccess memberikan izin baca-saja pada CloudMonitor. Anda dapat mencari kebijakan ini di konsol RAM.
{
"Version": "1",
"Statement": [
{
"Action": [
"cms:Get*",
"cms:List*",
"cms:Query*",
"cms:BatchQuery*"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "opensearch:DescribeApp",
"Resource": "acs:opensearch:*:*:app-groups/*",
"Effect": "Allow"
}
]
}Izin untuk Mengakses Instance ApsaraDB RDS
OpenSearch dapat memperoleh data dari instance ApsaraDB RDS berdasarkan tabel atau bidang. ApsaraDB RDS menggunakan daftar putih untuk mengimplementasikan kontrol akses. Jika Anda ingin menggunakan OpenSearch untuk memperoleh data dari instance ApsaraDB RDS, Anda harus memberikan pengguna RAM izin untuk mengonfigurasi daftar putih untuk instance ApsaraDB RDS tersebut. Jika tidak, ketika OpenSearch terhubung ke instance ApsaraDB RDS, kesalahan akan terjadi, menunjukkan bahwa pengguna RAM tidak diizinkan untuk mengonfigurasi daftar putih alamat IP untuk instance ApsaraDB RDS tersebut. Anda dapat memberikan izin kepada pengguna RAM di konsol RAM dengan melakukan langkah-langkah berikut: Ikuti petunjuk di halaman Overview untuk membuat kebijakan kustom dan pengguna RAM. Kemudian, lampirkan kebijakan tersebut ke pengguna RAM di halaman Users. Untuk informasi lebih lanjut, lihat Gunakan RAM untuk Mengelola Izin ApsaraDB RDS. Contoh kode berikut memberikan contoh kebijakan yang memberikan izin yang diperlukan untuk mengakses instance ApsaraDB RDS di OpenSearch:
Untuk informasi tentang variabel, seperti $regionid, $accountid, dan $dbinstanceid, dalam parameter Resource, lihat Gunakan RAM untuk Otorisasi Sumber Daya.
Anda dapat menggunakan wildcard (
*) untuk menetapkan variabel dalam parameter Resource.{ "Version": "1", "Statement": [ { "Action": "rds:DescribeDBInstanceAttribute", "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid", "Effect": "Allow" }, { "Action": "rds:ModifySecurityIps", "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid", "Effect": "Allow" }, { "Action": "rds:DescribeDBInstanceIPArrayList", "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid", "Effect": "Allow" }, { "Action": "rds:DescribeDBInstanceNetInfoForChannel", "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid", "Effect": "Allow" } ] }
Izin untuk Memanggil Operasi API
Contoh kode berikut memberikan contoh kebijakan yang memberikan izin yang diperlukan untuk memanggil operasi API untuk mencari data, mendorong data, dan mengakses model saran drop-down.
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"opensearch:PushDoc",
"opensearch:SearchApp"
],
"Resource": [
"acs:opensearch:$regionId:*:apps/$appGroupName",
"acs:opensearch:$regionId:*:app-groups/$appGroupName"
]
},
{
"Action": "opensearch:SearchSuggest",
"Effect": "Allow",
"Resource": "acs:opensearch:$regionId:*:suggestions/$suggestionIdentity"
}
],
"Version": "1"
}Contoh
Sebelum Anda memberikan izin kepada pengguna RAM, Anda harus menentukan izin mana pada aplikasi mana yang akan diberikan. Dalam banyak kasus, jika Anda menggunakan konsol OpenSearch sebagai pengguna RAM, Anda harus memberikan pengguna RAM izin untuk melakukan tindakan yang diperlukan. Misalnya, Anda dapat memberikan pengguna RAM izin untuk melakukan tindakan Describe* dan List*. Anda juga dapat memberikan himpunan izin kustom kepada pengguna RAM sesuai kebutuhan.
Contoh 1
Anda ingin memberikan semua izin pada semua aplikasi OpenSearch di semua wilayah kepada pengguna RAM yang termasuk dalam akun Alibaba Cloud dengan ID 1234. Dalam hal ini, Anda dapat menggunakan akun Alibaba Cloud untuk membuat kebijakan kustom di konsol RAM, dan kemudian melampirkan kebijakan tersebut ke pengguna RAM. Anda juga dapat memberikan izin kepada pengguna RAM dengan menggunakan SDK RAM. Untuk memberikan izin kepada pengguna RAM, lakukan langkah-langkah berikut: 1. Buat kebijakan kustom.
{
"Statement": [
{
"Action": "opensearch:*",
"Effect": "Allow",
"Resource": "acs:opensearch:*:1234:apps/*"
}
],
"Version": "1"
}2. Lampirkan kebijakan tersebut ke pengguna RAM.
Contoh 2
Anda ingin memberikan semua izin pada semua aplikasi OpenSearch di wilayah China (Hangzhou) kepada pengguna RAM yang termasuk dalam akun Alibaba Cloud dengan ID 1234. Dalam hal ini, Anda dapat menggunakan akun Alibaba Cloud untuk membuat kebijakan kustom di konsol RAM, dan kemudian melampirkan kebijakan tersebut ke pengguna RAM. Anda juga dapat memberikan izin kepada pengguna RAM dengan menggunakan SDK RAM. Untuk memberikan izin kepada pengguna RAM, lakukan langkah-langkah berikut:
1. Buat kebijakan kustom.
{
"Statement": [
{
"Action": "opensearch:*",
"Effect": "Allow",
"Resource": "acs:opensearch:cn-hangzhou:1234:apps/*"
}
],
"Version": "1"
}2. Lampirkan kebijakan tersebut ke pengguna RAM.
Perhatikan hal-hal berikut:
Anda dapat menggunakan wildcard (*) untuk menentukan semua jenis sumber daya dalam parameter Resource.
Anda dapat menentukan nama aplikasi dalam parameter Resource. Dalam hal ini, pengguna RAM yang diotorisasi hanya dapat melakukan semua tindakan yang ditentukan dalam parameter Action pada aplikasi ini, meskipun parameter Action disetel ke opensearch:*. Batasan ini tidak berlaku untuk tindakan opensearch:ListApp atau opensearch:CreateApp.
Tindakan yang ditentukan dalam parameter Action hanya berlaku untuk sumber daya yang ditentukan dalam parameter Resource. Misalnya, jika Anda ingin mengotorisasi pengguna RAM untuk melakukan tindakan opensearch:ListApp dan opensearch:CreateApp, Anda harus menggunakan wildcard (*) untuk menentukan semua aplikasi dalam parameter Resource. Kedua tindakan ini berbeda dari tindakan lainnya karena Anda hanya dapat mengotorisasi pengguna RAM untuk melakukan tindakan lainnya pada aplikasi tertentu.
Misalnya, Anda telah menentukan nama aplikasi dalam semua kebijakan kustom Anda. Dalam hal ini, jika Anda juga ingin mengotorisasi pengguna RAM untuk melakukan tindakan opensearch:ListApp dan opensearch:CreateApp, Anda harus membuat kebijakan kustom lain dengan parameter Action disetel ke opensearch:* untuk kedua tindakan tersebut dan melampirkan kebijakan ini ke pengguna RAM.
Solusi untuk otentikasi pengguna RAM yang gagal di konsol OpenSearch
Ketika Anda menggunakan konsol OpenSearch sebagai pengguna RAM, pesan kesalahan otentikasi pengguna RAM yang gagal mungkin muncul, seperti yang ditunjukkan pada gambar berikut.
Untuk menyelesaikan kesalahan ini, lakukan langkah-langkah berikut:
Lihat detail pesan kesalahan untuk menemukan tindakan POP dalam permintaan. Dalam contoh ini, tindakan POP adalah ListAppGroups. Jika tindakan POP diakhiri dengan DryRun, abaikan DryRun. Misalnya, jika tindakan POP adalah CreateAppDryRun, tindakan sebenarnya adalah CreateApp.
Di topik Aturan Otorisasi Aplikasi, temukan tindakan RAM dan format nilai parameter Resource yang sesuai dengan tindakan POP ListAppGroups.
Dalam banyak kasus, tindakan RAM berbeda dari tindakan POP.
Konfigurasikan kebijakan kustom untuk memberikan izin yang diperlukan pada tindakan RAM kepada pengguna RAM.