Jika kebijakan sistem dari Microservices Engine (MSE) tidak memenuhi kebutuhan Anda, Anda dapat membuat kebijakan kustom untuk menerapkan prinsip hak istimewa minimal. Kebijakan kustom memungkinkan kontrol terperinci atas izin dan meningkatkan keamanan akses sumber daya. Topik ini menjelaskan cara menggunakan kebijakan kustom untuk MSE serta memberikan 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 dengan kebutuhan bisnis Anda.
Setelah membuat kebijakan kustom, Anda harus melampirkannya ke pengguna RAM, grup pengguna RAM, atau peran RAM. Dengan cara ini, izin yang ditentukan dalam kebijakan dapat diberikan kepada entitas utama.
Anda dapat menghapus kebijakan RAM yang tidak dilampirkan pada entitas utama. Jika kebijakan RAM dilampirkan pada entitas utama, sebelum menghapusnya, Anda harus melepaskannya dari entitas utama.
Kebijakan kustom mendukung kontrol versi. Anda dapat mengelola versi kebijakan kustom berdasarkan mekanisme manajemen versi yang disediakan oleh RAM.
Referensi
Buat kebijakan kustom di tab Visual editor
Masuk ke Konsol RAM sebagai pengguna RAM dengan hak administratif.
Di panel navigasi kiri, pilih .
Di halaman Policies, klik Create Policy.
Di halaman Create Policy, pilih tab Visual editor.
Konfigurasikan kebijakan:
Di bagian Effect, pilih Allow atau Deny.
Di bagian Service, pilih layanan Alibaba Cloud.
CatatanLayanan Alibaba Cloud yang dapat dipilih ditampilkan di bagian Layanan.
Di bagian Action, pilih All action(s) atau Select action(s).
Sistem menampilkan aksi yang dapat dikonfigurasi berdasarkan layanan Alibaba Cloud yang dipilih di bagian Layanan. Jika memilih Select action(s), Anda harus memilih aksi tersebut.
Di bagian Resource, pilih All resource(s) atau Specified resource(s).
Sistem menampilkan sumber daya yang dapat dikonfigurasi berdasarkan aksi yang dipilih di bagian Aksi. Jika memilih Specified resource(s), Anda harus mengklik Add resource untuk mengonfigurasi satu atau lebih 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 ditandai dengan Required. Kami sangat menyarankan Anda mengonfigurasi ARN sumber daya yang ditandai sebagai Diperlukan. Hal ini memastikan bahwa kebijakan kustom berfungsi sesuai harapan.
Di bagian Condition, klik Add condition untuk mengonfigurasi kondisi.
Kondisi mencakup kondisi umum Alibaba Cloud dan kondisi spesifik layanan. Sistem menampilkan kondisi yang dapat dikonfigurasi berdasarkan layanan Alibaba Cloud dan aksi yang dipilih. Anda hanya perlu memilih kunci kondisi serta mengatur parameter Operator dan Nilai.
Klik Add statement dan ulangi langkah-langkah sebelumnya untuk mengonfigurasi beberapa pernyataan kebijakan kustom.
Periksa dan optimalkan isi kebijakan kustom:
Optimasi dasar
Sistem secara otomatis mengoptimalkan pernyataan kebijakan. Selama optimasi dasar, sistem melakukan operasi berikut:
Menghapus kondisi yang tidak diperlukan.
Menghapus array yang tidak diperlukan.
(Opsional) Optimasi lanjutan
Anda dapat memindahkan pointer ke Optional: advanced optimize dan klik Perform. Selama optimasi lanjutan, sistem melakukan operasi berikut:
Memisahkan sumber daya atau kondisi yang tidak kompatibel dengan aksi.
Mempersempit sumber daya.
Menghapus duplikat atau menggabungkan pernyataan kebijakan.
Konfigurasikan parameter Name dan Description.
Klik OK.
Contoh kebijakan kustom umum untuk Pendaftaran Mikro-layanan
Berikan pengguna izin baca-saja pada instance layanan tertentu.
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosNaming" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }Berikan pengguna izin untuk membaca dan memodifikasi instance layanan tertentu.
{ "Version": "1", "Statement": [ { "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": [ "acs:mse:*:*:instance/${instanceId1}", "acs:mse:*:*:instance/${instanceId2}" ], "Effect": "Allow" } ] }Catatan${instanceId1} dan ${instanceId2} menunjukkan ID instance.
Berikan pengguna izin baca-saja pada layanan di namespace tertentu dari sebuah instance.
{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosNaming", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}" } ], "Version": "1" }Berikan pengguna izin untuk membaca dan memodifikasi layanan grup ${group} di namespace tertentu dari sebuah instance.
{ "Statement": [ { "Effect": "Allow", "Action": [ "mse:QueryNacosNaming", "mse:UpdateNacosNaming" ], "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}" } ], "Version": "1" }Berikan pengguna izin baca-saja pada layanan ${serviceName} dari grup ${group}.
{ "Statement": [ { "Effect": "Allow", "Action": "mse:QueryNacosNaming", "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}" } ], "Version": "1" }Berikan pengguna izin untuk membaca dan memodifikasi layanan ${serviceName} dari grup ${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 Tata Kelola Mikro-layanan
Berikan izin baca-saja pada semua aplikasi
Untuk mengizinkan karyawan perusahaan melihat informasi kunci aplikasi, perusahaan dapat memberikan izin baca-saja pada semua aplikasi kepada karyawan.
Sebagai contoh, perusahaan menggunakan akun Alibaba Cloud untuk memberikan pengguna RAM izin baca-saja pada semua aplikasi yang diaktifkan Tata Kelola Mikro-layanan dari akun Alibaba Cloud saat ini.
Berikut adalah kode contoh kebijakan.
{
"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}"
}
]
}Berikan semua izin operasi pada aplikasi kepada pengguna RAM
Sebagai pemilik aplikasi perusahaan, Anda perlu diberikan semua izin operasi pada aplikasi tersebut. Izin Anda dibatasi secara ketat pada ruang lingkup aplikasi yang Anda kelola.
Sebagai contoh, perusahaan menggunakan akun Alibaba Cloud untuk memberikan izin berikut kepada pengguna RAM:
Izin baca-saja pada semua aplikasi yang diaktifkan Tata Kelola Mikro-layanan dari akun Alibaba Cloud saat ini.
Izin baca-saja pada aplikasi tertentu yang diaktifkan Tata Kelola Mikro-layanan.
Berikut adalah kode contoh kebijakan.
{
"Version": "1",
"Statement": [
// Semua izin pada aplikasi tertentu yang diaktifkan Tata Kelola Mikro-layanan
{
"Effect": "Allow",
"Action": "mse:*",
"Resource": "acs:mse:*:*:namespace/${ns}/application/${appName}"
},
// Izin baca-saja pada semua aplikasi yang diaktifkan Tata Kelola Mikro-layanan
{
"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}"
}
]
Berikan izin operasi pada semua aplikasi di namespace
Sebagai insinyur uji perusahaan, Anda perlu diberikan izin operasi pada semua aplikasi di lingkungan pengujian (test namespace). Izin Anda dibatasi secara ketat pada ruang lingkup lingkungan pengujian (test namespace).
Sebagai contoh, perusahaan menggunakan akun Alibaba Cloud untuk memberikan izin berikut kepada pengguna RAM:
Izin baca-saja pada semua aplikasi yang diaktifkan Tata Kelola Mikro-layanan dari akun Alibaba Cloud saat ini.
Izin baca-tulis pada aplikasi di namespace Tata Kelola Mikro-layanan tertentu.
Berikut adalah kode contoh kebijakan.
{
"Version": "1",
"Statement": [
// Semua izin pada aplikasi di namespace Tata Kelola Mikro-layanan tertentu
{
"Effect": "Allow",
"Action": "mse:*",
"Resource": "acs:mse:*:*:namespace/${ns}/application/*"
},
// Izin baca-saja pada semua aplikasi yang diaktifkan Tata Kelola Mikro-layanan
{
"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:*:*:*"
},
// Semua izin pada aplikasi di namespace Tata Kelola Mikro-layanan tertentu
{
"Effect": "Allow",
"Action": [
"mse:GetApplicationList",
"mse:CreateOrUpdateSwimmingLaneGroup",
"mse:CreateOrUpdateSwimmingLane",
"mse:DeleteSwimmingLaneGroup",
"mse:DeleteSwimmingLaneGroup",
"mse:DeleteSwimmingLane"
],
"Resource": "acs:mse:*:*:namespace/${ns}"
}
]
}Contoh kebijakan kustom umum untuk Gateway Berbasis Cloud-native
Berikan pengguna atau peran izin pada semua sumber daya
Jika ingin memberikan pengguna RAM atau peran izin operasi pada semua gateway berbasis cloud-native, Anda dapat melampirkan kebijakan sistem berikut ke pengguna RAM atau peran:
Izin baca-saja: AliyunMSEReadOnlyAccess
Izin baca-tulis: AliyunMSEFullAccess
Berikan pengguna atau peran izin pada sumber daya gateway tertentu
Jika ingin memberikan pengguna RAM atau peran izin operasi pada gateway tertentu, Anda dapat memberikan izin tingkat sumber daya kepada pengguna RAM atau peran.
Contoh 1: Berikan pengguna RAM izin baca-saja pada gateway berbasis 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 pengguna RAM izin baca-tulis pada gateway berbasis 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 sebelumnya hanya memungkinkan Anda melakukan operasi yang diperlukan di konsol MSE. Kemampuan spesifik gateway berbasis cloud-native bergantung pada layanan cloud lainnya. Anda dapat mengonfigurasi izin untuk pengguna RAM atau peran Anda berdasarkan dokumentasi konfigurasi izin layanan cloud lainnya. Ini memungkinkan pengguna RAM atau peran Anda menggunakan semua fitur gateway berbasis cloud-native. Tabel berikut menjelaskan pemetaan antara layanan cloud tempat gateway berbasis cloud-native bergantung dan modul gateway berbasis cloud-native terkait.
Layanan Alibaba Cloud | Modul gateway berbasis cloud-native | Referensi |
Layanan Log Sederhana |
| |
ARMS |
|