

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mencegah pembaruan ke sumber daya tumpukan
<a name="protect-stack-resources"></a>

Saat Anda membuat tumpukan, semua tindakan pembaruan diizinkan di semua sumber daya. Secara default, siapa pun yang memiliki izin pembaruan tumpukan dapat memperbarui semua sumber daya di tumpukan. Selama pembaruan, beberapa sumber daya mungkin memerlukan gangguan atau diganti sepenuhnya, menghasilkan penyimpanan fisik IDs atau yang sama sekali baru. Anda dapat mencegah sumber daya tumpukan tidak sengaja diperbarui atau dihapus selama pembaruan tumpukan dengan menggunakan kebijakan tumpukan . Kebijakan tumpukan adalah dokumen JSON yang mendefinisikan tindakan pembaruan yang dapat dilakukan pada sumber daya yang ditentukan.

Setelah Anda menetapkan kebijakan tumpukan, semua sumber daya di tumpukan dilindungi secara default. Untuk mengizinkan pembaruan pada sumber daya tertentu, Anda menentukan pernyataan eksplisit `Allow` untuk sumber daya tersebut dalam kebijakan tumpukan Anda. Anda hanya dapat menentukan satu kebijakan tumpukan per tumpukan, tetapi, Anda dapat melindungi beberapa sumber daya dalam satu kebijakan. Kebijakan tumpukan berlaku untuk semua pengguna CloudFormation yang mencoba untuk memperbarui tumpukan. Anda tidak dapat mengaitkan kebijakan tumpukan yang berbeda dengan pengguna yang berbeda.

Kebijakan tumpukan berlaku hanya selama pembaruan tumpukan. Itu tidak menyediakan kontrol akses seperti kebijakan AWS Identity and Access Management (IAM). Gunakan kebijakan tumpukan hanya sebagai mekanisme gagal-aman untuk mencegah pembaruan yang tidak disengaja untuk sumber daya tumpukan tertentu. Untuk mengontrol akses ke AWS sumber daya atau tindakan, gunakan IAM.

