Gunakan kebijakan tumpukan untuk mencegah pembaruan atau penghapusan sumber daya tumpukan secara tidak sengaja selama pembaruan. Topik ini menjelaskan cara mendefinisikan, mengonfigurasi, dan memperbarui kebijakan tumpukan.
Informasi Latar Belakang
Kebijakan tumpukan adalah file JSON atau YAML yang menentukan tindakan pembaruan yang dapat dilakukan pada sumber daya tertentu. Pengguna dengan izin pembaruan tumpukan dapat memperbarui semua sumber daya dalam tumpukan setelah tumpukan dibuat. Beberapa sumber daya mungkin memerlukan interupsi selama pembaruan. Setelah kebijakan tumpukan dikonfigurasi, Resource Orchestration Service (ROS) melindungi semua sumber daya dalam tumpukan. Untuk mengizinkan pembaruan pada sumber daya tertentu, tambahkan pernyataan Allow untuk sumber daya tersebut dalam kebijakan tumpukan Anda.
Hanya satu kebijakan tumpukan yang dapat ditentukan untuk setiap tumpukan. Satu kebijakan tumpukan dapat melindungi beberapa sumber daya.
Selama pembaruan tumpukan, ROS secara otomatis memperbarui sumber daya yang bergantung pada sumber daya lain yang diperbarui. Misalnya, ROS memperbarui sumber daya yang merujuk pada sumber daya yang diperbarui. Namun, Anda harus memiliki izin untuk memperbarui sumber daya yang terkait dengan kebijakan tumpukan.
Kebijakan tumpukan hanya berlaku selama pembaruan tumpukan. Berbeda dengan kebijakan RAM, kebijakan tumpukan tidak mendukung kontrol akses. Kebijakan tumpukan bertindak sebagai mekanisme pengaman untuk mencegah pembaruan tidak disengaja pada sumber daya tumpukan tertentu.
Mendefinisikan Kebijakan Tumpukan
Jika Anda tidak mengonfigurasi kebijakan tumpukan saat membuat tumpukan, semua sumber daya dalam tumpukan dapat diperbarui. Untuk mencegah pembaruan sumber daya dalam tumpukan, definisikan kebijakan tumpukan dan konfigurasikan kebijakan tersebut untuk tumpukan. Saat membuat tumpukan, Anda dapat memasukkan isi kebijakan tumpukan atau menentukan file teks yang berisi kebijakan tumpukan untuk mengonfigurasi kebijakan tumpukan. Jika Anda tidak secara eksplisit mengizinkan pembaruan saat mengonfigurasi kebijakan tumpukan, pembaruan akan ditolak.
Kebijakan tumpukan terdiri dari elemen-elemen berikut: Effect, Action, Principal, Resource, dan Condition.
Statement:
- Effect: Deny_or_Allow
Action: update_actions
Principal: '*'
Resource: LogicalResourceId/resource_logical_ID
Condition:
StringEquals_or_StringLike:
ResourceType:
- resource_type
- ...
Berikut ini menjelaskan elemen-elemen dalam kebijakan:
EffectMenentukan apakah tindakan pada sumber daya diizinkan atau ditolak. Nilai valid:
DenydanAllow. Contoh kode:Effect: DenyCatatanJika kebijakan tumpukan mencakup pernyataan Allow dan Deny, pernyataan
Denymenggantikan pernyataanAllow. Gunakan pernyataanDenyjika ingin melindungi sumber daya dari pembaruan.ActionTindakan pembaruan yang ditolak atau diizinkan. Nilai valid:
Update:ModifyTindakan pembaruan tanpa gangguan atau dengan gangguan tertentu ketika perubahan diterapkan pada sumber daya.
Update:DeleteTindakan pembaruan yang menghapus sumber daya. Tindakan ini harus ditentukan untuk pembaruan yang sepenuhnya menghapus sumber daya dari template tumpukan.
Update:*Semua tindakan pembaruan. Karakter wildcard (*) mencakup semua tindakan pembaruan.
CatatanUpdate:Replacemenentukan tindakan pembaruan saat sumber daya diganti. Tindakan Update:Replace adalah fitur yang dicadangkan dan tidak didukung.Dalam contoh kode berikut, tindakan Update:Delete dan Update:Modify ditentukan:
Action: - Update:Modify - Update:DeleteUntuk mengizinkan semua tindakan pembaruan kecuali tindakan tertentu, gunakan
NotAction. Misalnya, aturNotActionkeUpdate:Deleteuntuk mengizinkan semua tindakan pembaruan kecuali tindakan Update:Delete.Statement: - Effect: Allow NotAction: Update:Delete Principal: '*' Resource: '*'PrincipalPrinsipal-prinsipal yang menjadi target kebijakan ini. Atur nilai ke karakter wildcard (*). Karakter wildcard (*) menunjukkan bahwa kebijakan berlaku untuk semua prinsipal.
ResourceID logis sumber daya yang menjadi target kebijakan. Untuk menentukan jenis sumber daya, gunakan elemen
Condition.Untuk menentukan sumber daya, gunakan ID logis sumber daya. Contoh kode:
Resource: - LogicalResourceId/myECSID logis dapat berisi karakter wildcard (*). Misalnya, gunakan karakter wildcard (*) untuk mencocokkan semua ID logis dengan awalan tertentu.
Resource: - LogicalResourceId/Prefix*Anda dapat menambahkan awalan
Notke elemen Resource. Misalnya, gunakan elemenNotResourceuntuk melindungi sumber daya tertentu dari pembaruan.Statement: - Effect: Allow Action: Update:* Principal: '*' NotResource: LogicalResourceId/WebServersJika Anda tidak secara eksplisit mengizinkan pembaruan ke sumber daya tertentu saat mengonfigurasi kebijakan tumpukan, pembaruan ke sumber daya tersebut akan ditolak. Jika Anda mengizinkan pembaruan ke semua sumber daya kecuali
WebServers, pembaruan ke sumber dayaWebServersakan ditolak.ConditionJenis sumber daya yang menjadi target kebijakan. Untuk menentukan ID logis sumber daya, gunakan elemen
Resource.Misalnya, gunakan jenis sumber daya ALIYUN::ECS::Instance dan ALIYUN::RDS::DBInstance untuk menentukan semua Instance Elastic Compute Service (ECS) dan instance ApsaraDB RDS.
Statement: - Effect: Deny Principal: '*' Action: Update:* Resource: '*' Condition: StringEquals: ResourceType: - ALIYUN::ECS::Instance - ALIYUN::RDS::DBInstance - Effect: Allow Principal: '*' Action: Update:* Resource: '*'Dalam contoh kode sebelumnya, pernyataan
Allowmengizinkan pembaruan ke semua sumber daya. PernyataanDenymenolak pembaruan ke instance ECS dan ApsaraDB RDS. PernyataanDenymenggantikan pernyataan Allow.Jenis sumber daya dapat berisi karakter wildcard (*). Misalnya, gunakan karakter wildcard (*) untuk menolak pembaruan ke semua sumber daya ECS, seperti instance ECS, grup keamanan, dan subnet.
Condition: StringLike: ResourceType: - ALIYUN::ECS::*CatatanSaat menggunakan karakter wildcard (*), tentukan kondisi StringLike.
Mengonfigurasi Kebijakan Tumpukan
Gunakan konsol ROS atau CLI Alibaba Cloud untuk menerapkan kebijakan tumpukan saat membuat tumpukan. Anda juga dapat menggunakan CLI Alibaba Cloud untuk menerapkan kebijakan tumpukan ke tumpukan yang sudah ada. Setelah kebijakan tumpukan diterapkan, Anda tidak dapat menghapusnya, tetapi dapat memperbaruinya menggunakan CLI Alibaba Cloud.
Gunakan konsol ROS untuk mengonfigurasi kebijakan tumpukan saat membuat tumpukan
Masuk ke konsol ROS.
Di panel navigasi kiri, klik Stacks.
Di bilah navigasi atas, pilih wilayah tempat Anda ingin membuat tumpukan dari daftar drop-down wilayah. Dalam contoh ini, China (Hangzhou) dipilih.
Di halaman Stacks, klik Create Stack dan pilih Use ROS dari daftar drop-down.
Pada langkah Select Template dari wizard Create Stack, tentukan template sesuai kebutuhan bisnis Anda dan klik Next.
Pada langkah Configure Parameters dari wizard Create Stack, ikuti petunjuk di layar untuk mengonfigurasi parameter Stack Name, serta parameter di bagian Configure Template Parameters.
Di bagian Configure Stack Settings, atur parameter Stack Policy ke Input Stack Policy.
Gunakan salah satu metode berikut untuk mengonfigurasi kebijakan tumpukan dan klik Next.
Input Stack Policy: Masukkan kebijakan tumpukan Anda.
Upload File: Unggah file JSON atau YAML yang berisi kebijakan tumpukan Anda.
Pada langkah Compliance Precheck, lengkapi pemeriksaan kepatuhan awal dan klik Next.
CatatanHanya sumber daya tertentu yang mendukung fitur pemeriksaan kepatuhan awal. Untuk informasi lebih lanjut, lihat Pemeriksaan Kepatuhan Awal.
Di bagian Evaluate Rules, tambahkan aturan kepatuhan.
Tambahkan aturan kepatuhan berdasarkan sumber daya cloud dalam template ROS.
Klik Evaluate.
Modifikasi konten template berdasarkan saran yang diberikan untuk memperbaiki sumber daya yang tidak valid. Ini memastikan kepatuhan sumber daya.
Ikuti petunjuk di layar untuk menyelesaikan pembuatan tumpukan.
Gunakan CLI Alibaba Cloud untuk mengonfigurasi kebijakan tumpukan saat membuat tumpukan
Gunakan salah satu metode berikut untuk mengonfigurasi kebijakan tumpukan:
Panggil operasi CreateStack.
Gunakan perintah
aliyun ros CreateStackdan opsi--StackPolicyBodyuntuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintahaliyun ros CreateStackdan opsi--StackPolicyURLuntuk menentukan file yang berisi kebijakan tumpukan.Panggil operasi CreateChangeSet.
Gunakan perintah
aliyun ros CreateChangeSetdan opsi--StackPolicyBodyuntuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintahaliyun ros CreateChangeSetdan opsi--StackPolicyURLuntuk menentukan file yang berisi kebijakan tumpukan.
Gunakan CLI Alibaba Cloud untuk mengonfigurasi kebijakan tumpukan untuk tumpukan yang sudah ada (hanya CLI Alibaba Cloud yang didukung)
Gunakan perintah
aliyun ros SetStackPolicydan opsi--StackPolicyBodyuntuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintahaliyun ros SetStackPolicydan opsi--StackPolicyURLuntuk menentukan file yang berisi kebijakan tumpukan.CatatanUntuk mengonfigurasi kebijakan tumpukan untuk tumpukan yang sudah ada, Anda harus memiliki izin untuk memanggil operasi
SetStackPolicy.
Perbarui Sumber Daya yang Dilindungi
Untuk memperbarui sumber daya yang dilindungi dalam tumpukan, buat kebijakan sementara yang menggantikan kebijakan tumpukan yang ada dan mengizinkan pembaruan sumber daya. Kebijakan tumpukan sementara tidak secara permanen menggantikan kebijakan tumpukan.
Untuk memperbarui sumber daya yang dilindungi, Anda harus memiliki izin untuk memanggil operasi SetStackPolicy. Untuk informasi lebih lanjut tentang cara mengonfigurasi izin pada ROS, lihat Gunakan RAM untuk mengontrol akses ke sumber daya.
Perbarui sumber daya yang dilindungi menggunakan konsol ROS
Masuk ke konsol ROS.
Di panel navigasi kiri, klik Stacks.
Di bilah navigasi atas, pilih wilayah tumpukan yang diinginkan dari daftar drop-down wilayah. Dalam contoh ini, China (Hangzhou) dipilih.
Di halaman Stacks, temukan tumpukan dan klik Update di kolom Actions.
Di bagian Configure Stack Settings, ikuti petunjuk di layar untuk memilih Input Stack Policy.
Konfigurasikan kebijakan tumpukan sementara.
Kebijakan tumpukan sementara yang Anda konfigurasikan hanya berlaku untuk pembaruan ini. Dalam kebijakan sementara, tentukan pernyataan
Allowuntuk sumber daya yang dilindungi yang ingin Anda perbarui. Misalnya, jika Anda ingin memperbarui semua sumber daya yang dilindungi, tentukan kebijakan sementara yang mengizinkan semua pembaruan ke sumber daya.Statement: - Effect: Allow Action: Update:* Principal: '*' Resource: '*'Ikuti petunjuk di layar untuk menyelesaikan pembaruan tumpukan.
Perbarui sumber daya yang dilindungi menggunakan CLI Alibaba Cloud
Untuk memperbarui sumber daya yang dilindungi, gunakan salah satu metode berikut:
Panggil operasi UpdateStack.
Gunakan perintah
aliyun ros UpdateStackdan opsi--StackPolicyDuringUpdateBodyuntuk mengonfigurasi kebijakan tumpukan sementara yang mengizinkan pembaruan, atau gunakan perintahaliyun ros UpdateStackdan opsi--StackPolicyDuringUpdateURLuntuk menentukan file yang berisi kebijakan tumpukan sementara.Panggil operasi CreateChangeSet.
Gunakan perintah
aliyun ros CreateChangeSetdan opsi--StackPolicyDuringUpdateBodyuntuk mengonfigurasi kebijakan tumpukan sementara yang mengizinkan pembaruan, atau gunakan perintahaliyun ros CreateChangeSetdan opsi--StackPolicyDuringUpdateURLuntuk menentukan file yang berisi kebijakan tumpukan sementara.
CatatanROS hanya menerapkan kebijakan sementara selama pembaruan ini. Kebijakan tumpukan sementara tidak secara permanen menggantikan kebijakan tumpukan.
Perbarui Kebijakan Tumpukan
Jika Anda ingin melindungi sumber daya baru atau berhenti melindungi sumber daya yang sudah ada menggunakan kebijakan tumpukan, Anda dapat memperbarui kebijakan tumpukan. Misalnya, jika Anda ingin menambahkan database yang ingin Anda lindungi ke tumpukan, tambahkan pernyataan Deny untuk database tersebut ke kebijakan tumpukan. Untuk memperbarui kebijakan tumpukan, Anda harus memiliki izin untuk memanggil operasi SetStackPolicy.
Perbarui kebijakan tumpukan menggunakan konsol ROS
Masuk ke konsol ROS.
Di panel navigasi kiri, klik Stacks.
Di bilah navigasi atas, pilih wilayah tumpukan yang diinginkan dari daftar drop-down wilayah. Dalam contoh ini, China (Hangzhou) dipilih.
Di halaman Stacks, temukan tumpukan yang diinginkan dan klik ID tumpukan di kolom Stack Name.
Di bagian Stack Policy dari tab Stack Information, klik Edit.
Di kotak dialog Modify resource stack policy, masukkan isi kebijakan tumpukan baru Anda.
Klik OK.
Perbarui kebijakan tumpukan menggunakan CLI Alibaba Cloud
Gunakan perintah
aliyun ros SetStackPolicydan opsi--StackPolicyBodyuntuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintahaliyun ros SetStackPolicydan opsi--StackPolicyURLuntuk menentukan file yang berisi kebijakan tumpukan.Kebijakan berikut mengizinkan semua pembaruan pada semua sumber daya:
Statement: - Effect: Allow Action: Update:* Principal: '*' Resource: '*'Perbarui kebijakan tumpukan menggunakan CLI Alibaba Cloud saat Anda memperbarui tumpukan
Gunakan perintah
aliyun ros UpdateStackdan opsi--StackPolicyBodyuntuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintahaliyun ros UpdateStackdan opsi--StackPolicyURLuntuk menentukan file yang berisi kebijakan tumpukan.Gunakan perintah
aliyun ros CreateChangeSetdan opsi--StackPolicyBodyuntuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintahaliyun ros CreateChangeSetdan opsi--StackPolicyURLuntuk menentukan file yang berisi kebijakan tumpukan.
Contoh Kebijakan Tumpukan
Contoh kebijakan tumpukan berikut menunjukkan cara mencegah pembaruan pada semua atau sumber daya tumpukan tertentu, serta mencegah jenis tindakan pembaruan tertentu.
Cegah pembaruan pada semua sumber daya tumpukan
Kebijakan berikut menunjukkan cara menentukan pernyataan
Denyuntuk mencegah semua tindakan pembaruan pada semua sumber daya tumpukan:Statement: - Effect: Deny Action: Update:* Principal: '*' Resource: '*'Cegah pembaruan pada satu sumber daya (
WebServers)Contoh 1: Gunakan pernyataan
Denyuntuk mencegah pembaruan pada sumber dayaWebServers.Statement: - Effect: Allow Action: Update:* Principal: '*' Resource: '*' - Effect: Deny Action: Update:* Principal: '*' Resource: LogicalResourceId/WebServersBerikut ini menjelaskan elemen-elemen dalam kebijakan:
Allow: mengizinkan pembaruan pada semua sumber daya.Deny: menolak pembaruan pada sumber daya dengan ID logisWebServers.Principal: prinsipal-prinsipal yang menjadi target kebijakan. Hanya karakter wildcard (*) yang didukung. Karakter wildcard (*) menunjukkan bahwa kebijakan berlaku untuk semua prinsipal.
Contoh 2: Gunakan pernyataan
Allowuntuk mengizinkan pembaruan pada semua sumber daya kecuali sumber dayaWebServers.Statement: - Effect: Allow Action: Update:* Principal: '*' NotResource: LogicalResourceId/WebServersCatatanJika Anda tidak secara eksplisit mengizinkan pembaruan pada sumber daya tertentu saat mengonfigurasi kebijakan tumpukan, pembaruan pada sumber daya tersebut akan ditolak.
Jika Anda menerapkan kebijakan penolakan default, risiko mungkin terjadi. Jika ada pernyataan
Allowlain dalam kebijakan, seperti pernyataanAllowyang berisi karakter wildcard (*), izin pembaruan pada sumber daya tertentu mungkin diberikan secara tidak disengaja. Pernyataan Deny eksplisit menggantikan semua pernyataan Allow. Anda dapat menggunakan pernyataanDenyuntuk memastikan bahwa sumber daya dilindungi.
Cegah pembaruan pada semua instance dari jenis sumber daya
Kebijakan berikut menolak semua tindakan pembaruan pada instance ApsaraDB RDS. Anda dapat menggunakan pernyataan
Allowuntuk mengizinkan semua tindakan pembaruan pada semua sumber daya tumpukan, kecuali untuk sumber daya jenis ALIYUN::RDS::DBInstance. PernyataanAllowtidak berlaku untuk instance ApsaraDB RDS karena pernyataanDenymenggantikan pernyataan Allow.Statement: - Effect: Deny Action: Update:* Principal: '*' Resource: '*' Condition: StringEquals: ResourceType: - ALIYUN::RDS::DBInstance - Effect: Allow Action: Update:* Principal: '*' Resource: '*'Cegah pembaruan pada tumpukan bersarang
Kebijakan berikut menolak semua tindakan pembaruan pada tumpukan bersarang ROS. Anda dapat menggunakan pernyataan
Allowuntuk mengizinkan semua tindakan pembaruan pada semua sumber daya tumpukan, kecuali untuk sumber daya jenis ALIYUN::ROS::Stack. PernyataanAllowtidak berlaku untuk sumber daya tumpukan ROS karena pernyataanDenymenggantikan pernyataanAllow.Statement: - Effect: Deny Action: Update:* Principal: '*' Resource: '*' Condition: StringEquals: ResourceType: - ALIYUN::ROS::Stack - Effect: Allow Action: Update:* Principal: '*' Resource: '*'