All Products
Search
Document Center

Resource Orchestration Service:Kebijakan stack

Last Updated:Aug 21, 2026

Anda dapat menggunakan kebijakan stack untuk mencegah sumber daya stack diperbarui atau dihapus secara tidak disengaja selama pembaruan stack. Topik ini menjelaskan apa itu kebijakan stack serta cara mengatur dan memperbaruinya.

Informasi latar belakang

Kebijakan stack adalah dokumen berformat JSON atau YAML yang mendefinisikan aksi pembaruan yang dapat dilakukan pada sumber daya tertentu. Saat Anda membuat stack, pengguna mana pun yang memiliki izin untuk memperbarui stack tersebut dapat memperbarui semua sumber dayanya. Beberapa pembaruan mungkin memerlukan interupsi sumber daya. Setelah kebijakan stack ditetapkan, ROS melindungi semua sumber daya dalam stack tersebut. Anda kemudian dapat menambahkan pernyataan Allow eksplisit ke dalam kebijakan untuk mengizinkan pembaruan pada sumber daya tertentu.

Catatan
  • Anda hanya dapat menentukan satu kebijakan stack untuk setiap stack, tetapi satu kebijakan dapat melindungi beberapa sumber daya.

  • Selama pembaruan stack, ROS secara otomatis memperbarui sumber daya yang bergantung pada sumber daya lain yang diperbarui. Misalnya, ROS secara otomatis memperbarui sumber daya yang mereferensikan sumber daya lain yang diperbarui. Namun, jika sumber daya tersebut dikaitkan dengan kebijakan stack, Anda harus memiliki izin yang diperlukan untuk memperbaruinya.

Kebijakan stack hanya berlaku selama pembaruan stack. Berbeda dengan kebijakan RAM, kebijakan stack tidak menyediakan kontrol akses. Kebijakan stack berfungsi sebagai mekanisme pengaman untuk mencegah pembaruan tidak disengaja pada sumber daya stack tertentu.

Menentukan kebijakan stack

Jika Anda membuat stack tanpa kebijakan stack, semua aksi pembaruan diizinkan pada semua sumber dayanya. Untuk mencegah operasi pembaruan pada sumber daya stack, Anda dapat menentukan kebijakan stack dan menerapkannya ke stack tersebut. Anda dapat mengatur kebijakan stack saat pembuatan stack dengan menyediakan kebijakan dalam file teks atau memasukkannya secara langsung. Setelah kebijakan stack ditetapkan untuk suatu stack, pembaruan apa pun yang tidak secara eksplisit diizinkan akan ditolak secara default.