**Topics**
+ [Contoh kebijakan tumpukan](#stack-policy-intro-example)
+ [Menetapkan kebijakan tumpukan](#stack-policy-reference)
+ [Mengatur kebijakan tumpukan](#protect-stack-resources-protecting)
+ [Memperbarui sumber daya dilindungi](#protect-stack-resources-updating)
+ [Mengubah kebijakan tumpukan](#protect-stack-resources-modifying)
+ [Lebih banyak contoh kebijakan tumpukan](#stack-policy-samples)

## Contoh kebijakan tumpukan
<a name="stack-policy-intro-example"></a>

Kebijakan tumpukan contoh berikut mencegah pembaruan ke sumber daya `ProductionDatabase`:

```
{
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "*"
    },
    {
      "Effect" : "Deny",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "LogicalResourceId/ProductionDatabase"
    }
  ]
}
```

Saat Anda menetapkan kebijakan tumpukan, semua sumber daya dilindungi secara default. Untuk mengizinkan pembaruan pada semua sumber daya, kami menambahkan pernyataan `Allow` yang mengizinkan semua tindakan pada semua sumber daya. Meskipun pernyataan `Allow` menentukan semua sumber daya, pernyataan eksplisit `Deny` menimpanya untuk sumber daya dengan ID logis `ProductionDatabase`. Pernyataan `Deny` ini mencegah semua tindakan pembaruan, seperti penggantian atau penghapusan, pada sumber daya `ProductionDatabase`.

Elemen `Principal` diperlukan, tetapi hanya mendukung wild card (`*`), yang berarti bahwa pernyataan tersebut berlaku untuk semua [yang utama](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#principal).

**catatan**  
Selama pembaruan tumpukan, CloudFormation secara otomatis memperbarui sumber daya yang bergantung pada sumber daya yang diperbarui lainnya. Misalnya, CloudFormation memperbarui sumber daya yang mereferensikan sumber daya yang diperbarui. CloudFormation Tidak membuat perubahan fisik, seperti ID sumber daya, untuk memperbarui sumber daya secara otomatis, tetapi jika kebijakan tumpukan dikaitkan dengan sumber daya tersebut, Anda harus memiliki izin untuk memperbaruinya.

## Menetapkan kebijakan tumpukan
<a name="stack-policy-reference"></a>

Saat Anda membuat tumpukan, tidak ada kebijakan tumpukan yang diatur, jadi semua tindakan pembaruan diizinkan di semua sumber daya. Untuk melindungi sumber daya tumpukan dari tindakan pembaruan, tentukan kebijakan tumpukan, lalu tetapkan di tumpukan Anda. Kebijakan tumpukan adalah dokumen JSON yang mendefinisikan tindakan pembaruan CloudFormation tumpukan yang dapat dilakukan CloudFormation pengguna dan sumber daya yang diterapkan tindakan tersebut. Anda mengatur kebijakan tumpukan saat Anda membuat tumpukan, dengan menentukan file teks yang berisi kebijakan tumpukan Anda atau mengetiknya. Saat Anda menetapkan kebijakan tumpukan di tumpukan Anda, pembaruan apa pun yang tidak diizinkan secara eksplisit akan ditolak secara default.

Anda menentukan kebijakan tumpukan dengan lima elemen: `Effect`, `Action`, `Principal`, `Resource`, dan `Condition`. Kode semu berikut menunjukkan sintaks kebijakan tumpukan.

```
{
  "Statement" : [
    {
      "Effect" : "Deny_or_Allow",
      "Action" : "update_actions",
      "Principal" : "*",
      "Resource" : "LogicalResourceId/resource_logical_ID",
      "Condition" : {
        "StringEquals_or_StringLike" : {
          "ResourceType" : [resource_type, ...]
        }
      }
    }
  ]
}
```

`Effect`  
Menentukan apakah tindakan yang Anda tentukan ditolak atau diizinkan pada sumber daya yang Anda tentukan. Anda hanya dapat menentukan `Deny` atau `Allow`, seperti:  

```
"Effect" : "Deny"
```
Jika kebijakan tumpukan menyertakan pernyataan yang tumpang tindih (mengizinkan dan menolak pembaruan pada sumber daya), pernyataan `Deny` selalu menimpa pernyataan`Allow`. Untuk memastikan bahwa sumber daya dilindungi, gunakan pernyataan `Deny` untuk sumber daya tersebut.

Tindakan  
Menentukan tindakan pembaruan yang ditolak atau diizinkan:    
Pembaruan:Ubah  
Menentukan tindakan pembaruan selama sumber daya mungkin tidak mengalami gangguan atau beberapa gangguan saat perubahan diterapkan. Semua sumber daya mempertahankan fisik mereka IDs.  
Pembaruan:Ganti  
Menentukan tindakan pembaruan selama sumber daya diciptakan kembali. CloudFormation menciptakan sumber daya baru dengan pembaruan tertentu dan kemudian menghapus sumber daya lama. Karena sumber daya diciptakan kembali, ID fisik sumber daya baru mungkin berbeda.  
Pembaruan:Hapus  
Menentukan tindakan pembaruan selama sumber daya yang dihapus. Pembaruan yang benar-benar menghapus sumber daya dari template tumpukan memerlukan tindakan ini.  
Perbarui:\$1  
Menentukan semua tindakan pembaruan. Tanda bintang adalah wild card yang mewakili semua tindakan pembaruan.
Contoh berikut menunjukkan cara menentukan hanya mengganti dan menghapus tindakan:  

```
"Action" : ["Update:Replace", "Update:Delete"]
```
Untuk mengizinkan semua tindakan pembaruan kecuali satu, gunakan `NotAction`. Misalnya, untuk mengizinkan semua tindakan pembaruan kecuali untuk `Update:Delete`, gunakan `NotAction`, seperti yang ditunjukkan dalam contoh ini:  

```
{
  "Statement" : [
    {
      "Effect" : "Allow",
      "NotAction" : "Update:Delete",
      "Principal": "*",
      "Resource" : "*"
    }
  ]
}
```

Utama  
Eleme `Principal` menentukan entitas tempat kebijakan tersebut diterapkan. Elemen ini diperlukan, tetapi hanya mendukung wild card (`*`), yang berarti bahwa pernyataan tersebut berlaku untuk semua yang [utama](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#principal).

Sumber daya  
Menentukan logika IDs sumber daya yang berlaku untuk kebijakan tersebut. Untuk menentukan jenis sumber daya, gunakan `Condition` elemen.  
Untuk menentukan sumber daya tunggal, gunakan ID logisnya. Contoh:  

```
"Resource" : ["LogicalResourceId/myEC2instance"]
```
Anda dapat menggunakan kartu liar dengan logis IDs. Misalnya, jika Anda menggunakan prefiks ID logis umum untuk semua sumber daya terkait, Anda dapat menentukan semuanya dengan wild card:  

```
"Resource" : ["LogicalResourceId/CriticalResource*"]
```
Anda juga dapat menggunakan elemen `Not` dengan sumber daya. Misalnya, untuk mengizinkan pembaruan ke semua sumber daya kecuali untuk satu, gunakan elemen `NotResource` untuk melindungi sumber daya tersebut:  

```
{
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : "Update:*",
      "Principal": "*",
      "NotResource" : "LogicalResourceId/ProductionDatabase"
    }
  ]
}
```
Saat Anda menetapkan kebijakan tumpukan, pembaruan apa pun yang tidak diizinkan secara eksplisit akan ditolak. Dengan mengizinkan pembaruan untuk semua sumber daya kecuali untuk sumber daya `ProductionDatabase`, Anda menolak pembaruan untuk sumber daya `ProductionDatabase`.

Ketentuan  
Menentukan jenis sumber daya tempat kebijakan tersebut diterapkan. Untuk menentukan logika IDs sumber daya tertentu, gunakan `Resource` elemen.  
Anda dapat menentukan jenis sumber daya, seperti semua instans EC2 dan RDS DB, seperti yang ditunjukkan dalam contoh berikut:  

```
{
  "Statement" : [
  {
    "Effect" : "Deny",
    "Principal" : "*",
    "Action" : "Update:*",
    "Resource" : "*",
    "Condition" : {
      "StringEquals" : {
        "ResourceType" : ["AWS::EC2::Instance", "AWS::RDS::DBInstance"]
      }
    }
  },
  {
    "Effect" : "Allow",
    "Principal" : "*",
    "Action" : "Update:*",
    "Resource" : "*"
  }
  ]
}
```
Pernyataan `Allow` memberikan izin pembaruan ke semua sumber daya dan pernyataan `Deny` menolak pembaruan untuk instans DB EC2 dan RDS. Pernyataan `Deny` selalu menimpa tindakan izinkan.  
Anda dapat menggunakan wild card dengan jenis sumber daya. Misalnya, Anda dapat menolak izin pembaruan ke semua sumber daya Amazon EC2—seperti instans, grup keamanan, dan subnet—dengan menggunakan wild card, seperti yang ditunjukkan pada contoh berikut:  

```
"Condition" : {
  "StringLike" : {
    "ResourceType" : ["AWS::EC2::*"]
  }
}
```
Anda harus menggunakan syarat `StringLike` ketika Anda menggunakan wild card.

## Mengatur kebijakan tumpukan
<a name="protect-stack-resources-protecting"></a>

Anda dapat menggunakan konsol atau AWS CLI menerapkan kebijakan tumpukan saat membuat tumpukan. Anda juga dapat menggunakan AWS CLI untuk menerapkan kebijakan tumpukan ke tumpukan yang ada. Setelah menerapkan kebijakan tumpukan, Anda tidak dapat menghapusnya dari tumpukan, tetapi Anda dapat menggunakannya AWS CLI untuk memodifikasinya.

Kebijakan tumpukan berlaku untuk semua CloudFormation pengguna yang mencoba memperbarui tumpukan. Anda tidak dapat mengaitkan kebijakan tumpukan yang berbeda dengan pengguna yang berbeda.

Untuk informasi selengkapnya tentang kebijakan tumpukan tulis, lihat [Menetapkan kebijakan tumpukan](#stack-policy-reference).

**Untuk mengatur kebijakan tumpukan saat Anda membuat tumpukan (konsol)**

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pada bilah navigasi di bagian atas layar, pilih Wilayah AWS untuk membuat tumpukan.

1. Pada halaman **CloudFormation Stacks**, pilih **Create stack**.

1. Dalam panduan Membuat Tumpukan, di halaman **Mengkonfigurasi opsi tumpukan**, perluas bagian **Lanjutan** dan kemudian pilih **Kebijakan tumpukan**.

1. Tentukan kebijakan tumpukan:
   + Untuk menulis kebijakan secara langsung di konsol, pilih **Masukkan kebijakan tumpukan**, kemudian ketikkan kebijakan tumpukan secara langsung di kolom teks.
   + Untuk menggunakan kebijakan yang ditetapkan dalam file terpisah, pilih **Unggah file**, kemudian **Pilih file**untuk memilih file yang berisi kebijakan tumpukan.

**Untuk mengatur kebijakan tumpukan saat Anda membuat tumpukan (AWS CLI)**
+ Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) dengan opsi `--stack-policy-body` untuk mengetik dalam kebijakan yang dimodifikasi atau opsi `--stack-policy-url` untuk menentukan file yang berisi kebijakan. 

**Untuk menetapkan kebijakan tumpukan pada tumpukan yang ada (AWS CLI hanya)**
+ Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-stack-policy.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-stack-policy.html) dengan opsi `--stack-policy-body` untuk mengetik dalam kebijakan yang dimodifikasi atau opsi `--stack-policy-url` untuk menentukan file yang berisi kebijakan.
**catatan**  
Untuk menambahkan kebijakan ke tumpukan yang ada, Anda harus memiliki izin untuk CloudFormation [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetStackPolicy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetStackPolicy.html)tindakan tersebut.

## Memperbarui sumber daya dilindungi
<a name="protect-stack-resources-updating"></a>

Untuk memperbarui sumber daya yang dilindungi, buat kebijakan sementara yang menimpa kebijakan tumpukan dan memungkinkan pembaruan pada sumber daya tersebut. Tentukan kebijakan timpa saat Anda memperbarui tumpukan. Kebijakan timpa tidak secara permanen mengubah kebijakan tumpukan.

Untuk memperbarui sumber daya yang dilindungi, Anda harus memiliki izin untuk menggunakan CloudFormation [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetStackPolicy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetStackPolicy.html)tindakan. Untuk informasi tentang mengatur izin CloudFormation, lihat [Kontrol CloudFormation akses dengan AWS Identity and Access Management](control-access-with-iam.md).

**catatan**  
Selama pembaruan tumpukan, CloudFormation secara otomatis memperbarui sumber daya yang bergantung pada sumber daya yang diperbarui lainnya. Misalnya, CloudFormation memperbarui sumber daya yang mereferensikan sumber daya yang diperbarui. CloudFormation Tidak membuat perubahan fisik, seperti ID sumber daya, untuk memperbarui sumber daya secara otomatis, tetapi jika kebijakan tumpukan dikaitkan dengan sumber daya tersebut, Anda harus memiliki izin untuk memperbaruinya.

**Untuk memperbarui sumber daya yang dilindungi (konsol)**

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pilih tumpukan yang ingin Anda perbarui, pilih **Tindakan tumpukan**, lalu pilih **Perbarui tumpukan**.

1. Jika Anda *belum* mengubah tumpukan templat, pilih **Gunakan templat saat ini**, lalu klik **Selanjutnya**. Jika Anda telah mengubah templat, pilih **Ganti templat saat ini** dan tentukan lokasi templat yang diperbarui di bagian **Tentukan templat**:
   + Untuk templat yang disimpan secara lokal di komputer Anda, pilih **Unggah file templat**. Pilih **Pilih File** untuk menavigasi ke file dan memilihnya, dan kemudian klik **Selanjutnya**.
   + Untuk template yang disimpan dalam bucket Amazon S3, pilih URL **Amazon S3**. Masukkan atau tempel URL untuk templat, dan kemudian klik **Selanjutnya**.

     Jika Anda memiliki template dalam bucket berkemampuan versi, Anda dapat menentukan versi tertentu dari template template dengan menambahkan `?versionId=version-id` ke URL. Untuk informasi selengkapnya, lihat [Bekerja dengan objek dalam bucket berkemampuan versi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-objects-versioned-bucket.html) di Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.

1. Jika templat Anda berisi parameter, di halaman **Tentukan detail tumpukan**, masukkan atau ubah nilai parameter, lalu pilih **Selanjutnya**.

   CloudFormation mengisi setiap parameter dengan nilai yang saat ini diatur dalam tumpukan kecuali untuk parameter yang dideklarasikan dengan `NoEcho` atribut. Anda dapat menggunakan nilai saat ini untuk parameter tersebut dengan memilih **Gunakan nilai yang ada**.

   Untuk informasi selengkapnya tentang penggunaan `NoEcho` untuk menutupi informasi sensitif, serta menggunakan parameter dinamis untuk mengelola rahasia, lihat praktik [Jangan menanamkan kredensial dalam templat Anda](security-best-practices.md#creds) terbaik.

1. Tentukan kebijakan timpa tumpukan.

   1. Di halaman **Mengonfigurasi opsi tumpukan**, di bagian **Opsi lanjutan**, pilih **Kebijakan tumpukan **.

   1. Pilih **Unggah file**.

   1. Klik **Pilih file**dan arahkan ke arahkan ke file yang berisi kebijakan tumpukan utama atau ketik kebijakan.

   1. Pilih **Berikutnya**.

   Kebijakan timpa harus menentukan sebuah pernyataan `Allow` untuk sumber daya yang dilindungi yang ingin Anda perbarui. Misalnya, untuk memperbarui semua sumber daya yang dilindungi, tentukan kebijakan timpa sementara yang memungkinkan semua pembaruan:

   ```
   {
     "Statement" : [
       {
         "Effect" : "Allow",
         "Action" : "Update:*",
         "Principal": "*",
         "Resource" : "*"
       }
     ]
   }
   ```
**catatan**  
CloudFormation menerapkan kebijakan penggantian hanya selama pembaruan ini. Kebijakan timpa tidak secara permanen mengubah kebijakan tumpukan. Untuk mengubah kebijakan tumpukan, lihat [Mengubah kebijakan tumpukan](#protect-stack-resources-modifying).

1. Tinjau informasi tumpukan dan perubahan yang Anda kirimkan.

   Periksa bahwa Anda telah mengirimkan informasi yang benar, seperti nilai parameter atau URL templat yang benar. Jika template Anda berisi sumber daya IAM, pilih **Saya mengakui bahwa template ini dapat membuat sumber daya IAM** untuk menentukan bahwa Anda ingin menggunakan sumber daya IAM dalam template. Untuk informasi selengkapnya, lihat [Mengakui sumber daya IAM dalam templat CloudFormation](control-access-with-iam.md#using-iam-capabilities).

   Di bagian **Pratinjau perubahan Anda**, periksa apakah CloudFormation akan membuat semua perubahan yang Anda harapkan. Misalnya, periksa apakah CloudFormation menambahkan, menghapus, dan memodifikasi sumber daya yang ingin Anda tambahkan, hapus, atau modifikasi. CloudFormationmenghasilkan pratinjau ini dengan membuat set perubahan untuk tumpukan. Untuk informasi selengkapnya, lihat [Perbarui CloudFormation tumpukan menggunakan set perubahan](using-cfn-updating-stacks-changesets.md).

1. Setelah Anda puas dengan perubahan Anda, klik **Perbarui**.
**catatan**  
Pada titik ini, Anda juga memiliki opsi untuk melihat set perubahan untuk meninjau pembaruan yang diajukan dengan lebih teliti. Untuk melakukannya, klik **Lihat set perubahan**, bukan **Perbarui**. CloudFormation menampilkan set perubahan yang dihasilkan berdasarkan pembaruan Anda. Jika Anda siap untuk melakukan pembaruan tumpukan, klik **Jalankan**.

   CloudFormation menampilkan halaman **detail Stack** untuk tumpukan Anda. Tumpukan Anda sekarang memiliki status`UPDATE_IN_PROGRESS`. Setelah CloudFormation berhasil selesai memperbarui tumpukan, ia menetapkan status tumpukan ke`UPDATE_COMPLETE`.

   Jika pembaruan tumpukan gagal, CloudFormation; secara otomatis memutar kembali perubahan, dan menetapkan status tumpukan ke`UPDATE_ROLLBACK_COMPLETE`.

**Untuk memperbarui sumber daya yang dilindungi (AWS CLI)**
+ Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html) dengan opsi `--stack-policy-during-update-body` untuk mengetik dalam kebijakan yang dimodifikasi atau opsi `--stack-policy-during-update-url` untuk menentukan file yang berisi kebijakan.
**catatan**  
CloudFormation menerapkan kebijakan penggantian hanya selama pembaruan ini. Kebijakan timpa tidak secara permanen mengubah kebijakan tumpukan. Untuk mengubah kebijakan tumpukan, lihat [Mengubah kebijakan tumpukan](#protect-stack-resources-modifying).

## Mengubah kebijakan tumpukan
<a name="protect-stack-resources-modifying"></a>

Untuk melindungi sumber daya tambahan atau untuk menghapus perlindungan dari sumber daya, ubah kebijakan tumpukan. Misalnya, saat Anda menambahkan basis data yang ingin Anda lindungi ke tumpukan Anda, tambahkan pernyataan `Deny` untuk basis data tersebut ke kebijakan tumpukan. Untuk mengubah kebijakan, Anda harus memiliki izin untuk menggunakan tindakan [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetStackPolicy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SetStackPolicy.html).

Gunakan AWS CLI untuk memodifikasi kebijakan tumpukan.

**Untuk mengubah kebijakan tumpukan, lihat (AWS CLI)**
+ Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-stack-policy.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-stack-policy.html) dengan opsi `--stack-policy-body` untuk mengetik dalam kebijakan yang dimodifikasi atau opsi `--stack-policy-url` untuk menentukan file yang berisi kebijakan.

Anda tidak dapat menghapus kebijakan tumpukan. Untuk menghapus semua perlindungan dari semua sumber daya, Anda mengubah kebijakan untuk secara eksplisit mengizinkan semua tindakan pada semua sumber daya. Kebijakan berikut ini mengizinkan semua pembaruan pada semua sumber daya:

```
{
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "*"
    }
  ]
}
```

## Lebih banyak contoh kebijakan tumpukan
<a name="stack-policy-samples"></a>

Contoh kebijakan berikut menunjukkan cara mencegah pembaruan ke semua sumber daya tumpukan dan sumber daya tertentu, serta mencegah jenis pembaruan tertentu.

### Mencegah pembaruan ke semua sumber daya tumpukan
<a name="w2aac43c15c21b5"></a>

Untuk mencegah pembaruan ke semua sumber daya tumpukan, kebijakan berikut menetapkan pernyataan `Deny` untuk semua tindakan pembaruan pada semua sumber daya.

```
{
  "Statement" : [
    {
      "Effect" : "Deny",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "*"
    }
  ]
}
```

### Mencegah pembaruan ke sumber daya tunggal
<a name="w2aac43c15c21b7"></a>

Kebijakan berikut menolak semua tindakan pembaruan pada basis data dengan ID logis `MyDatabase`. Hal ini memungkinkan semua tindakan pembaruan pada semua sumber daya tumpukan lainnya dengan pernyataan `Allow`. Pernyataan `Allow` tidak berlaku untuk sumber daya `MyDatabase` karena pernyataan `Deny` selalu menimpa tindakan izinkan.

```
{
  "Statement" : [
    {
      "Effect" : "Deny",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "LogicalResourceId/MyDatabase"
    },
    {
      "Effect" : "Allow",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "*"
    }
  ]
}
```

Anda dapat mencapai hasil yang sama seperti contoh sebelumnya dengan menggunakan penolakan default. Saat Anda menetapkan kebijakan tumpukan, tolak CloudFormation pembaruan apa pun yang tidak diizinkan secara eksplisit. Kebijakan berikut ini mengizinkan pembaruan untuk semua sumber daya kecuali untuk sumber daya `ProductionDatabase`, yang ditolak secara default.

```
{
  "Statement" : [
    {
      "Effect" : "Allow",
      "Action" : "Update:*",
      "Principal": "*",
      "NotResource" : "LogicalResourceId/ProductionDatabase"
    }
  ]
}
```

**penting**  
Ada risiko dalam menggunakan penolakan default. Jika Anda memiliki pernyataan `Allow` di bagian lain dalam kebijakan (seperti pernyataan `Allow` yang menggunakan wild card), Anda mungkin secara tidak sadar memberikan izin pembaruan ke sumber daya yang tidak Anda inginkan. Karena penolakan eksplisit menimpa tindakan izinkan, Anda bisa memastikan bahwa sumber daya dilindungi dengan menggunakan pernyataan `Deny`.

### Mencegah pembaruan untuk semua instans dari jenis sumber daya
<a name="w2aac43c15c21b9"></a>

Kebijakan berikut menolak semua tindakan pembaruan pada jenis sumber daya instans DB RDS. Hal ini memungkinkan semua tindakan pembaruan pada semua sumber daya tumpukan lainnya dengan pernyataan `Allow`. Pernyataan `Allow` tidak berlaku untuk sumber daya instans DB RDS karena pernyataan `Deny` selalu menimpa tindakan izinkan.

```
{
  "Statement" : [
    {
      "Effect" : "Deny",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "*",
      "Condition" : {
        "StringEquals" : {
          "ResourceType" : ["AWS::RDS::DBInstance"]
        }
      }
    },
    {
      "Effect" : "Allow",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "*"
    }
  ]
}
```

### Mencegah pembaruan pengganti untuk sebuah instans
<a name="w2aac43c15c21c11"></a>

Kebijakan berikut menolak pembaruan yang akan menyebabkan penggantian instans dengan ID logis `MyInstance`. Hal ini memungkinkan semua tindakan pembaruan pada semua sumber daya tumpukan lainnya dengan pernyataan `Allow`. Pernyataan `Allow` tidak berlaku untuk sumber daya `MyInstance` karena pernyataan `Deny` selalu menimpa tindakan izinkan.

```
{
  "Statement" : [
    {
      "Effect" : "Deny",
      "Action" : "Update:Replace",
      "Principal": "*",
      "Resource" : "LogicalResourceId/MyInstance"
    },
    {
      "Effect" : "Allow",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "*"
    }
  ]
}
```

### Mencegah pembaruan pada tumpukan nested
<a name="w2aac43c15c21c13"></a>

Kebijakan berikut menyangkal semua tindakan pembaruan pada jenis sumber daya CloudFormation tumpukan (tumpukan bersarang). Hal ini memungkinkan semua tindakan pembaruan pada semua sumber daya tumpukan lainnya dengan pernyataan `Allow`. Pernyataan `Allow` tidak berlaku untuk CloudFormation sumber daya tumpukan karena pernyataan `Deny` selalu menimpa tindakan izinkan.

```
{
  "Statement" : [
    {
      "Effect" : "Deny",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "*",
      "Condition" : {
        "StringEquals" : {
          "ResourceType" : ["AWS::CloudFormation::Stack"]
        }
      }
    },
    {
      "Effect" : "Allow",
      "Action" : "Update:*",
      "Principal": "*",
      "Resource" : "*"
    }
  ]
}
```