Kebijakan kustom memberikan kontrol izin yang lebih terperinci dibandingkan kebijakan sistem bawaan. Gunakan kebijakan ini ketika Anda perlu memberikan akses ke kluster tertentu, menyertakan izin CloudMonitor atau tag, atau membatasi tindakan yang dapat dilakukan oleh RAM user pada level API.
Kapan menggunakan kebijakan kustom
Kebijakan sistem berikut mencakup skenario otorisasi umum. Jika tidak sesuai dengan kebutuhan Anda, buatlah kebijakan kustom.
| Kebijakan sistem | Memberikan | Untuk |
|---|---|---|
AliyunElasticsearchReadOnlyAccess | Akses read-only ke kluster Elasticsearch atau Logstash | Pengguna read-only |
AliyunElasticsearchFullAccess | Akses manajemen penuh ke kluster Elasticsearch, kluster Logstash, dan Beats shippers | Administrator |
Kebijakan sistem tidak mencakup izin untuk CloudMonitor atau tag. Untuk memberikan izin tersebut, buat kebijakan kustom dan sambungkan secara terpisah.
Kebijakan kustom hanya berlaku di tingkat akun, bukan di tingkat kelompok sumber daya. Untuk menampilkan hanya kluster tertentu kepada RAM user di Konsol, gunakan kelompok sumber daya untuk memberikan izin kluster yang relevan. Untuk informasi selengkapnya, lihat Gunakan kelompok sumber daya untuk memberikan izin pada kluster tertentu.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memahami struktur dan sintaksis kebijakan dengan baik. Untuk informasi selengkapnya, lihat Struktur dan sintaksis kebijakan
Referensi cepat: Pilih contoh kebijakan
| Skenario | Contoh kebijakan |
|---|---|
| Berikan akses admin penuh kepada RAM user untuk semua kluster Elasticsearch | Kebijakan untuk administrator |
| Berikan akses RAM user ke kluster tertentu, termasuk izin CloudMonitor dan tag | Kebijakan untuk izin operasi pada kluster tertentu |
| Berikan izin RAM user untuk memanggil operasi API Elasticsearch tertentu | Kebijakan untuk operasi API |
Buat kebijakan kustom
Ikuti langkah-langkah dalam Buat kebijakan kustom di tab JSON dan masukkan dokumen kebijakan sesuai kebutuhan Anda. Anda juga dapat mengimpor kebijakan sistem yang sudah ada sebagai titik awal, lalu memodifikasinya.
Contoh: Berikan akses ke VPC dan vSwitch
{
"Version": "1",
"Statement": [
{
"Action": [
"elasticsearch:DescribeVpcs",
"elasticsearch:DescribeVSwitches"
],
"Resource": "*",
"Effect": "Allow"
}
]
}Contoh: Berikan izin untuk membayar pesanan
{
"Version": "1",
"Statement": [
{
"Action": [
"bss:PayOrder"
],
"Resource": "*",
"Effect": "Allow"
}
]
}Contoh kebijakan
Sebelum menggunakan contoh dokumen kebijakan di bawah ini, ganti placeholder berikut dengan nilai aktual Anda. Wildcard (*) tidak didukung untuk bidang-bidang ini.
| Placeholder | Deskripsi | Cara mendapatkannya |
|---|---|---|
<yourAccountId> | ID akun Alibaba Cloud Anda | Login ke Konsol Manajemen Alibaba Cloud, lalu arahkan kursor ke foto profil di pojok kanan atas untuk melihat ID akun Anda |
<yourInstanceId> | ID kluster Elasticsearch yang ingin Anda berikan aksesnya | Lihat Lihat informasi dasar kluster |
Kebijakan untuk administrator
Memberikan izin operasi penuh kepada RAM user untuk semua kluster Elasticsearch di bawah akun <yourAccountId>.
{
"Statement": [
{
"Action": [
"elasticsearch:*"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/<yourInstanceId>"
},
{
"Action": [
"cms:DescribeActiveMetricRuleList",
"cms:ListAlarm",
"cms:QueryMetricList"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"elasticsearch:ListTags"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:tags/*"
},
{
"Action": [
"elasticsearch:ListInstance",
"elasticsearch:ListSnapshotReposByInstanceId"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/*"
},
{
"Action": [
"elasticsearch:ListLogstash"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:logstashes/*"
},
{
"Action": [
"elasticsearch:ListCollectors"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:collectors/*"
}
],
"Version": "1"
}Kebijakan untuk izin operasi pada kluster tertentu
Memberikan izin berikut kepada RAM user di bawah akun <yourAccountId>:
Semua operasi Elasticsearch pada kluster
<yourInstanceId>Izin CloudMonitor (diperlukan karena antarmuka Advanced Monitoring and Alerting, CloudMonitor, dan Tag tertanam di halaman manajemen kluster di Konsol Elasticsearch)
Izin untuk melihat semua kluster
Izin untuk melihat semua tag pada kluster
Izin untuk melihat Beats shippers
{
"Statement": [
{
"Action": [
"elasticsearch:*"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/<yourInstanceId>"
},
{
"Action": [
"cms:DescribeActiveMetricRuleList",
"cms:ListAlarm",
"cms:QueryMetricList"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"elasticsearch:ListTags"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:tags/*"
},
{
"Action": [
"elasticsearch:ListInstance",
"elasticsearch:ListSnapshotReposByInstanceId"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:instances/*"
},
{
"Action": [
"elasticsearch:ListLogstash"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:logstashes/*"
},
{
"Action": [
"elasticsearch:ListCollectors"
],
"Effect": "Allow",
"Resource": "acs:elasticsearch:*:<yourAccountId>:collectors/*"
}
],
"Version": "1"
}Kebijakan untuk operasi API
Tabel berikut mencantumkan nilai Resource dan Action yang digunakan saat memberikan izin untuk memanggil operasi API Elasticsearch.
| Metode | URI | Resource | Action |
|---|---|---|---|
| GET | /instances | instances/* | ListInstance |
| POST | /instances | instances/* | CreateInstance |
| GET | /instances/instanceId | instances/instanceId | DescribeInstance |
| DELETE | /instances/instanceId | instances/instanceId | DeleteInstance |
| POST | /instances/instanceId/actions/restart | instances/instanceId | RestartInstance |
| PUT | /instances/instanceId | instances/instanceId | UpdateInstance |
Referensi elemen kebijakan
Gunakan referensi ini saat menulis atau meninjau dokumen kebijakan.
Action
Menentukan operasi yang diizinkan atau ditolak oleh kebijakan.
| Action | Deskripsi |
|---|---|
elasticsearch:* | Semua operasi Elasticsearch. Tidak mencakup izin untuk Advanced Monitoring and Alerting, CloudMonitor, atau Tag — tentukan izin tersebut secara terpisah. |
elasticsearch:ListInstance | Kueri kluster Elasticsearch. |
elasticsearch:ListSnapshotReposByInstanceId | Kueri repositori Object Storage Service (OSS) bersama. |
elasticsearch:ListTags | Kueri semua tag pada kluster Elasticsearch. |
elasticsearch:ListCollectors | Kueri Beats shippers. |
elasticsearch:ListLogstash | Kueri kluster Logstash. |
elasticsearch:DescribeVpcs, elasticsearch:DescribeVSwitches | Akses ke virtual private cloud (VPC) dan vSwitch milik akun Alibaba Cloud. Diperlukan ketika RAM user perlu memilih VPC atau vSwitch saat pembelian resource. |
cms:DescribeActiveMetricRuleList | Kueri layanan yang telah diaktifkan CloudMonitor-nya dalam akun. |
cms:ListAlarm | Kueri semua atau aturan peringatan tertentu. |
cms:QueryMetricList | Kueri data pemantauan untuk instance atau kluster layanan tertentu dalam suatu periode. |
bss:PayOrder | Membayar pesanan. Diperlukan saat memberikan otorisasi kepada RAM user untuk membeli resource — tanpa izin ini, sistem akan mengembalikan error izin tidak mencukupi saat checkout. |
Effect
Menentukan apakah pernyataan kebijakan mengizinkan atau menolak aksi yang ditentukan.
| Nilai | Deskripsi |
|---|---|
Allow | RAM user dapat melakukan operasi yang tercantum dalam elemen Action. |
Deny | RAM user tidak dapat melakukan operasi yang tercantum dalam elemen Action. |
Resource
Menentukan resource mana yang diterapkan oleh kebijakan. Untuk daftar lengkap objek otorisasi yang didukung, lihat Objek Elasticsearch yang didukung untuk otorisasi.
| Nilai | Deskripsi |
|---|---|
* | Semua kluster. |
<yourInstanceId> | Kluster tertentu. Ganti dengan ID kluster aktual. Lihat Lihat informasi dasar kluster. |
Langkah selanjutnya
Setelah membuat kebijakan kustom, sambungkan ke RAM user melalui Konsol RAM atau menggunakan SDK RAM. Untuk informasi selengkapnya, lihat Berikan izin kepada RAM user.