全部产品
Search
文档中心

Resource Orchestration Service:Kebijakan Tumpukan

更新时间:Jul 02, 2025

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.

Catatan
  • 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:

  • Effect

    Menentukan apakah tindakan pada sumber daya diizinkan atau ditolak. Nilai valid: Deny dan Allow. Contoh kode:

    Effect: Deny
    Catatan

    Jika kebijakan tumpukan mencakup pernyataan Allow dan Deny, pernyataan Deny menggantikan pernyataan Allow. Gunakan pernyataan Deny jika ingin melindungi sumber daya dari pembaruan.

  • Action

    Tindakan pembaruan yang ditolak atau diizinkan. Nilai valid:

    • Update:Modify

      Tindakan pembaruan tanpa gangguan atau dengan gangguan tertentu ketika perubahan diterapkan pada sumber daya.

    • Update:Delete

      Tindakan 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.

    Catatan

    Update:Replace menentukan 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:Delete

    Untuk mengizinkan semua tindakan pembaruan kecuali tindakan tertentu, gunakan NotAction. Misalnya, atur NotAction ke Update:Delete untuk mengizinkan semua tindakan pembaruan kecuali tindakan Update:Delete.

    Statement:
      - Effect: Allow
        NotAction: Update:Delete
        Principal: '*'
        Resource: '*'
  • Principal

    Prinsipal-prinsipal yang menjadi target kebijakan ini. Atur nilai ke karakter wildcard (*). Karakter wildcard (*) menunjukkan bahwa kebijakan berlaku untuk semua prinsipal.

  • Resource

    ID 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/myECS

    ID logis dapat berisi karakter wildcard (*). Misalnya, gunakan karakter wildcard (*) untuk mencocokkan semua ID logis dengan awalan tertentu.

    Resource: - LogicalResourceId/Prefix*

    Anda dapat menambahkan awalan Not ke elemen Resource. Misalnya, gunakan elemen NotResource untuk melindungi sumber daya tertentu dari pembaruan.

    Statement:
      - Effect: Allow
        Action: Update:*
        Principal: '*'
        NotResource: LogicalResourceId/WebServers

    Jika 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 daya WebServers akan ditolak.

  • Condition

    Jenis 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 Allow mengizinkan pembaruan ke semua sumber daya. Pernyataan Deny menolak pembaruan ke instance ECS dan ApsaraDB RDS. Pernyataan Deny menggantikan 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::*
    Catatan

    Saat 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

    1. Masuk ke konsol ROS.

    2. Di panel navigasi kiri, klik Stacks.

    3. Di bilah navigasi atas, pilih wilayah tempat Anda ingin membuat tumpukan dari daftar drop-down wilayah. Dalam contoh ini, China (Hangzhou) dipilih.

    4. Di halaman Stacks, klik Create Stack dan pilih Use ROS dari daftar drop-down.

    5. Pada langkah Select Template dari wizard Create Stack, tentukan template sesuai kebutuhan bisnis Anda dan klik Next.

    6. Pada langkah Configure Parameters dari wizard Create Stack, ikuti petunjuk di layar untuk mengonfigurasi parameter Stack Name, serta parameter di bagian Configure Template Parameters.

    7. Di bagian Configure Stack Settings, atur parameter Stack Policy ke Input Stack Policy.

    8. 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.

    9. Pada langkah Compliance Precheck, lengkapi pemeriksaan kepatuhan awal dan klik Next.

      Catatan

      Hanya sumber daya tertentu yang mendukung fitur pemeriksaan kepatuhan awal. Untuk informasi lebih lanjut, lihat Pemeriksaan Kepatuhan Awal.

      1. Di bagian Evaluate Rules, tambahkan aturan kepatuhan.

        Tambahkan aturan kepatuhan berdasarkan sumber daya cloud dalam template ROS.

      2. Klik Evaluate.

        Modifikasi konten template berdasarkan saran yang diberikan untuk memperbaiki sumber daya yang tidak valid. Ini memastikan kepatuhan sumber daya.

    10. 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 CreateStack dan opsi --StackPolicyBody untuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintah aliyun ros CreateStack dan opsi --StackPolicyURL untuk menentukan file yang berisi kebijakan tumpukan.

    • Panggil operasi CreateChangeSet.

      Gunakan perintah aliyun ros CreateChangeSet dan opsi --StackPolicyBody untuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintah aliyun ros CreateChangeSet dan opsi --StackPolicyURL untuk 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 SetStackPolicy dan opsi --StackPolicyBody untuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintah aliyun ros SetStackPolicy dan opsi --StackPolicyURL untuk menentukan file yang berisi kebijakan tumpukan.

    Catatan

    Untuk 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

    1. Masuk ke konsol ROS.

    2. Di panel navigasi kiri, klik Stacks.

    3. Di bilah navigasi atas, pilih wilayah tumpukan yang diinginkan dari daftar drop-down wilayah. Dalam contoh ini, China (Hangzhou) dipilih.

    4. Di halaman Stacks, temukan tumpukan dan klik Update di kolom Actions.

    5. Di bagian Configure Stack Settings, ikuti petunjuk di layar untuk memilih Input Stack Policy.

    6. Konfigurasikan kebijakan tumpukan sementara.

      Kebijakan tumpukan sementara yang Anda konfigurasikan hanya berlaku untuk pembaruan ini. Dalam kebijakan sementara, tentukan pernyataan Allow untuk 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: '*'
    7. 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 UpdateStack dan opsi --StackPolicyDuringUpdateBody untuk mengonfigurasi kebijakan tumpukan sementara yang mengizinkan pembaruan, atau gunakan perintah aliyun ros UpdateStack dan opsi --StackPolicyDuringUpdateURL untuk menentukan file yang berisi kebijakan tumpukan sementara.

    • Panggil operasi CreateChangeSet.

      Gunakan perintah aliyun ros CreateChangeSet dan opsi --StackPolicyDuringUpdateBody untuk mengonfigurasi kebijakan tumpukan sementara yang mengizinkan pembaruan, atau gunakan perintah aliyun ros CreateChangeSet dan opsi --StackPolicyDuringUpdateURL untuk menentukan file yang berisi kebijakan tumpukan sementara.

    Catatan

    ROS 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

    1. Masuk ke konsol ROS.

    2. Di panel navigasi kiri, klik Stacks.

    3. Di bilah navigasi atas, pilih wilayah tumpukan yang diinginkan dari daftar drop-down wilayah. Dalam contoh ini, China (Hangzhou) dipilih.

    4. Di halaman Stacks, temukan tumpukan yang diinginkan dan klik ID tumpukan di kolom Stack Name.

    5. Di bagian Stack Policy dari tab Stack Information, klik Edit.

    6. Di kotak dialog Modify resource stack policy, masukkan isi kebijakan tumpukan baru Anda.

    7. Klik OK.

  • Perbarui kebijakan tumpukan menggunakan CLI Alibaba Cloud

    Gunakan perintah aliyun ros SetStackPolicy dan opsi --StackPolicyBody untuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintah aliyun ros SetStackPolicy dan opsi --StackPolicyURL untuk 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 UpdateStack dan opsi --StackPolicyBody untuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintah aliyun ros UpdateStack dan opsi --StackPolicyURL untuk menentukan file yang berisi kebijakan tumpukan.

    Gunakan perintah aliyun ros CreateChangeSet dan opsi --StackPolicyBody untuk mengonfigurasi kebijakan tumpukan yang mengizinkan pembaruan, atau gunakan perintah aliyun ros CreateChangeSet dan opsi --StackPolicyURL untuk 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 Deny untuk 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 Deny untuk mencegah pembaruan pada sumber daya WebServers.

      Statement:
        - Effect: Allow
          Action: Update:*
          Principal: '*'
          Resource: '*'
        - Effect: Deny
          Action: Update:*
          Principal: '*'
          Resource: LogicalResourceId/WebServers

      Berikut ini menjelaskan elemen-elemen dalam kebijakan:

      • Allow: mengizinkan pembaruan pada semua sumber daya.

      • Deny: menolak pembaruan pada sumber daya dengan ID logis WebServers.

      • 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 Allow untuk mengizinkan pembaruan pada semua sumber daya kecuali sumber daya WebServers.

      Statement:
        - Effect: Allow
          Action: Update:*
          Principal: '*'
          NotResource: LogicalResourceId/WebServers
      Catatan
      • Jika 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 Allow lain dalam kebijakan, seperti pernyataan Allow yang berisi karakter wildcard (*), izin pembaruan pada sumber daya tertentu mungkin diberikan secara tidak disengaja. Pernyataan Deny eksplisit menggantikan semua pernyataan Allow. Anda dapat menggunakan pernyataan Deny untuk 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 Allow untuk mengizinkan semua tindakan pembaruan pada semua sumber daya tumpukan, kecuali untuk sumber daya jenis ALIYUN::RDS::DBInstance. Pernyataan Allow tidak berlaku untuk instance ApsaraDB RDS karena pernyataan Deny menggantikan 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 Allow untuk mengizinkan semua tindakan pembaruan pada semua sumber daya tumpukan, kecuali untuk sumber daya jenis ALIYUN::ROS::Stack. Pernyataan Allow tidak berlaku untuk sumber daya tumpukan ROS karena pernyataan Deny menggantikan pernyataan Allow.

    Statement:
      - Effect: Deny
        Action: Update:*
        Principal: '*'
        Resource: '*'
        Condition:
          StringEquals:
            ResourceType:
              - ALIYUN::ROS::Stack
      - Effect: Allow
        Action: Update:*
        Principal: '*'
        Resource: '*'