Jika kebijakan sistem Microservices Engine (MSE) tidak memenuhi kebutuhan Anda, Anda dapat membuat kebijakan kustom untuk menerapkan prinsip hak istimewa minimal. Kebijakan kustom memungkinkan penerapan kontrol detail halus terhadap izin dan meningkatkan keamanan akses sumber daya. Topik ini menjelaskan cara menggunakan kebijakan kustom untuk MSE serta menyediakan contoh kebijakan kustom.
Apa itu kebijakan kustom?
Kebijakan Resource Access Management (RAM) diklasifikasikan menjadi kebijakan sistem dan kebijakan kustom. Anda dapat mengelola kebijakan kustom sesuai kebutuhan bisnis Anda.
Setelah membuat kebijakan kustom, Anda harus menyambungkannya ke RAM user, grup RAM user, atau RAM role agar izin yang ditentukan dalam kebijakan tersebut diberikan kepada pihak yang berwenang.
Anda dapat menghapus kebijakan RAM yang tidak disambungkan ke pihak yang berwenang. Jika kebijakan RAM tersebut telah disambungkan, Anda harus melepas sambungannya terlebih dahulu sebelum menghapusnya.
Kebijakan kustom mendukung pengendalian versi. Anda dapat mengelola versi kebijakan kustom menggunakan mekanisme manajemen versi yang disediakan oleh RAM.
Referensi
Buat kebijakan kustom pada tab Visual editor
Masuk ke RAM console sebagai RAM user yang memiliki hak administratif.
Di panel navigasi sebelah kiri, pilih .
Pada halaman Policies, klik Create Policy.
Pada halaman Create Policy, klik tab Visual editor.
Konfigurasi kebijakan.
Pada bagian Effect, pilih Allow atau Deny.
Pada bagian Service, pilih layanan Alibaba Cloud.
CatatanLayanan Alibaba Cloud yang tersedia akan ditampilkan di bagian Service.
Pada bagian Actions, pilih All action(s) atau Select action(s).
Sistem akan menampilkan daftar aksi yang dapat dikonfigurasi berdasarkan layanan Alibaba Cloud yang dipilih di bagian Service. Jika Anda memilih Select action(s), Anda harus memilih aksi tertentu.
Pada bagian Resources, pilih All Resources atau Specified resource(s).
Sistem akan menampilkan daftar sumber daya yang dapat dikonfigurasi berdasarkan aksi yang dipilih di bagian Action. Jika Anda memilih Specified resource(s), klik Add resource untuk mengonfigurasi satu atau beberapa Nama Sumber Daya Alibaba Cloud (ARN). Anda juga dapat mengklik Match all untuk memilih semua sumber daya untuk setiap aksi yang dipilih.
CatatanARN sumber daya yang diperlukan untuk suatu aksi akan diberi tag Required. Kami sangat menyarankan agar Anda mengonfigurasi ARN sumber daya yang diberi tag Required agar kebijakan kustom berfungsi sebagaimana mestinya.
Pada bagian Condition, klik Add Condition untuk mengonfigurasi kondisi.
Kondisi mencakup kondisi umum Alibaba Cloud dan kondisi spesifik layanan. Sistem akan menampilkan daftar kondisi yang dapat dikonfigurasi berdasarkan layanan Alibaba Cloud dan aksi yang dipilih. Anda hanya perlu memilih kunci kondisi, lalu mengatur parameter Operator dan Value.
Klik Add statement dan ulangi langkah-langkah sebelumnya untuk mengonfigurasi beberapa pernyataan kebijakan kustom.
Periksa dan optimalkan konten kebijakan kustom.
Optimalisasi Dasar
Sistem secara otomatis mengoptimalkan pernyataan kebijakan. Selama optimalisasi dasar, sistem melakukan operasi berikut:
Menghapus kondisi yang tidak diperlukan.
Menghapus array yang tidak diperlukan.
(Opsional) Optimalisasi Lanjutan
Untuk melakukan optimalisasi lanjutan, arahkan kursor ke Optional: advanced optimize, lalu klik Execute. Optimalisasi lanjutan mencakup tugas-tugas berikut:
Memisahkan sumber daya atau kondisi yang tidak kompatibel dengan aksi.
Mempersempit cakupan sumber daya.
Menghilangkan duplikasi atau menggabungkan pernyataan kebijakan.
Masukkan kebijakan Name dan Remarks.
Klik OK.
Contoh kebijakan kustom umum untuk Microservices Registry
Berikan izin read-only kepada pengguna atas layanan dalam instans tertentu.
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosNaming" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }Berikan izin membaca dan memperbarui kepada pengguna atas layanan dalam instans tertentu.
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }Catatan${instanceId1}dan${instanceId2}merepresentasikan ID instans registri.Berikan izin read-only kepada pengguna atas layanan dalam namespace tertentu dari suatu instans.
{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosNaming", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}" } ], "Version": "1" }Berikan izin membaca dan memperbarui kepada pengguna atas layanan dalam kelompok
${group}di namespace tertentu dari suatu instans.{ "Statement": [ { "Effect": "Allow", "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}" } ], "Version": "1" }Berikan izin read-only kepada pengguna atas layanan
${serviceName}dalam kelompok${group}.{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosNaming", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" } ], "Version": "1" }Berikan izin membaca dan memperbarui kepada pengguna atas layanan
${serviceName}dalam kelompok${group}.{ "Statement": [ { "Effect": "Allow", "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" } ], "Version": "1" }
Contoh kebijakan kustom umum untuk Microservices Governance
Akses read-only ke semua aplikasi
Berikan kebijakan ini kepada anggota tim yang perlu memantau status dan metrik aplikasi tetapi tidak boleh mengubah konfigurasi apa pun.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mse:QueryNamespace",
"mse:GetApplicationListWithMetircs",
"mse:ListNamespaces",
"mse:GetEventFilterOptions",
"mse:ListEventRecords",
"mse:GetEventDetail",
"mse:FetchLogConfig",
"mse:QueryBusinessLocations",
"mse:GetApplicationInstanceList",
"mse:listGrayTag",
"mse:QueryServiceDetailWithMetrics",
"mse:GetEventDetail",
"mse:ListEventsPage",
"mse:ListEventsByType",
"mse:GetApplicationTagList"
],
"Resource": "acs:mse:*:*:*"
},
{
"Effect": "Allow",
"Action": "mse:GetApplicationList",
"Resource": "acs:mse:*:*:namespace/${ns}"
}
]
}Akses penuh ke aplikasi tertentu
Berikan kebijakan ini kepada pemilik aplikasi yang mengelola aplikasinya sendiri tetapi tidak boleh mengubah aplikasi lain. Kebijakan ini menggabungkan izin penuh untuk satu aplikasi dengan akses read-only ke semua aplikasi lainnya.
Kebijakan ini memiliki tiga pernyataan:
Pernyataan 1: Izin penuh (
mse:*) yang dibatasi hanya untuk aplikasi target.Pernyataan 2–3: Akses read-only ke semua aplikasi untuk navigasi konsol.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "mse:*",
"Resource": "acs:mse:*:*:namespace/${ns}/application/${appName}"
},
{
"Effect": "Allow",
"Action": [
"mse:QueryNamespace",
"mse:GetApplicationListWithMetircs",
"mse:ListNamespaces",
"mse:GetEventFilterOptions",
"mse:ListEventRecords",
"mse:GetEventDetail",
"mse:FetchLogConfig",
"mse:QueryBusinessLocations",
"mse:GetApplicationInstanceList",
"mse:listGrayTag",
"mse:QueryServiceDetailWithMetrics",
"mse:GetEventDetail",
"mse:ListEventsPage",
"mse:ListEventsByType",
"mse:GetApplicationTagList"
],
"Resource": "acs:mse:*:*:*"
},
{
"Effect": "Allow",
"Action": "mse:GetApplicationList",
"Resource": "acs:mse:*:*:namespace/${ns}"
}
]
}Akses penuh ke namespace tertentu
Berikan kebijakan ini kepada penguji yang mengelola semua aplikasi dalam lingkungan pengujian tetapi tidak boleh mengakses sumber daya produksi.
Kebijakan ini memiliki tiga pernyataan:
Pernyataan 1: Izin penuh untuk semua aplikasi dalam namespace target.
Pernyataan 2: Akses read-only ke sumber daya seluruh konsol, termasuk daftar aplikasi, konfigurasi jalur lalu lintas, kebijakan autentikasi, dan daftar layanan.
Pernyataan 3: Izin tingkat namespace untuk pencatatan aplikasi dan manajemen jalur lalu lintas.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "mse:*",
"Resource": "acs:mse:*:*:namespace/${ns}/application/*"
},
{
"Effect": "Allow",
"Action": [
"mse:QueryNamespace",
"mse:GetApplicationListWithMetircs",
"mse:ListNamespaces",
"mse:GetEventFilterOptions",
"mse:ListEventRecords",
"mse:GetEventDetail",
"mse:FetchLogConfig",
"mse:QueryBusinessLocations",
"mse:GetApplicationInstanceList",
"mse:listGrayTag",
"mse:QueryServiceDetailWithMetrics",
"mse:GetEventDetail",
"mse:ListEventsPage",
"mse:ListEventsByType",
"mse:GetApplicationTagList",
"mse:QueryAllSwimmingLaneGroup",
"mse:QueryAllSwimmingLane",
"mse:ListAppBySwimmingLaneGroupTags",
"mse:ListAppBySwimmingLaneGroupTag",
"mse:QuerySwimmingLaneById",
"mse:GetTagsBySwimmingLaneGroupId",
"mse:ListSwimmingLaneGateway",
"mse:ListSwimmingLaneGatewayRoute",
"mse:ListAuthPolicy",
"mse:GetServiceList",
"mse:GetServiceListPage"
],
"Resource": "acs:mse:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"mse:GetApplicationList",
"mse:CreateOrUpdateSwimmingLaneGroup",
"mse:CreateOrUpdateSwimmingLane",
"mse:DeleteSwimmingLaneGroup",
"mse:DeleteSwimmingLaneGroup",
"mse:DeleteSwimmingLane"
],
"Resource": "acs:mse:*:*:namespace/${ns}"
}
]
}Contoh kebijakan untuk Cloud-native Gateway
Berikan izin kepada pengguna atau role atas semua sumber daya
Jika Anda ingin memberikan izin operasional kepada RAM user atau role atas semua gateway cloud-native, Anda dapat menyambungkan kebijakan sistem berikut ke RAM user atau role tersebut:
Izin read-only: AliyunMSEReadOnlyAccess
Izin baca dan tulis: AliyunMSEFullAccess
Berikan izin kepada pengguna atau role atas sumber daya gateway tertentu
Jika Anda ingin memberikan izin operasional kepada RAM user atau role atas gateway tertentu, Anda dapat memberikan izin tingkat sumber daya kepada RAM user atau role tersebut.
Contoh 1: Berikan izin read-only kepada RAM user atas gateway cloud-native bernama gw-8090caa2a3ab447a8bc5fdf3********.
{ "Version": "1", "Statement": [ { "Action": [ "mse:Query*", "mse:List*", "mse:Get*", "mse:Select*", "mse:Pull*", "mse:GatewayBlackWhite*", "mse:GatewayHealthCheckList", "mse:GatewayQueryMonitor", "mse:UploadWasmFile" ], "Resource": "acs:mse:*:*:instance/gw-8090caa2a3ab447a8bc5fdf3********", "Effect": "Allow" }, { "Action": [ "mse:QueryDefaultAlertStatus", "mse:ListGatewayZone", "mse:ListUpgradableGatewayVersions", "mse:ListTagResources", "mse:ListGatewayIngressMigrateTask", "mse:ListEventRecords", "mse:GetEventFilterOptions", "mse:GetEventDetail", "mse:GetGatewaySelection", "mse:GetGatewayAlarms", "mse:GetGatewayMigrateNamespacedServices", "mse:GetGatewayIngressMigrateTaskDetail", "mse:GetPluginGuide", "mse:GetRegExpCheck", "mse:GetRegExpTest", "mse:CheckPluginLua" ], "Resource": "acs:mse:*:*:*", "Effect": "Allow" }, { "Action": [ "log:DescribeService", "log:ListProject", "log:GetProductDataCollection" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "arms:SearchContactGroup" ], "Resource": "*", "Effect": "Allow" } ] }Contoh 2: Berikan izin baca dan tulis kepada RAM user atas gateway cloud-native bernama gw-8090caa2a3ab447a8bc5fdf3********.
{ "Version": "1", "Statement": [ { "Action": [ "mse:*" ], "Resource": "acs:mse:*:*:instance/gw-8090caa2a3ab447a8bc5fdf3********", "Effect": "Allow" }, { "Action": [ "mse:QueryDefaultAlertStatus", "mse:CreateDefaultAlert", "mse:ListGatewayZone", "mse:ListUpgradableGatewayVersions", "mse:ListEventRecords", "mse:GetEventFilterOptions", "mse:GetEventDetail", "mse:GetGatewaySelection", "mse:GetGatewayAlarms", "mse:GetGatewayMigrateNamespacedServices", "mse:GetPluginGuide", "mse:GetRegExpCheck", "mse:GetRegExpTest", "mse:CheckPluginLua", "mse:*TagResources", "mse:*CustomPlugin", "mse:*GatewayIngressMigrateTask*" ], "Resource": "acs:mse:*:*:*", "Effect": "Allow" }, { "Action": [ "log:DescribeService", "log:ListProject", "log:GetProductDataCollection", "log:OpenProductDataCollection" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "arms:SearchContactGroup" ], "Resource": "*", "Effect": "Allow" } ] }
Catatan penggunaan
Izin yang disebutkan di atas hanya memungkinkan Anda melakukan operasi yang diperlukan di Konsol MSE. Kemampuan spesifik gateway cloud-native bergantung pada layanan cloud lainnya. Anda dapat mengonfigurasi izin untuk RAM user atau role Anda berdasarkan dokumentasi konfigurasi izin layanan cloud lainnya sehingga RAM user atau role tersebut dapat menggunakan semua fitur gateway cloud-native. Tabel berikut menjelaskan pemetaan antara layanan cloud tempat gateway cloud-native bergantung dan modul gateway cloud-native terkait.
Layanan Alibaba Cloud | Modul gerbang cloud-native | Referensi |
Simple Log Service |
| |
ARMS |
|