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 agar dapat mengakses dan mengelola sumber daya OpenSearch di akun Alibaba Cloud Anda.
Dibandingkan dengan versi sebelumnya dari konsol RAM, versi baru mendukung kontrol izin yang lebih rinci. Untuk memberikan izin kepada pengguna RAM di versi baru konsol RAM, Anda harus mengonfigurasi ulang kebijakan otorisasi RAM.
Untuk memberikan izin kepada pengguna RAM, Anda harus menggunakan API OpenSearch atau OpenSearch SDK V3 atau yang lebih baru. Fitur ini tidak didukung oleh versi V2 atau sebelumnya dari API OpenSearch atau OpenSearch SDK.
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. Anda tidak dapat memberikan izin kepada pengguna RAM pada MaxCompute karena pengguna RAM yang diberi otorisasi untuk mengakses proyek MaxCompute dari akun Alibaba Cloud mungkin gagal mengakses sumber daya lain yang dimiliki oleh akun tersebut. Akibatnya, pengguna RAM mungkin gagal mereferensikan proyek tersebut sebagai sumber data untuk terhubung ke OpenSearch. Kami menyarankan Anda menggunakan akun Alibaba Cloud untuk mengonfigurasi proyek MaxCompute sebagai sumber data aplikasi, lalu kelola aplikasi tersebut sebagai pengguna RAM.
Jika Anda ingin menggunakan pengguna RAM untuk mengonfigurasi instance ApsaraDB RDS sebagai sumber data aplikasi di konsol OpenSearch, 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 yang Diperlukan 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 otorisasi
Setelah Anda memberikan izin kepada pengguna RAM atau memperbarui izin pengguna RAM, izin yang diberikan atau diperbarui akan berlaku dalam lima 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 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 OpenSearch SDK untuk mengirim permintaan pencarian atau menguji fitur pengambilan dokumen untuk aplikasi sebagai pengguna RAM, pengguna RAM harus memiliki izin untuk mencari data dari 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 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 harus memiliki izin untuk melihat detail aplikasi. Contoh kode berikut memberikan contoh kebijakan otorisasi 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. 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. Anda dapat mengotorisasi pengguna RAM di konsol RAM dengan melakukan langkah-langkah berikut: Buat kebijakan otorisasi kustom dan pengguna RAM di halaman Overview. 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 otorisasi 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 memberikan izin kepada pengguna RAM, Anda harus menentukan izin mana yang akan diberikan pada aplikasi mana. 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 otorisasi di konsol RAM, lalu melampirkan kebijakan tersebut ke pengguna RAM. Anda juga dapat mengotorisasi pengguna RAM dengan menggunakan SDK RAM. Untuk mengotorisasi pengguna RAM, lakukan langkah-langkah berikut: 1. Buat kebijakan otorisasi.
{
"Statement": [
{
"Action": "opensearch:*",
"Effect": "Allow",
"Resource": "acs:opensearch:*:1234:apps/*"
}
],
"Version": "1"
}2. Lampirkan kebijakan otorisasi 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 otorisasi di konsol RAM, lalu melampirkan kebijakan tersebut ke pengguna RAM. Anda juga dapat mengotorisasi pengguna RAM dengan menggunakan SDK RAM. Untuk mengotorisasi pengguna RAM, lakukan langkah-langkah berikut:
1. Buat kebijakan otorisasi.
{
"Statement": [
{
"Action": "opensearch:*",
"Effect": "Allow",
"Resource": "acs:opensearch:cn-hangzhou:1234:apps/*"
}
],
"Version": "1"
}2. Lampirkan kebijakan otorisasi ke pengguna RAM.
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 dan opensearch:CreateApp.
Tindakan yang ditentukan dalam parameter Action hanya berlaku untuk sumber daya yang ditentukan dalam parameter Resource. Sebagai contoh, 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.
Anda telah menentukan nama aplikasi dalam semua kebijakan otorisasi Anda. Dalam hal ini, jika Anda juga ingin mengotorisasi pengguna RAM untuk melakukan tindakan opensearch:ListApp dan opensearch:CreateApp, Anda harus membuat kebijakan otorisasi lain dengan parameter Action disetel ke opensearch:* untuk kedua tindakan tersebut dan melampirkannya 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.
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. Sebagai contoh, 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 otorisasi untuk memberikan izin yang diperlukan pada tindakan RAM kepada pengguna RAM.