Anda dapat menentukan kebijakan stack dengan lima elemen: 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 penjelasan masing-masing elemen:

  • Effect

    Menentukan apakah aksi yang ditentukan pada sumber daya tertentu diizinkan atau ditolak. Anda hanya dapat menentukan Deny atau Allow. Contoh:

    Effect: Deny
    Catatan

    Jika kebijakan stack berisi pernyataan yang tumpang tindih (yang mengizinkan dan menolak pembaruan pada sumber daya yang sama), pernyataan Deny selalu mengesampingkan pernyataan Allow. Untuk memastikan bahwa sumber daya dilindungi, gunakan pernyataan Deny untuk sumber daya tersebut.

  • Action

    Aksi pembaruan yang diizinkan atau ditolak:

    • Update:Modify

      Operasi pembaruan yang memodifikasi sumber daya, yang mungkin atau tidak menyebabkan interupsi.

    • Update:Delete

      Aksi ini diperlukan ketika pembaruan template stack menghapus sumber daya.

    • Update:*

      Semua operasi pembaruan. Tanda bintang (*) adalah wildcard yang mewakili semua operasi pembaruan.

    Catatan

    Anda juga dapat menentukan Update:Replace untuk elemen Action. Fitur ini dicadangkan dan tidak didukung.

    Contoh berikut menunjukkan cara menentukan hanya operasi modifikasi dan penghapusan:

    Action:
      - Update:Modify
      - Update:Delete

    Untuk mengizinkan semua operasi pembaruan kecuali operasi tertentu, gunakan NotAction. Misalnya, untuk mengizinkan semua operasi pembaruan kecuali Update:Delete, gunakan NotAction.

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

    Entitas yang menjadi sasaran kebijakan. Hanya tanda bintang (*) yang didukung, yang menunjukkan bahwa kebijakan berlaku untuk semua principal.

  • Resource

    ID logis sumber daya yang menjadi sasaran kebijakan. Untuk menentukan jenis sumber daya, gunakan elemen Condition.

    Untuk menentukan sumber daya, gunakan ID logisnya. Contoh:

    Resource: - LogicalResourceId/myECS

    Anda dapat menggunakan tanda bintang (*) dalam ID logis. Misalnya, jika sumber daya terkait memiliki awalan ID logis yang sama, Anda dapat menggunakan awalan tersebut diikuti dengan wildcard (*) untuk menentukan semuanya.

    Resource: - LogicalResourceId/Prefix*

    Anda juga dapat menggunakan elemen Not untuk sumber daya. Misalnya, untuk mengizinkan pembaruan pada semua sumber daya kecuali satu, gunakan elemen NotResource untuk menentukan sumber daya yang dilindungi.

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

    Saat Anda menetapkan kebijakan stack, pembaruan apa pun yang tidak secara eksplisit diizinkan akan ditolak. Dengan mengizinkan pembaruan pada semua sumber daya kecuali sumber daya WebServers, pembaruan pada sumber daya WebServers ditolak.

  • Condition

    Jenis sumber daya yang menjadi sasaran kebijakan. Untuk menentukan ID logis sumber daya tertentu, gunakan elemen Resource.

    Anda dapat menentukan jenis sumber daya, seperti semua instans ECS dan ApsaraDB RDS.

    Statement:
      - Effect: Deny
        Principal: '*'
        Action: Update:*
        Resource: '*'
        Condition:
          StringEquals:
            ResourceType:
              - ALIYUN::ECS::Instance
              - ALIYUN::RDS::DBInstance
      - Effect: Allow
        Principal: '*'
        Action: Update:*
        Resource: '*'

    Pernyataan Allow memberikan izin pembaruan pada semua sumber daya, sedangkan pernyataan Deny menolak pembaruan pada instans ECS dan ApsaraDB RDS. Pernyataan Deny selalu mengesampingkan pernyataan Allow.

    Anda dapat menggunakan tanda bintang (*) untuk jenis sumber daya. Misalnya, Anda dapat menggunakan tanda bintang (*) untuk menolak izin pembaruan untuk semua sumber daya ECS, seperti instans, grup keamanan, dan subnet.

    Condition:
      StringLike:
        ResourceType:
          - ALIYUN::ECS::*
    Catatan

    Saat Anda menggunakan wildcard (*), Anda harus menggunakan kondisi StringLike.

Menetapkan kebijakan stack

Anda dapat menerapkan kebijakan stack selama pembuatan stack menggunakan konsol ROS atau Alibaba Cloud CLI. Untuk menerapkan kebijakan ke stack yang sudah ada, Anda harus menggunakan Alibaba Cloud CLI. Setelah kebijakan diterapkan, kebijakan tersebut tidak dapat dihapus dari stack, tetapi dapat diperbarui menggunakan CLI.

  • Menetapkan kebijakan stack selama pembuatan stack (konsol)

    1. Masuk ke Konsol ROS.

    2. Di panel navigasi sebelah kiri, klik Stacks.

    3. Di bilah navigasi atas, pilih wilayah dari daftar drop-down wilayah, misalnya China (Hangzhou).

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

    5. Di wizard Create Stack, pada halaman Select Template, pilih template dan klik Next.

    6. Di wizard Create Stack, pada halaman Configure Parameters, konfigurasikan Stack Name dan parameter template.

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

    8. Konfigurasikan kebijakan stack dan klik Next.

      • Input Stack Policy: Masukkan kebijakan stack secara langsung.

      • Upload File: Unggah file JSON atau YAML yang berisi kebijakan stack.

    9. Di halaman Compliance Precheck, selesaikan pemeriksaan kepatuhan dan klik Next.

      Catatan

      Fitur Compliance Precheck hanya tersedia untuk beberapa sumber daya. Untuk informasi lebih lanjut, lihat Compliance Precheck.

      1. Di bagian Detection Rule, tambahkan aturan deteksi.

        Anda dapat memilih aturan deteksi berdasarkan sumber daya cloud dalam template ROS.

      2. Klik Check.

        Anda dapat memodifikasi template berdasarkan solusi remediasi yang disarankan untuk sumber daya yang tidak sesuai guna memastikan kepatuhan sumber daya.

    10. Ikuti petunjuk untuk menyelesaikan pembuatan stack.

  • Menetapkan kebijakan stack selama pembuatan stack (CLI)

    Anda dapat menggunakan salah satu dari dua metode berikut untuk menetapkan kebijakan stack:

    • Panggil operasi CreateStack

      Gunakan perintah aliyun ros CreateStack dengan parameter --StackPolicyBody untuk menyediakan kebijakan secara langsung, atau gunakan perintah aliyun ros CreateStack dengan parameter --StackPolicyURL untuk menentukan file yang berisi kebijakan.

    • Panggil operasi CreateChangeSet

      Gunakan perintah aliyun ros CreateChangeSet dengan parameter --StackPolicyBody untuk menyediakan kebijakan secara langsung, atau gunakan perintah aliyun ros CreateChangeSet dengan parameter --StackPolicyURL untuk menentukan file yang berisi kebijakan.

  • Menetapkan kebijakan stack pada stack yang sudah ada (hanya CLI)

    Gunakan perintah aliyun ros SetStackPolicy dengan parameter --StackPolicyBody untuk menyediakan kebijakan secara langsung, atau gunakan perintah aliyun ros SetStackPolicy dengan parameter --StackPolicyURL untuk menentukan file yang berisi kebijakan.

    Catatan

    Untuk menambahkan kebijakan ke stack yang sudah ada, Anda harus memiliki izin untuk operasi SetStackPolicy.

Memperbarui sumber daya yang dilindungi

Untuk memperbarui sumber daya yang dilindungi, Anda dapat membuat kebijakan sementara yang mengesampingkan kebijakan stack dan mengizinkan pembaruan pada sumber daya tersebut. Kebijakan pengesampingan tidak mengubah kebijakan stack secara permanen.

Untuk memperbarui sumber daya yang dilindungi, Anda harus memiliki izin untuk operasi SetStackPolicy. Untuk informasi tentang cara mengatur izin ROS, lihat Use RAM to control resource access.

  • Memperbarui sumber daya yang dilindungi (konsol)

    1. Masuk ke Konsol ROS.

    2. Di panel navigasi sebelah kiri, klik Stacks.

    3. Di bilah navigasi atas, pilih wilayah dari daftar drop-down wilayah, misalnya China (Hangzhou).

    4. Di halaman Stacks, temukan stack yang dituju dan klik Update di kolom Actions.

    5. Di bagian Configure Stack Settings, pilih Input Stack Policy sesuai permintaan.

    6. Konfigurasikan kebijakan stack sementara.

      Tentukan kebijakan stack sementara yang hanya berlaku untuk pembaruan saat ini. Kebijakan pengesampingan harus menentukan pernyataan Allow untuk sumber daya yang dilindungi yang ingin Anda perbarui. Misalnya, untuk memperbarui semua sumber daya yang dilindungi, Anda dapat menentukan kebijakan pengesampingan sementara yang mengizinkan semua pembaruan.

      Statement:
        - Effect: Allow
          Action: Update:*
          Principal: '*'
          Resource: '*'
    7. Ikuti petunjuk untuk menyelesaikan pembaruan stack.

  • Memperbarui sumber daya yang dilindungi (CLI)

    Anda dapat menggunakan salah satu dari dua metode berikut untuk memperbarui sumber daya yang dilindungi:

    • Panggil operasi UpdateStack

      Gunakan perintah aliyun ros UpdateStack dengan parameter --StackPolicyDuringUpdateBody untuk menyediakan kebijakan secara langsung, atau gunakan perintah aliyun ros UpdateStack dengan parameter --StackPolicyDuringUpdateURL untuk menentukan file yang berisi kebijakan.

    • Panggil operasi CreateChangeSet

      Gunakan perintah aliyun ros CreateChangeSet dengan parameter --StackPolicyDuringUpdateBody untuk menyediakan kebijakan secara langsung, atau gunakan perintah aliyun ros CreateChangeSet dengan parameter --StackPolicyDuringUpdateURL untuk menentukan file yang berisi kebijakan.

    Catatan

    ROS menerapkan kebijakan pengesampingan hanya untuk pembaruan saat ini; kebijakan tersebut tidak mengubah kebijakan stack secara permanen.

Memperbarui kebijakan stack

Anda dapat memperbarui kebijakan stack untuk melindungi sumber daya tambahan atau menghapus perlindungan dari sumber daya yang sudah ada. Misalnya, saat Anda menambahkan database yang ingin dilindungi ke dalam stack, tambahkan pernyataan Deny untuk database tersebut ke dalam kebijakan stack. Untuk memperbarui kebijakan, Anda harus memiliki izin untuk operasi SetStackPolicy.

  • Memperbarui kebijakan stack (konsol)

    1. Masuk ke Konsol ROS.

    2. Di panel navigasi sebelah kiri, klik Stacks.

    3. Di bilah navigasi atas, pilih wilayah dari daftar drop-down wilayah, misalnya China (Hangzhou).

    4. Di halaman Stacks, klik ID stack yang dituju di kolom Stack Name.

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

    6. Di kotak dialog Modify resource stack policy, masukkan kebijakan stack.

    7. Klik OK.

  • Memperbarui kebijakan stack (CLI)

    Gunakan perintah aliyun ros SetStackPolicy dengan parameter --StackPolicyBody untuk menyediakan kebijakan secara langsung, atau gunakan perintah aliyun ros SetStackPolicy dengan parameter --StackPolicyURL untuk menentukan file yang berisi kebijakan.

    Kebijakan berikut mengizinkan semua pembaruan pada semua sumber daya:

    Statement:
      - Effect: Allow
        Action: Update:*
        Principal: '*'
        Resource: '*'
  • Memperbarui kebijakan stack selama pembaruan stack (CLI)

    Gunakan perintah aliyun ros UpdateStack dengan parameter --StackPolicyBody untuk menyediakan kebijakan secara langsung, atau gunakan perintah aliyun ros UpdateStack dengan parameter --StackPolicyURL untuk menentukan file yang berisi kebijakan.

    Gunakan perintah aliyun ros CreateChangeSet dengan parameter --StackPolicyBody untuk menyediakan kebijakan secara langsung, atau gunakan perintah aliyun ros CreateChangeSet dengan parameter --StackPolicyURL untuk menentukan file yang berisi kebijakan.

Contoh kebijakan stack

Contoh kebijakan berikut menunjukkan cara mencegah pembaruan pada semua sumber daya stack, sumber daya tertentu, dan jenis pembaruan tertentu.

  • Mencegah pembaruan pada semua sumber daya stack

    Untuk mencegah pembaruan pada semua sumber daya stack, kebijakan berikut menentukan pernyataan Deny untuk semua aksi pembaruan pada semua sumber daya.

    Statement:
      - Effect: Deny
        Action: Update:*
        Principal: '*'
        Resource: '*'
  • Mencegah 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

      Kebijakan ini terdiri dari pernyataan berikut:

      • Allow: Mengizinkan semua aksi pembaruan pada semua sumber daya.

      • Deny: Menolak semua aksi pembaruan untuk sumber daya dengan ID logis WebServers.

      • Principal: Entitas yang menjadi sasaran kebijakan. Hanya tanda bintang (*) yang didukung, yang menunjukkan bahwa kebijakan berlaku untuk semua entitas.

    • Contoh 2: Gunakan pernyataan Allow untuk mengizinkan pembaruan pada semua sumber daya kecuali WebServers.

      Statement:
        - Effect: Allow
          Action: Update:*
          Principal: '*'
          NotResource: LogicalResourceId/WebServers
      Catatan
      • Saat Anda menetapkan kebijakan stack, kecuali secara eksplisit diizinkan, pembaruan pada sumber daya ditolak secara default.

      • Mengandalkan penolakan default bisa berisiko. Jika kebijakan Anda memiliki pernyataan Allow yang luas di tempat lain, seperti pernyataan Allow yang menggunakan wildcard, Anda mungkin secara tidak sengaja memberikan izin pembaruan pada sumber daya. Karena pernyataan Deny eksplisit selalu mengesampingkan pernyataan Allow, menggunakan pernyataan Deny adalah cara paling aman untuk memastikan bahwa sumber daya dilindungi.

  • Mencegah pembaruan pada semua instans jenis sumber daya

    Kebijakan berikut menolak semua aksi pembaruan untuk jenis sumber daya instans ApsaraDB RDS. Kebijakan ini menggunakan pernyataan Allow untuk mengizinkan semua aksi pembaruan pada semua sumber daya stack lainnya. Pernyataan Allow tidak berlaku untuk sumber daya instans ApsaraDB RDS karena pernyataan Deny selalu mengesampingkan pernyataan Allow.

    Statement:
      - Effect: Deny
        Action: Update:*
        Principal: '*'
        Resource: '*'
        Condition:
          StringEquals:
            ResourceType:
              - ALIYUN::RDS::DBInstance
      - Effect: Allow
        Action: Update:*
        Principal: '*'
        Resource: '*'
  • Mencegah pembaruan pada stack bersarang

    Kebijakan berikut menolak semua aksi pembaruan untuk jenis sumber daya stack ROS, yang merepresentasikan stack bersarang. Kebijakan ini menggunakan pernyataan Allow untuk mengizinkan semua aksi pembaruan pada semua sumber daya stack lainnya. Pernyataan Allow tidak berlaku untuk sumber daya stack ROS karena pernyataan Deny selalu mengesampingkan pernyataan Allow.

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