

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

# Keamanan di CloudFormation
<a name="security"></a>

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) menjelaskan hal ini sebagai keamanan *dari* cloud dan keamanan *dalam* cloud:
+ **Keamanan cloud** — AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan AWS layanan di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Auditor pihak ketiga secara teratur menguji dan memverifikasi efektivitas keamanan kami sebagai bagian dari [Program AWS Kepatuhan Program AWS Kepatuhan](https://aws.amazon.com/compliance/programs/) . Untuk mempelajari tentang program kepatuhan yang berlaku CloudFormation, lihat [AWS Layanan dalam Lingkup oleh AWS Layanan Program Kepatuhan](https://aws.amazon.com/compliance/services-in-scope/) .
+ **Keamanan di cloud** — Tanggung jawab Anda ditentukan oleh AWS layanan yang Anda gunakan. Anda juga bertanggung jawab atas faktor lain, yang mencakup sensitivitas data Anda, persyaratan perusahaan Anda, serta undang-undang dan peraturan yang berlaku.

Dokumentasi ini membantu Anda memahami cara menerapkan model tanggung jawab bersama saat menggunakan CloudFormation. Topik berikut menunjukkan cara mengonfigurasi CloudFormation untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga belajar cara menggunakan AWS layanan lain yang membantu Anda memantau dan mengamankan CloudFormation sumber daya Anda.

**Topics**
+ [Lindungi CloudFormation tumpukan agar tidak dihapus](using-cfn-protect-stacks.md)
+ [Mencegah pembaruan ke sumber daya tumpukan](protect-stack-resources.md)
+ [Perlindungan data di CloudFormation](security-data-protection.md)
+ [Kontrol CloudFormation akses dengan AWS Identity and Access Management](control-access-with-iam.md)
+ [Logging panggilan CloudFormation API dengan AWS CloudTrail](cfn-api-logging-cloudtrail.md)
+ [Keamanan infrastruktur di CloudFormation](infrastructure-security.md)
+ [Ketahanan di CloudFormation](disaster-recovery-resiliency.md)
+ [Validasi kepatuhan untuk CloudFormation](cloudformation-compliance.md)
+ [Konfigurasi dan analisis kerentanan di CloudFormation](vulnerability-analysis-and-management.md)
+ [Praktik terbaik keamanan untuk CloudFormation](security-best-practices.md)
+ [Akses CloudFormation menggunakan endpoint antarmuka ()AWS PrivateLink](vpc-interface-endpoints.md)

# Lindungi CloudFormation tumpukan agar tidak dihapus
<a name="using-cfn-protect-stacks"></a>

Anda dapat mencegah tumpukan tidak sengaja dihapus dengan mengaktifkan perlindungan terminasi pada tumpukan. Jika pengguna mencoba untuk menghapus tumpukan dengan perlindungan terminasi diaktifkan, penghapusan gagal dan tumpukan, termasuk statusnya, tetap tidak berubah. Anda dapat mengaktifkan perlindungan terminasi di tumpukan saat membuatnya. Perlindungan terminasi pada tumpukan dinonaktifkan secara default. Anda dapat mengatur perlindungan terminasi pada tumpukan dengan status apa pun kecuali `DELETE_IN_PROGRESS` atau`DELETE_COMPLETE`.

Mengaktifkan atau menonaktifkan perlindungan terminasi pada tumpukan meneruskan pilihan yang sama ke tumpukan bersarang milik tumpukan itu juga. Anda tidak dapat mengaktifkan atau menonaktifkan perlindungan terminasi secara langsung di tumpukan nest. Jika pengguna mencoba untuk langsung menghapus tumpukan nest milik tumpukan yang mengaktifkan perlindungan terminasi, operasi gagal dan tumpukan nest tetap tidak berubah.

Namun, jika pengguna melakukan pembaruan tumpukan yang akan menghapus tumpukan nest, CloudFormation menghapus tumpukan nest.

Perlindungan terminasi berbeda dengan menonaktifkan rollback. Perlindungan terminasi hanya berlaku untuk upaya menghapus tumpukan, sementara menonaktifkan rollback berlaku untuk rollback otomatis ketika pembuatan tumpukan gagal.

**Untuk mengaktifkan perlindungan terminasi saat membuat tumpukan**  
Pada halaman **Tentukan opsi tumpukan** di wizard **Buat tumpukan**, di bawah **Opsi lanjutan**, perluas bagian **Perlindungan terminasi** dan pilih **Aktifkan**. Untuk informasi selengkapnya, lihat [Konfigurasikan opsi tumpukan](cfn-console-create-stack.md#configure-stack-options).

**Untuk mengaktifkan atau menonaktifkan perlindungan terminasi di tumpukan yang ada**

1. Masuk ke Konsol Manajemen AWS dan 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 Anda Wilayah AWS.

1. Pilih tumpukan yang Anda inginkan.
**catatan**  
Jika **NESTED** ditampilkan di sebelah nama tumpukan, tumpukan adalah tumpukan nest. Anda hanya dapat mengubah perlindungan terminasi pada tumpukan akar yang dimiliki tumpukan nest.

1. Di panel detail tumpukan, pilih **Tindakan tumpukan** dan kemudian **Edit perlindungan terminasi**.

   CloudFormation menampilkan kotak dialog **Edit perlindungan terminasi**.

1. Pilih **Aktifkan** atau **Nonaktifkan**, dan kemudian pilih **Simpan**.

**Untuk mengaktifkan atau menonaktifkan perlindungan terminasi pada tumpukan nest**

Jika **NESTED** ditampilkan di sebelah nama tumpukan, tumpukan adalah tumpukan nest. Anda hanya dapat mengubah perlindungan terminasi pada tumpukan akar yang dimiliki tumpukan nest. Untuk mengubah perlindungan terminasi pada tumpukan akar:

1. Masuk ke Konsol Manajemen AWS dan 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 Anda Wilayah AWS.

1. Pilih tumpukan nest yang Anda inginkan.

1. Di panel **Info tumpukan**, di bagian **Gambaran Umum**, pilih nama tumpukan terdaftar sebagai **Tumpukan akar**.

   CloudFormation menampilkan detail tumpukan untuk tumpukan root.

1. Pilih **Tindakan tumpukan** lalu pilih **Edit Perlindungan Terminasi**.

   CloudFormation menampilkan kotak dialog **Edit perlindungan terminasi**.

1. Pilih **Aktifkan** atau **Nonaktifkan**, dan kemudian pilih **Simpan**.

**Untuk mengaktifkan atau menonaktifkan perlindungan pengakhiran menggunakan baris perintah**  
Gunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-termination-protection.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-termination-protection.html).

## Mengendalikan siapa yang dapat mengubah perlindungan terminasi pada tumpukan
<a name="protect-stacks-perms"></a>

Untuk mengaktifkan atau menonaktifkan perlindungan terminasi di tumpukan, pengguna memerlukan izin ke tindakan `cloudformation:UpdateTerminationProtection`. Misalnya, kebijakan di bawah ini mengizinkan pengguna untuk mengaktifkan atau menonaktifkan perlindungan terminasi pada tumpukan.

Untuk informasi selengkapnya tentang menentukan izin di CloudFormation, lihat. [Kontrol CloudFormation akses dengan AWS Identity and Access Management](control-access-with-iam.md)

**Example Contoh kebijakan yang memberikan izin untuk mengubah perlindungan terminasi tumpukan**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[{
        "Effect":"Allow",
        "Action":[
            "cloudformation:UpdateTerminationProtection"
        ],
        "Resource":"*"
    }]
}
```

# 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" : "*"
    }
  ]
}
```

# Perlindungan data di CloudFormation
<a name="security-data-protection"></a>

[Model tanggung jawab AWS bersama model](https://aws.amazon.com/compliance/shared-responsibility-model/) berlaku untuk perlindungan data di AWS CloudFormation. Seperti yang dijelaskan dalam model AWS ini, bertanggung jawab untuk melindungi infrastruktur global yang menjalankan semua AWS Cloud. Anda bertanggung jawab untuk mempertahankan kendali atas konten yang di-host pada infrastruktur ini. Anda juga bertanggung jawab atas tugas-tugas konfigurasi dan manajemen keamanan untuk Layanan AWS yang Anda gunakan. Lihat informasi yang lebih lengkap tentang privasi data dalam [Pertanyaan Umum Privasi Data](https://aws.amazon.com/compliance/data-privacy-faq/). Lihat informasi tentang perlindungan data di Eropa di pos blog [Model Tanggung Jawab Bersama dan GDPR AWS](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) di *Blog Keamanan AWS *.

Untuk tujuan perlindungan data, kami menyarankan Anda melindungi Akun AWS kredensil dan mengatur pengguna individu dengan AWS IAM Identity Center atau AWS Identity and Access Management (IAM). Dengan cara itu, setiap pengguna hanya diberi izin yang diperlukan untuk memenuhi tanggung jawab tugasnya. Kami juga menyarankan supaya Anda mengamankan data dengan cara-cara berikut:
+ Gunakan autentikasi multi-faktor (MFA) pada setiap akun.
+ Gunakan SSL/TLS untuk berkomunikasi dengan AWS sumber daya. Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Siapkan API dan pencatatan aktivitas pengguna dengan AWS CloudTrail. Untuk informasi tentang penggunaan CloudTrail jejak untuk menangkap AWS aktivitas, lihat [Bekerja dengan CloudTrail jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) di *AWS CloudTrail Panduan Pengguna*.
+ Gunakan solusi AWS enkripsi, bersama dengan semua kontrol keamanan default di dalamnya Layanan AWS.
+ Gunakan layanan keamanan terkelola tingkat lanjut seperti Amazon Macie, yang membantu menemukan dan mengamankan data sensitif yang disimpan di Amazon S3.
+ Jika Anda memerlukan modul kriptografi tervalidasi FIPS 140-3 saat mengakses AWS melalui antarmuka baris perintah atau API, gunakan titik akhir FIPS. Lihat informasi selengkapnya tentang titik akhir FIPS yang tersedia di [Standar Pemrosesan Informasi Federal (FIPS) 140-3](https://aws.amazon.com/compliance/fips/).

Kami sangat merekomendasikan agar Anda tidak pernah memasukkan informasi identifikasi yang sensitif, seperti nomor rekening pelanggan Anda, ke dalam tanda atau bidang isian bebas seperti bidang **Nama**. Ini termasuk saat Anda bekerja dengan CloudFormation atau lainnya Layanan AWS menggunakan konsol, API AWS CLI, atau AWS SDKs. Data apa pun yang Anda masukkan ke dalam tanda atau bidang isian bebas yang digunakan untuk nama dapat digunakan untuk log penagihan atau log diagnostik. Saat Anda memberikan URL ke server eksternal, kami sangat menganjurkan supaya Anda tidak menyertakan informasi kredensial di dalam URL untuk memvalidasi permintaan Anda ke server itu.

## Enkripsi saat diam
<a name="security-data-protection-encryption-at-rest"></a>

Mengikuti model tanggung jawab AWS bersama, CloudFormation menyimpan data Anda yang dienkripsi saat istirahat. Pelanggan bertanggung jawab untuk mengatur kebijakan enkripsi dan penyimpanan untuk data yang disimpan di akun mereka. Sebagai contoh, sebaiknya aktifkan enkripsi yang tidak aktif untuk templat dan data lain yang disimpan dalam Bucket S3 atau topik SNS. Pelanggan juga menentukan pengaturan enkripsi untuk setiap sistem penyimpanan data yang ditetapkan oleh CloudFormation.

## Enkripsi saat bergerak
<a name="security-data-protection-encryption-in-transit"></a>

CloudFormation menggunakan saluran terenkripsi untuk komunikasi layanan di bawah model tanggung jawab bersama.

## Privasi lalu lintas antarjaringan
<a name="security-data-protection-internetwork-traffic-privacy"></a>

CloudFormation komunikasi layanan dienkripsi secara aman secara default antara Wilayah atau Availability Zone.

# Kontrol CloudFormation akses dengan AWS Identity and Access Management
<a name="control-access-with-iam"></a>

Dengan AWS Identity and Access Management (IAM), Anda dapat membuat pengguna IAM dan mengontrol akses mereka ke sumber daya tertentu di Anda. Akun AWS Saat Anda menggunakan IAM, Anda dapat mengontrol apa yang dapat dilakukan pengguna CloudFormation, seperti apakah mereka dapat melihat templat tumpukan, membuat tumpukan, atau menghapus tumpukan.

Di luar tindakan CloudFormation spesifik, Anda dapat mengelola AWS layanan dan sumber daya apa yang tersedia untuk setiap pengguna. Dengan begitu, Anda dapat mengontrol sumber daya mana yang dapat diakses pengguna saat mereka menggunakannya CloudFormation. Misalnya, Anda dapat menentukan pengguna mana yang dapat membuat instans Amazon EC2, menghentikan instans database, atau memperbarui. VPCs Izin yang sama berlaku kapan saja mereka gunakan CloudFormation untuk melakukan tindakan tersebut.

Gunakan informasi di bagian berikut untuk mengontrol siapa yang dapat mengakses CloudFormation. Kami juga akan mengeksplorasi cara mengotorisasi pembuatan sumber daya IAM dalam template, memberikan aplikasi yang berjalan pada instans EC2 izin yang mereka butuhkan, dan memanfaatkan kredenal keamanan sementara untuk meningkatkan keamanan di lingkungan Anda. AWS 

## Mendefinisikan kebijakan berbasis identitas IAM untuk CloudFormation
<a name="iam-id-based-policies"></a>

Untuk memberikan akses ke CloudFormation, Anda perlu membuat dan menetapkan kebijakan IAM yang memberikan identitas IAM Anda (seperti pengguna atau peran) izin untuk memanggil tindakan API yang mereka butuhkan.

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan dan sumber daya yang diizinkan atau ditolak, serta kondisi di mana tindakan diizinkan atau ditolak. CloudFormationmendukung tindakan, sumber daya, dan kunci kondisi tertentu. 

Jika Anda baru mengenal IAM, mulailah dengan membiasakan diri dengan elemen-elemen kebijakan IAM JSON. Untuk informasi selengkapnya, lihat [referensi elemen kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) di Panduan Pengguna *IAM*. Untuk mempelajari cara membuat kebijakan IAM, selesaikan tutorial [Buat dan lampirkan kebijakan terkelola pelanggan pertama Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html) dalam dokumentasi IAM.

**Topics**
+ [Tindakan kebijakan untuk CloudFormation](#using-iam-actions)
+ [Tindakan khusus konsol untuk CloudFormation](#console-specific-actions)
+ [Sumber daya kebijakan untuk CloudFormation](#resource-level-permissions)
+ [Kunci kondisi kebijakan untuk CloudFormation](#using-iam-conditions)

### Tindakan kebijakan untuk CloudFormation
<a name="using-iam-actions"></a>

Dalam `Action` elemen pernyataan kebijakan IAM Anda, Anda dapat menentukan tindakan API apa pun yang CloudFormation ditawarkan. Anda harus mengawali nama tindakan dengan string huruf kecil. `cloudformation:` Misalnya:`cloudformation:CreateStack`,`cloudformation:CreateChangeSet`, dan`cloudformation:UpdateStack`.

Untuk menentukan beberapa tindakan dalam satu pernyataan, pisahkan dengan koma, sebagai berikut:

```
"Action": [ "cloudformation:action1", "cloudformation:action2" ]
```

Anda juga dapat menentukan beberapa tindakan menggunakan wildcard. Misalnya, Anda dapat menentukan semua tindakan yang namanya dimulai dengan kata`Get`, sebagai berikut:

```
"Action": "cloudformation:Get*"
```

Untuk melihat daftar lengkap tindakan yang terkait dengan awalan `cloudformation` layanan, lihat [Tindakan, sumber daya, dan kunci kondisi untuk CloudFormation serta Kunci](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html) [Tindakan, sumber daya, dan kondisi AWS Cloud Control API di Referensi](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudcontrolapi.html) *Otorisasi Layanan*.

#### Contoh
<a name="using-iam-actions-examples"></a>

Berikut ini menunjukkan contoh kebijakan izin yang memberikan izin untuk melihat tumpukan. CloudFormation 

**Example 1: Contoh kebijakan yang memberikan izin tumpukan tampilan**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[{
        "Effect":"Allow",
        "Action":[
            "cloudformation:DescribeStacks",
            "cloudformation:DescribeStackEvents",
            "cloudformation:DescribeStackResource",
            "cloudformation:DescribeStackResources"
        ],
        "Resource":"*"
    }]
}
```

Pengguna yang membuat atau menghapus tumpukan memerlukan izin tambahan berdasarkan templat tumpukan mereka. Misalnya, jika template Anda menjelaskan antrean Amazon SQS, pengguna harus memiliki izin untuk tindakan Amazon SQS dan Amazon CloudFormation SQS, seperti yang ditunjukkan dalam kebijakan contoh berikut.

**Example 2: Contoh kebijakan yang memberikan tindakan pembuatan dan tampilan tumpukan dan semua tindakan Amazon SQS**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[{
        "Effect":"Allow",
        "Action":[
            "sqs:*",
            "cloudformation:CreateStack",
            "cloudformation:DescribeStacks",
            "cloudformation:DescribeStackEvents",
            "cloudformation:DescribeStackResources",
            "cloudformation:GetTemplate",
            "cloudformation:ValidateTemplate"  
        ],
        "Resource":"*"
    }]
}
```

### Tindakan khusus konsol untuk CloudFormation
<a name="console-specific-actions"></a>

Pengguna CloudFormation konsol memerlukan izin tambahan di luar yang diperlukan untuk AWS Command Line Interface atau CloudFormation APIs. Izin tambahan ini mendukung fitur khusus konsol seperti unggahan templat ke bucket Amazon S3 dan daftar drop-down untuk tipe parameter khusus. AWS

Untuk semua tindakan yang tercantum di bawah ini, berikan izin ke semua sumber daya; jangan batasi pada tumpukan atau bucket tertentu.

Tindakan berikut hanya digunakan oleh CloudFormation konsol dan tidak didokumentasikan dalam referensi API. Tindakan ini memungkinkan pengguna untuk mengunggah template ke bucket Amazon S3.
+ `cloudformation:CreateUploadBucket`

Saat pengguna mengunggah templat, pengguna juga memerlukan izin Amazon S3 berikut:
+ `s3:PutObject`
+ `s3:ListBucket`
+ `s3:GetObject`
+ `s3:CreateBucket`

Untuk melihat nilai dalam daftar drop-down parameter untuk template dengan tipe parameter AWS-specific, pengguna memerlukan izin untuk membuat panggilan API describe yang sesuai. Misalnya, izin berikut diperlukan saat jenis parameter ini digunakan dalam templat:
+  `ec2:DescribeKeyPairs`— Diperlukan untuk tipe `AWS::EC2::KeyPair::KeyName` parameter.
+ `ec2:DescribeSecurityGroups`— Diperlukan untuk tipe `AWS::EC2::SecurityGroup::Id` parameter.
+ `ec2:DescribeSubnets`— Diperlukan untuk tipe `AWS::EC2::Subnet::Id` parameter.
+ `ec2:DescribeVpcs`— Diperlukan untuk tipe `AWS::EC2::VPC::Id` parameter.

Untuk informasi selengkapnya tentang tipe parameter AWS-spesifik, lihat[Tentukan sumber daya yang ada saat runtime dengan CloudFormation tipe parameter yang disediakan](cloudformation-supplied-parameter-types.md).

### Sumber daya kebijakan untuk CloudFormation
<a name="resource-level-permissions"></a>

Dalam pernyataan kebijakan IAM, `Resource` elemen menentukan objek atau objek yang dicakup oleh pernyataan tersebut. Untuk CloudFormation, setiap pernyataan kebijakan IAM berlaku untuk sumber daya yang Anda tentukan menggunakan Amazon Resource Names (ARNs). Format ARN spesifik tergantung pada sumber daya. 

Untuk daftar lengkap jenis sumber daya dan jenis CloudFormation sumber daya ARNs, lihat [Jenis sumber daya yang ditentukan oleh CloudFormation](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html#awscloudformation-resources-for-iam-policies) dalam *Referensi Otorisasi Layanan*. Untuk mempelajari tindakan mana yang dapat Anda tentukan dengan ARN masing-masing sumber daya, lihat [Tindakan yang ditentukan oleh](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awscloudformation.html#awscloudformation-actions-as-permissions). CloudFormation

Anda dapat menentukan tindakan untuk tumpukan tertentu, seperti yang ditunjukkan dalam contoh kebijakan berikut. Saat Anda memberikan ARN, ganti `placeholder text` dengan informasi khusus sumber daya Anda. 

**Example 1: Contoh kebijakan yang menolak tindakan menghapus dan memperbarui tumpukan untuk tumpukan yang ditentukan**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "cloudformation:DeleteStack",
                "cloudformation:UpdateStack"
            ],
            "Resource": "arn:aws:cloudformation:us-east-1:111122223333:stack/MyProductionStack/*"
        }
    ]
}
```

Kebijakan di atas menggunakan kartu liar di akhir nama tumpukan sehingga tumpukan hapus dan tumpukan pembaruan ditolak pada ID tumpukan lengkap (seperti`arn:aws:cloudformation:region:account-id:stack/MyProductionStack/abc9dbf0-43c2-11e3-a6e8-50fa526be49c`) dan nama tumpukan (seperti`MyProductionStack`).

Untuk mengizinkan `AWS::Serverless` transformasi membuat set perubahan, sertakan izin `arn:aws:cloudformation:region:aws:transform/Serverless-2016-10-31` tingkat sumber daya, seperti yang ditunjukkan dalam kebijakan berikut.

**Example 2: Contoh kebijakan yang memungkinkan tindakan set perubahan buat untuk transformasi yang ditentukan**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateChangeSet"
            ],
            "Resource": "arn:aws:cloudformation:us-east-1:aws:transform/Serverless-2016-10-31"
        }
    ]
}
```

### Kunci kondisi kebijakan untuk CloudFormation
<a name="using-iam-conditions"></a>

Dalam pernyataan kebijakan IAM, Anda dapat secara opsional menentukan kondisi yang mengontrol kapan kebijakan berlaku. Misalnya, Anda dapat menentukan kebijakan yang mengizinkan pengguna membuat tumpukan hanya saat mereka menentukan URL templat tertentu. Anda dapat menentukan kondisi CloudFormation -spesifik dan kondisi AWS-wide, seperti`DateLessThan`, yang menentukan kapan kebijakan berhenti berlaku. Untuk informasi selengkapnya dan daftar kondisi AWS-wide, lihat Kondisi dalam [referensi elemen kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#Condition) di Panduan Pengguna *IAM*.

**catatan**  
Jangan gunakan kondisi `aws:SourceIp` AWS-wide. CloudFormationmenyediakan sumber daya dengan menggunakan alamat IP sendiri, bukan alamat IP dari permintaan yang berasal. Misalnya, saat Anda membuat tumpukan, CloudFormation membuat permintaan dari alamat IP-nya untuk meluncurkan instans Amazon EC2 atau untuk membuat bucket Amazon S3, bukan dari alamat IP dari panggilan atau `CreateStack` perintah. **create-stack**

Daftar berikut menjelaskan kondisi CloudFormation -spesifik. Syarat ini diterapkan hanya ketika pengguna membuat atau memperbarui tumpukan:

`cloudformation:ChangeSetName`  
Nama set CloudFormation perubahan yang ingin Anda kaitkan dengan kebijakan. Gunakan syarat ini untuk mengontrol set perubahan mana yang dapat dijalankan atau dihapus oleh pengguna .

`cloudformation:ImportResourceTypes`  
Jenis sumber daya templat yang ingin Anda kaitkan dengan kebijakan, seperti `AWS::EC2::Instance`. Gunakan syarat ini untuk mengontrol jenis sumber daya mana yang dapat digunakan pengguna saat mereka mengimpor sumber daya ke dalam tumpukan. Kondisi ini diperiksa terhadap jenis sumber daya yang dideklarasikan pengguna dalam `ResourcesToImport` parameter, yang saat ini hanya didukung untuk AWS CLI dan permintaan API. Saat menggunakan parameter ini, Anda harus menentukan semua jenis sumber daya yang Anda inginkan agar dikontrol pengguna selama operasi impor. Untuk informasi selengkapnya tentang `ResourcesToImport` parameter, lihat [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateChangeSet.html)tindakan di *Referensi AWS CloudFormation API*.  
Untuk daftar kemungkinan`ResourcesToImport`, lihat[Dukungan jenis sumber daya](resource-import-supported-resources.md).  
Gunakan konvensi penamaan sumber daya tiga bagian untuk menentukan jenis sumber daya mana yang dapat digunakan pengguna, dari semua sumber daya di seluruh organisasi, hingga jenis sumber daya individual.    
`organization::*`  
Tentukan semua jenis sumber daya untuk organisasi tertentu.  
`organization::service_name::*`  
Tentukan semua jenis sumber daya untuk layanan tertentu dalam organisasi tertentu.  
`organization::service_name::resource_type`  
Tentukan jenis sumber daya tertentu.
Contoh:    
`AWS::*`  
Tentukan semua jenis AWS sumber daya yang didukung.  
`AWS::service_name::*`  
Tentukan semua sumber daya yang didukung untuk layanan AWS tertentu.  
`AWS::service_name::resource_type`  
Tentukan jenis AWS sumber daya tertentu, seperti `AWS::EC2::Instance` (semua instans EC2).

`cloudformation:ResourceTypes`  
Jenis sumber daya templat, seperti `AWS::EC2::Instance`, yang ingin Anda kaitkan dengan kebijakan. Gunakan syarat ini untuk mengontrol jenis sumber daya mana yang dapat digunakan pengguna saat mereka membuat atau memperbarui tumpukan. Kondisi ini diperiksa terhadap jenis sumber daya yang dideklarasikan pengguna dalam `ResourceTypes` parameter, yang saat ini hanya didukung untuk AWS CLI dan permintaan API. Saat menggunakan parameter ini, pengguna harus menentukan semua jenis sumber daya yang ada di templat mereka. Untuk informasi selengkapnya tentang `ResourceTypes` parameter, lihat [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)tindakan di *Referensi AWS CloudFormation API*.  
Untuk daftar jenis sumber daya, lihat [Panduan Referensi CloudFormation Templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/introduction.html).  
Gunakan konvensi penamaan sumber daya tiga bagian untuk menentukan jenis sumber daya mana yang dapat digunakan pengguna, dari semua sumber daya di seluruh organisasi, hingga jenis sumber daya individual.    
`organization::*`  
Tentukan semua jenis sumber daya untuk organisasi tertentu.  
`organization::service_name::*`  
Tentukan semua jenis sumber daya untuk layanan tertentu dalam organisasi tertentu.  
`organization::service_name::resource_type`  
Tentukan jenis sumber daya tertentu.
Contoh:    
`AWS::*`  
Tentukan semua jenis AWS sumber daya yang didukung.  
`AWS::service_name::*`  
Tentukan semua sumber daya yang didukung untuk layanan AWS tertentu.  
`AWS::service_name::resource_type`  
Tentukan jenis AWS sumber daya tertentu, seperti `AWS::EC2::Instance` (semua instans EC2).  
`Alexa::ASK::*`  
Tentukan semua jenis sumber daya di Alexa Skill Kit.  
`Alexa::ASK::Skill`  
Tentukan tipe sumber daya [Alexa: :ASK: :Skill](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/alexa-resource-ask-skill.html) individu.  
`Custom::*`  
Tentukan semua sumber daya kustom.  
Untuk informasi selengkapnya, lihat [Buat logika penyediaan khusus dengan sumber daya khusus](template-custom-resources.md).  
`Custom::resource_type`  
Tentukan jenis sumber daya kustom tertentu.  
Untuk informasi selengkapnya, lihat [Buat logika penyediaan khusus dengan sumber daya khusus](template-custom-resources.md).

`cloudformation:RoleARN`  
Nama Sumber Daya Amazon (ARN) dari peran layanan IAM yang ingin Anda kaitkan dengan kebijakan. Gunakan syarat ini untuk mengontrol peran layanan mana yang dapat digunakan pengguna saat mereka bekerja dengan tumpukan atau set perubahan.

`cloudformation:StackPolicyUrl`  
URL kebijakan tumpukan Amazon S3 yang ingin Anda kaitkan dengan kebijakan. Gunakan syarat ini untuk mengontrol kebijakan tumpukan mana yang dapat dikaitkan pengguna dengan tumpukan selama tindakan membuat atau memperbarui tumpukan. Untuk informasi selengkapnya tentang kebijakan tumpukan, lihat [Mencegah pembaruan ke sumber daya tumpukan](protect-stack-resources.md).  
Untuk memastikan bahwa pengguna hanya dapat membuat atau memperbarui tumpukan dengan kebijakan tumpukan yang Anda unggah, setel bucket S3 agar hanya dibaca bagi pengguna tersebut.

`cloudformation:TemplateUrl`  
URL template Amazon S3 yang ingin Anda kaitkan dengan kebijakan. Gunakan syarat ini untuk mengontrol templat mana yang dapat digunakan pengguna saat mereka membuat atau memperbarui tumpukan.  
Untuk memastikan bahwa pengguna hanya dapat membuat atau memperbarui tumpukan dengan templat yang Anda unggah, setel bucket S3 agar hanya dibaca bagi pengguna tersebut.
Kondisi CloudFormation spesifik berikut berlaku untuk parameter API dengan nama yang sama:  
+ `cloudformation:ChangeSetName`
+ `cloudformation:RoleARN`
+ `cloudformation:StackPolicyUrl`
+ `cloudformation:TemplateUrl`
Misalnya, `cloudformation:TemplateUrl` hanya berlaku untuk `TemplateUrl` parameter untuk`CreateStack`,`UpdateStack`, dan `CreateChangeSet` APIs.

Untuk contoh kebijakan IAM yang menggunakan tombol kondisi untuk mengontrol akses, lihat[Contoh kebijakan berbasis identitas IAM untuk CloudFormation](security_iam_id-based-policy-examples.md).

## Mengakui sumber daya IAM dalam templat CloudFormation
<a name="using-iam-capabilities"></a>

Sebelum Anda dapat membuat tumpukan, CloudFormation memvalidasi template Anda. Selama validasi, CloudFormation periksa template Anda untuk sumber daya IAM yang mungkin dibuatnya. Sumber daya IAM, seperti pengguna dengan akses penuh, dapat mengakses dan memodifikasi sumber daya apa pun di sumber daya Anda Akun AWS. Oleh karena itu, kami menyarankan agar Anda meninjau izin yang terkait dengan setiap sumber daya IAM sebelum melanjutkan sehingga Anda tidak secara tidak sengaja membuat sumber daya dengan izin yang meningkat. Untuk memastikan bahwa Anda telah melakukannya, Anda harus mengakui bahwa template berisi sumber daya tersebut, memberikan kemampuan CloudFormation yang ditentukan sebelum membuat tumpukan.

Anda dapat mengetahui kemampuan CloudFormation template dengan menggunakan CloudFormation konsol, AWS Command Line Interface (AWS CLI), atau API:
+ Di CloudFormation konsol, pada halaman **Configure stack options** dari wizard Create Stack atau Update Stack, pilih **Saya mengakui bahwa template ini dapat membuat sumber daya IAM**.
+ Dalam AWS CLI, ketika Anda menggunakan [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html)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)dan, tentukan `CAPABILITY_IAM` atau `CAPABILITY_NAMED_IAM` nilai untuk `--capabilities` opsi tersebut. Jika template Anda menyertakan sumber daya IAM, Anda dapat menentukan salah satu kemampuan. Jika template Anda menyertakan nama kustom untuk sumber daya IAM, Anda harus menentukan`CAPABILITY_NAMED_IAM`.
+ Di API, saat Anda menggunakan [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)dan [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html)tindakan, tentukan `Capabilities.member.1=CAPABILITY_IAM` atau`Capabilities.member.1=CAPABILITY_NAMED_IAM`. Jika template Anda menyertakan sumber daya IAM, Anda dapat menentukan salah satu kemampuan. Jika template Anda menyertakan nama kustom untuk sumber daya IAM, Anda harus menentukan`CAPABILITY_NAMED_IAM`.

**penting**  
Jika template Anda berisi sumber daya IAM bernama kustom, jangan membuat beberapa tumpukan menggunakan kembali template yang sama. Sumber daya IAM harus unik secara global dalam akun Anda. Jika Anda menggunakan template yang sama untuk membuat beberapa tumpukan di Wilayah yang berbeda, tumpukan Anda mungkin berbagi sumber daya IAM yang sama, daripada masing-masing memiliki yang unik. Sumber daya bersama di antara tumpukan dapat memiliki konsekuensi yang tidak diinginkan yang tidak dapat Anda pulihkan. Misalnya, jika Anda menghapus atau memperbarui sumber daya IAM bersama dalam satu tumpukan, Anda akan secara tidak sengaja mengubah sumber daya tumpukan lain.

## Mengelola kredensional untuk aplikasi yang berjalan di instans Amazon EC2
<a name="using-iam-manage-creds"></a>

Jika Anda memiliki aplikasi yang berjalan pada instans Amazon EC2 dan perlu membuat permintaan ke AWS sumber daya seperti bucket Amazon S3 atau tabel DynamoDB, aplikasi memerlukan kredensi keamanan. AWS Namun, mendistribusikan dan menyematkan kredensial keamanan jangka panjang di setiap instans yang Anda luncurkan merupakan tantangan dan potensi risiko keamanan. Alih-alih menggunakan kredensil jangka panjang, seperti kredensil pengguna IAM, sebaiknya Anda membuat peran IAM yang terkait dengan instans Amazon EC2 saat instans diluncurkan. Aplikasi kemudian bisa mendapatkan kredensil keamanan sementara dari instans Amazon EC2. Anda tidak perlu menyematkan kredensial jangka panjang pada instans. Selain itu, untuk mempermudah pengelolaan kredensional, Anda dapat menentukan hanya satu peran untuk beberapa instans Amazon EC2; Anda tidak perlu membuat kredensil unik untuk setiap instans.

Untuk potongan templat yang menunjukkan cara meluncurkan instans dengan peran, lihat [Contoh templat IAM role](quickref-iam.md#scenarios-iamroles).

**catatan**  
Aplikasi pada instans yang menggunakan kredensial keamanan sementara dapat memanggil tindakan CloudFormation apa pun. Namun, karena CloudFormation berinteraksi dengan banyak AWS layanan lain, Anda harus memverifikasi bahwa semua layanan yang ingin Anda gunakan mendukung kredensi keamanan sementara. *Untuk daftar layanan yang menerima kredensil keamanan sementara, lihat [AWS layanan yang bekerja dengan IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).*

## Memberikan akses sementara (akses federasi)
<a name="using-iam-grant-access"></a>

Dalam beberapa kasus, Anda mungkin ingin memberi pengguna tanpa AWS kredensi akses sementara ke Anda. Akun AWS Daripada membuat dan menghapus kredensi jangka panjang kapan pun Anda ingin memberikan akses sementara, gunakan AWS Security Token Service ().AWS STS Misalnya, Anda dapat menggunakan peran IAM. Dari satu peran IAM, Anda dapat secara terprogram membuat dan kemudian mendistribusikan banyak kredensil keamanan sementara (yang mencakup kunci akses, kunci akses rahasia, dan token keamanan). Kredensi ini memiliki masa pakai yang terbatas, sehingga tidak dapat digunakan untuk mengakses Anda Akun AWS setelah kedaluwarsa. Anda juga dapat membuat beberapa peran IAM untuk memberikan tingkat izin yang berbeda kepada pengguna individu. Peran IAM berguna untuk skenario seperti identitas federasi dan sistem masuk tunggal.

Identitas gabungan adalah identitas berbeda yang dapat Anda gunakan di berbagai sistem. Untuk pengguna perusahaan dengan sistem identitas on-premise yang sudah ditetapkan (seperti LDAP atau Direktori Aktif), Anda dapat menangani semua autentikasi dengan sistem identitas on-premise Anda. Setelah pengguna diautentikasi, Anda memberikan kredensi keamanan sementara dari pengguna atau peran IAM yang sesuai. Misalnya, Anda dapat membuat peran administrator dan peran pengembang, di mana administrator memiliki akses penuh ke AWS akun dan pengembang memiliki izin untuk bekerja hanya dengan tumpukan. CloudFormation Setelah administrator diautentikasi, administrator diberi wewenang untuk mendapatkan kredensil keamanan sementara dari peran administrator. Namun, bagi pengembang, mereka dapat memperoleh kredensil keamanan sementara hanya dari peran pengembang.

Anda juga dapat memberikan akses kepada pengguna federasi ke file. Konsol Manajemen AWS Setelah pengguna mengautentikasi dengan sistem identitas on-premise, Anda dapat membuat URL sementara secara terprogram yang memberikan akses langsung ke Konsol Manajemen AWS. Saat pengguna menggunakan URL sementara, mereka tidak perlu masuk AWS karena telah diautentikasi (single sign-on). Selain itu, karena URL dibuat dari kredensial keamanan sementara pengguna, izin yang tersedia dengan kredensial tersebut menentukan izin apa yang dimiliki pengguna di Konsol Manajemen AWS.

Anda dapat menggunakan beberapa yang berbeda AWS STS APIs untuk menghasilkan kredensil keamanan sementara. Untuk informasi selengkapnya tentang API mana yang akan digunakan, lihat [Membandingkan AWS STS kredensil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html) di Panduan Pengguna *IAM*.

**penting**  
Anda tidak dapat bekerja dengan IAM ketika Anda menggunakan kredensil keamanan sementara yang dihasilkan dari API. `GetFederationToken` Sebaliknya, jika Anda perlu bekerja dengan IAM, gunakan kredensil keamanan sementara dari suatu peran.

CloudFormation berinteraksi dengan banyak AWS layanan lainnya. Saat Anda menggunakan kredensil keamanan sementara CloudFormation, verifikasi bahwa semua layanan yang ingin Anda gunakan mendukung kredensil keamanan sementara. *Untuk daftar layanan yang menerima kredensil keamanan sementara, lihat [AWS layanan yang bekerja dengan IAM di Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).*

Untuk informasi selengkapnya, lihat sumber daya terkait berikut di *Panduan Pengguna IAM:*
+ [Skenario umum untuk kredensil sementara](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html#sts-introduction)
+ [Aktifkan akses broker identitas khusus ke AWS konsol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html)

# Contoh kebijakan berbasis identitas IAM untuk CloudFormation
<a name="security_iam_id-based-policy-examples"></a>

Secara default, pengguna dan peran tidak memiliki izin untuk membuat atau mengubah sumber daya CloudFormation. Mereka juga tidak dapat melakukan tugas dengan menggunakan Konsol Manajemen AWS, AWS Command Line Interface (AWS CLI), atau AWS API. Untuk memberikan izin kepada pengguna untuk melakukan tindakan di sumber daya yang mereka perlukan, administrator IAM dapat membuat kebijakan IAM. Administrator kemudian dapat menambahkan kebijakan IAM ke peran, dan pengguna dapat mengambil peran. Untuk informasi selengkapnya, lihat [Mendefinisikan kebijakan berbasis identitas IAM untuk CloudFormation](control-access-with-iam.md#iam-id-based-policies).

Contoh berikut menunjukkan pernyataan kebijakan yang dapat Anda gunakan untuk mengizinkan atau menolak izin menggunakan satu atau beberapa CloudFormation tindakan. 

**Topics**
+ [Memerlukan URL template tertentu](#w2aac43c23c17b9)
+ [Tolak semua operasi CloudFormation impor](#w2aac43c23c17c11)
+ [Izinkan operasi impor untuk jenis sumber daya tertentu](#w2aac43c23c17c13)
+ [Tolak sumber daya IAM dalam templat tumpukan](#w2aac43c23c17c15)
+ [Izinkan pembuatan tumpukan dengan jenis sumber daya tertentu](#w2aac43c23c17c17)
+ [Kontrol akses berdasarkan tindakan API yang bermutasi sumber daya](#w2aac43c23c17c19)
+ [Batasi operasi set tumpukan berdasarkan Wilayah dan tipe sumber daya](#resource-level-permissions-service-managed-stack-set)
+ [Izinkan semua operasi generator IAc](#iam-policy-example-for-iac-generator)

## Memerlukan URL template tertentu
<a name="w2aac43c23c17b9"></a>

Kebijakan berikut memberikan izin untuk hanya menggunakan URL `https://s3.amazonaws.com/amzn-s3-demo-bucket/test.template` templat untuk membuat atau memperbarui tumpukan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudformation:TemplateUrl": [
                        "https://s3.amazonaws.com/amzn-s3-demo-bucket/test.template"
                    ]
                }
            }
        }
    ]
}
```

------

## Tolak semua operasi CloudFormation impor
<a name="w2aac43c23c17c11"></a>

Kebijakan berikut memberikan izin untuk menyelesaikan semua CloudFormation operasi kecuali operasi impor.

------
#### [ JSON ]

****  

```
{ 
  "Version":"2012-10-17",		 	 	  
  "Statement": [ 
    { 
      "Sid": "AllowAllStackOperations",
      "Effect": "Allow", 
      "Action": "cloudformation:*", 
      "Resource": "*" 
    }, 
    { 
      "Sid": "DenyImport", 
      "Effect": "Deny", 
      "Action": "cloudformation:*", 
      "Resource": "*",
      "Condition": { 
        "ForAnyValue:StringLike": {
          "cloudformation:ImportResourceTypes": [ 
            "*" 
          ] 
        } 
      } 
    } 
  ] 
}
```

------

## Izinkan operasi impor untuk jenis sumber daya tertentu
<a name="w2aac43c23c17c13"></a>

Kebijakan berikut memberikan izin untuk semua operasi tumpukan, selain operasi impor hanya pada sumber daya tertentu (dalam contoh ini,. `AWS::S3::Bucket`

------
#### [ JSON ]

****  

```
{ 
  "Version":"2012-10-17",		 	 	  
  "Statement": [ 
    { 
      "Sid": "AllowImport",
      "Effect": "Allow", 
      "Action": "cloudformation:*", 
      "Resource": "*",
      "Condition": { 
        "ForAllValues:StringEqualsIgnoreCase": {
          "cloudformation:ImportResourceTypes": [ 
            "AWS::S3::Bucket" 
          ] 
        } 
      } 
    } 
  ] 
}
```

------

## Tolak sumber daya IAM dalam templat tumpukan
<a name="w2aac43c23c17c15"></a>

Kebijakan berikut memberikan izin untuk membuat tumpukan tetapi menolak permintaan jika templat tumpukan menyertakan sumber daya apa pun dari layanan IAM. Kebijakan ini juga mengharuskan pengguna untuk menentukan `ResourceTypes` parameter, yang hanya tersedia untuk AWS CLI dan permintaan API. Kebijakan ini menggunakan pernyataan penolakan eksplisit sehingga jika ada kebijakan lain yang memberikan izin tambahan, kebijakan ini selalu tetap berlaku (pernyataan penolakan eksplisit selalu mengesampingkan pernyataan izin eksplisit).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect" : "Allow",
      "Action" : [ "cloudformation:CreateStack" ],
      "Resource" : "*"
    },
    {
      "Effect" : "Deny",
      "Action" : [ "cloudformation:CreateStack" ],
      "Resource" : "*",
      "Condition" : {
        "ForAnyValue:StringLikeIfExists" : {
          "cloudformation:ResourceTypes" : [ "AWS::IAM::*" ]
        }
      }
    },
    {
      "Effect": "Deny",
      "Action" : [ "cloudformation:CreateStack" ],
      "Resource": "*",
      "Condition": {
        "Null": {
          "cloudformation:ResourceTypes": "true"
        }
      }
    }
  ]
}
```

------

## Izinkan pembuatan tumpukan dengan jenis sumber daya tertentu
<a name="w2aac43c23c17c17"></a>

Kebijakan berikut ini mirip dengan contoh sebelumnya. Kebijakan memberikan izin untuk membuat tumpukan kecuali templat tumpukan menyertakan sumber daya apa pun dari layanan IAM. Hal ini juga mengharuskan pengguna untuk menentukan `ResourceTypes` parameter, yang hanya tersedia untuk AWS CLI dan permintaan API. Kebijakan ini lebih sederhana, tetapi tidak menggunakan pernyataan penolakan eksplisit. Kebijakan lain, yang memberikan izin tambahan, dapat menimpa kebijakan ini.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect" : "Allow",
      "Action" : [ "cloudformation:CreateStack" ],
      "Resource" : "*",
      "Condition" : {
        "ForAllValues:StringNotLikeIfExists" : {
          "cloudformation:ResourceTypes" : [ "AWS::IAM::*" ]
        },
        "Null":{
          "cloudformation:ResourceTypes": "false"
        }
      }
    }
  ]
}
```

------

## Kontrol akses berdasarkan tindakan API yang bermutasi sumber daya
<a name="w2aac43c23c17c19"></a>

Kebijakan berikut memberikan izin untuk memfilter akses dengan nama tindakan API yang bermutasi sumber daya. Ini digunakan untuk mengontrol pengguna APIs IAM mana yang dapat digunakan untuk menambah atau menghapus tag pada tumpukan atau kumpulan tumpukan. Operasi yang digunakan untuk menambah atau menghapus tag harus ditambahkan sebagai nilai untuk kunci kondisi. Kebijakan berikut memberikan `TagResource` dan `UntagResource` izin untuk operasi mutasi. `CreateStack`

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "CreateActionConditionPolicyForTagUntagResources",
        "Effect": "Allow",
        "Action": [
            "cloudformation:TagResource",
            "cloudformation:UntagResource"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "cloudformation:CreateAction": [
                    "CreateStack"
                ]
            }
        }
    }]
}
```

------

## Batasi operasi set tumpukan berdasarkan Wilayah dan tipe sumber daya
<a name="resource-level-permissions-service-managed-stack-set"></a>

Kebijakan berikut memberikan izin set tumpukan yang dikelola layanan. Pengguna dengan kebijakan ini hanya dapat menjalankan operasi pada kumpulan tumpukan dengan templat yang berisi tipe sumber daya Amazon S3 (`AWS::S3::*`) atau jenis `AWS::SES::ConfigurationSet` sumber daya. Jika masuk ke akun manajemen organisasi dengan ID`123456789012`, pengguna juga hanya dapat melakukan operasi pada kumpulan tumpukan yang menargetkan OU dengan ID`ou-1fsfsrsdsfrewr`, dan hanya dapat melakukan operasi pada kumpulan tumpukan dengan ID `stack-set-id` yang menargetkan ID Akun AWS with`987654321012`.

Operasi set tumpukan gagal jika templat kumpulan tumpukan berisi tipe sumber daya selain yang ditentukan dalam kebijakan, atau jika target penerapan adalah OU atau akun IDs selain yang ditentukan dalam kebijakan untuk akun manajemen dan kumpulan tumpukan terkait.

Pembatasan kebijakan ini hanya berlaku ketika operasi set tumpukan menargetkan`us-east-1`,`us-west-2`, atau `eu-west-2` Wilayah AWS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:*"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:*:stackset/*",
                "arn:aws:cloudformation:*:*:type/resource/AWS-S3-*",
                "arn:aws:cloudformation:us-west-2:111122223333:type/resource/AWS-SES-ConfigurationSet",
                "arn:aws:cloudformation:*:111122223333:stackset-target/*/ou-1fsfsrsdsfrewr",
                "arn:aws:cloudformation:*:111122223333:stackset-target/stack-set-id/444455556666"
            ],
            "Condition": {
                "ForAllValues:StringEqualsIgnoreCase": {
                    "cloudformation:TargetRegion": [
                        "us-east-1",
                        "us-west-2",
                        "eu-west-1"
                    ]
                }
            }
        }
    ]
}
```

------

## Izinkan semua operasi generator IAc
<a name="iam-policy-example-for-iac-generator"></a>

Kebijakan berikut memungkinkan akses ke CloudFormation tindakan yang terkait dengan pemindaian sumber daya generator IAC dan manajemen template. Pernyataan pertama memberikan izin untuk mendeskripsikan, membuat daftar, dan memulai pemindaian sumber daya. Ini juga memungkinkan akses ke izin tambahan yang diperlukan (`cloudformation:GetResource`,`cloudformation:ListResources`, dan`cloudformation:ListTypes`) yang memungkinkan generator IAc untuk mengambil informasi tentang sumber daya dan jenis sumber daya yang tersedia. Pernyataan kedua memberikan izin penuh untuk membuat, menghapus, mendeskripsikan, membuat daftar, dan memperbarui templat yang dihasilkan.

Anda juga harus memberikan izin baca untuk AWS layanan target kepada siapa saja yang akan memindai sumber daya dengan generator IAc. Lihat informasi yang lebih lengkap di [Izin IAM diperlukan untuk memindai sumber daya](generate-IaC.md#iac-generator-permissions).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":[
        {
            "Sid":"ResourceScanningOperations",
            "Effect":"Allow",
            "Action":[
                "cloudformation:DescribeResourceScan",
                "cloudformation:GetResource",
                "cloudformation:ListResources",
                "cloudformation:ListResourceScanRelatedResources",
                "cloudformation:ListResourceScanResources",
                "cloudformation:ListResourceScans",
                "cloudformation:ListTypes",
                "cloudformation:StartResourceScan"
            ],
            "Resource":"*"
        },
        {
            "Sid":"TemplateGeneration",
            "Effect":"Allow",
            "Action":[
                "cloudformation:CreateGeneratedTemplate",
                "cloudformation:DeleteGeneratedTemplate",
                "cloudformation:DescribeGeneratedTemplate",
                "cloudformation:GetResource",
                "cloudformation:GetGeneratedTemplate",
                "cloudformation:ListGeneratedTemplates",
                "cloudformation:UpdateGeneratedTemplate"
            ],
            "Resource":"*"
        }
    ]
}
```

------

# AWS kebijakan terkelola untuk AWS CloudFormation
<a name="security-iam-awsmanpol"></a>

Kebijakan AWS terkelola adalah kebijakan mandiri yang dibuat dan dikelola oleh AWS. AWS Kebijakan terkelola dirancang untuk memberikan izin bagi banyak kasus penggunaan umum sehingga Anda dapat mulai menetapkan izin kepada pengguna, grup, dan peran.

Perlu diingat bahwa kebijakan AWS terkelola mungkin tidak memberikan izin hak istimewa paling sedikit untuk kasus penggunaan spesifik Anda karena tersedia untuk digunakan semua pelanggan. AWS Kami menyarankan Anda untuk mengurangi izin lebih lanjut dengan menentukan [kebijakan yang dikelola pelanggan](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) yang khusus untuk kasus penggunaan Anda.

Anda tidak dapat mengubah izin yang ditentukan dalam kebijakan AWS terkelola. Jika AWS memperbarui izin yang ditentukan dalam kebijakan AWS terkelola, pembaruan akan memengaruhi semua identitas utama (pengguna, grup, dan peran) yang dilampirkan kebijakan tersebut. AWS kemungkinan besar akan memperbarui kebijakan AWS terkelola saat AWS layanan baru diluncurkan atau operasi API baru tersedia untuk layanan yang ada.

Untuk informasi selengkapnya, lihat [Kebijakan terkelola AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) dalam *Panduan Pengguna IAM*.

## AWS kebijakan terkelola: AWSCloud FormationFullAccess
<a name="security-iam-awsmanpol-AWSCloudFormationFullAccess"></a>

Anda dapat melampirkan `AWSCloudFormationFullAccess` ke pengguna, grup, dan peran Anda.

Kebijakan ini memberikan izin yang memungkinkan akses penuh ke CloudFormation tindakan dan sumber daya.

**Detail izin**

Kebijakan ini mencakup izin berikut.
+ `cloudformation`— Memungkinkan kepala sekolah untuk melakukan semua CloudFormation tindakan pada semua sumber daya.

Untuk melihat izin kebijakan ini, lihat [AWSCloudFormationFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCloudFormationFullAccess.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

## AWS kebijakan terkelola: AWSCloud FormationReadOnlyAccess
<a name="security-iam-awsmanpol-AWSCloudFormationReadOnlyAccess"></a>

Anda dapat melampirkan `AWSCloudFormationReadOnlyAccess` ke pengguna, grup, dan peran Anda.

Kebijakan ini memberikan izin yang memungkinkan akses hanya-baca ke CloudFormation sumber daya dan tindakan.

**Detail izin**

Kebijakan ini mencakup izin berikut.
+ `cloudformation`— Memungkinkan prinsipal untuk melakukan CloudFormation tindakan hanya-baca seperti mendeskripsikan tumpukan, mencantumkan sumber daya, dan melihat templat, tetapi tidak mengizinkan membuat, memperbarui, atau menghapus tumpukan.

Untuk melihat izin kebijakan ini, lihat [AWSCloudFormationReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCloudFormationReadOnlyAccess.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

## CloudFormation pembaruan kebijakan AWS terkelola
<a name="security-iam-awsmanpol-updates"></a>

Lihat detail tentang pembaruan kebijakan AWS terkelola CloudFormation sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan umpan RSS di halaman Riwayat CloudFormation dokumen.


| Ubah | Deskripsi | Tanggal | 
| --- | --- | --- | 
|  [AWSCloudFormationReadOnlyAccess](#security-iam-awsmanpol-AWSCloudFormationReadOnlyAccess) — Permbaruan ke kebijakan yang sudah ada  |  CloudFormation menambahkan izin baru untuk mengizinkan `cloudformation:BatchDescribe*` tindakan untuk operasi deskripsi batch.  | Januari 30, 2026 | 
|  [AWSCloudFormationReadOnlyAccess](#security-iam-awsmanpol-AWSCloudFormationReadOnlyAccess) – Pembaruan ke kebijakan yang ada  |  CloudFormation menambahkan izin baru untuk memungkinkan `cloudformation:Detect*` tindakan untuk kemampuan deteksi drift tumpukan.  | 13 November 2019 | 
|  [AWSCloudFormationReadOnlyAccess](#security-iam-awsmanpol-AWSCloudFormationReadOnlyAccess) – Pembaruan ke kebijakan yang ada  |  CloudFormation menambahkan izin baru untuk mengizinkan`cloudformation:EstimateTemplateCost`,`cloudformation:Get*`, dan `cloudformation:ValidateTemplate` tindakan.  | 2 November 2017 | 
|  [AWSCloudFormationFullAccess](#security-iam-awsmanpol-AWSCloudFormationFullAccess) – Kebijakan baru  |  CloudFormation menambahkan kebijakan AWS terkelola baru yang menyediakan akses penuh ke CloudFormation tindakan dan sumber daya.  | 26 Juli 2019 | 
|  [AWSCloudFormationReadOnlyAccess](#security-iam-awsmanpol-AWSCloudFormationReadOnlyAccess) – Pembaruan ke kebijakan yang ada  |  CloudFormation menambahkan izin baru untuk mengizinkan `cloudformation:DetectStackDrift` dan `cloudformation:DetectStackResourceDrift` tindakan untuk deteksi tumpukan drift.  | 6 Februari 2019 | 
|  [AWSCloudFormationReadOnlyAccess](#security-iam-awsmanpol-AWSCloudFormationReadOnlyAccess) – Kebijakan baru  |  CloudFormation menambahkan kebijakan AWS terkelola baru yang menyediakan akses hanya-baca ke CloudFormation tindakan dan sumber daya.  | Februari 6, 2015 | 
|  CloudFormation mulai melacak perubahan  |  CloudFormation mulai melacak perubahan untuk kebijakan yang AWS dikelola.  | Februari 6, 2015 | 

# CloudFormation peran layanan
<a name="using-iam-servicerole"></a>

*Peran layanan adalah peran* AWS Identity and Access Management (IAM) yang memungkinkan CloudFormation untuk melakukan panggilan ke sumber daya dalam tumpukan atas nama Anda. Anda dapat menentukan peran IAM yang memungkinkan CloudFormation untuk membuat, memperbarui, atau menghapus sumber daya tumpukan Anda. Secara default, CloudFormation gunakan sesi sementara yang dihasilkannya dari kredensi pengguna Anda untuk operasi tumpukan. Jika Anda menentukan peran layanan, CloudFormation gunakan kredenal peran tersebut.

Gunakan peran layanan untuk secara eksplisit menentukan tindakan yang CloudFormation dapat dilakukan, yang mungkin tidak selalu merupakan tindakan yang sama yang dapat Anda atau pengguna lain lakukan. Misalnya, Anda mungkin memiliki hak administratif, tetapi Anda dapat membatasi CloudFormation akses hanya ke EC2 tindakan Amazon.

Anda membuat peran layanan dan kebijakan izinnya dengan layanan IAM. Untuk informasi selengkapnya tentang membuat peran layanan, lihat [Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) Pengguna *IAM*. Tentukan CloudFormation (`cloudformation.amazonaws.com`) sebagai layanan yang dapat mengasumsikan peran tersebut.

Untuk mengaitkan peran layanan dengan tumpukan, tentukan peran saat Anda membuat tumpukan. Lihat perinciannya di [Konfigurasikan opsi tumpukan](cfn-console-create-stack.md#configure-stack-options). Anda juga dapat mengubah peran layanan saat memperbarui tumpukan di konsol, atau [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeleteStack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeleteStack.html)tumpukan melalui API. Sebelum Anda menentukan peran layanan, pastikan bahwa Anda memiliki izin untuk memberikannya (`iam:PassRole`). Izin `iam:PassRole` menentukan peran yang dapat Anda gunakan. Untuk informasi selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran ke AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) di *Panduan Pengguna IAM*.

**penting**  
Saat Anda menentukan peran layanan, CloudFormation selalu gunakan peran itu untuk semua operasi yang dilakukan pada tumpukan tersebut. Penghapusan peran layanan yang melekat pada tumpukan setelah tumpukan dibuat tidak dapat dilakukan. Pengguna lain yang memiliki izin untuk melakukan operasi pada tumpukan ini dapat menggunakan peran ini, terlepas dari apakah pengguna tersebut memiliki `iam:PassRole` izin atau tidak. Jika peran tersebut mencakup izin yang seharusnya tidak dimiliki pengguna, Anda dapat secara tidak sengaja meningkatkan izin pengguna. Pastikan peran memberikan keistimewaan paling rendah. *Untuk informasi selengkapnya, lihat [Menerapkan izin hak istimewa paling sedikit di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) IAM.*

# Pencegahan "confused deputy" lintas layanan
<a name="cross-service-confused-deputy-prevention"></a>

Masalah "confused deputy" adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memengaruhi entitas yang memiliki hak akses lebih tinggi untuk melakukan tindakan. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (*layanan yang dipanggil*) memanggil layanan lain (*layanan yang dipanggil*). Layanan panggilan dapat dimanipulasi untuk menggunakan izinnya untuk bertindak atas sumber daya pelanggan lain dengan cara yang seharusnya tidak memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS sediakan alat yang membantu Anda melindungi data Anda untuk semua layanan dengan prinsip layanan yang telah diberikan akses ke sumber daya di akun Anda.

Sebaiknya gunakan kunci konteks kondisi [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)dan global dalam kebijakan sumber daya untuk membatasi izin yang CloudFormation memberikan layanan lain ke sumber daya tertentu, seperti CloudFormation ekstensi. Gunakan `aws:SourceArn` jika Anda ingin hanya satu sumber daya yang akan dikaitkan dengan akses lintas layanan. Gunakan `aws:SourceAccount` jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

Pastikan bahwa nilai `aws:SourceArn` adalah ARN dari sumber daya yang CloudFormation menyimpan.

Cara paling efektif untuk melindungi dari masalah "confused deputy" adalah dengan menggunakan kunci konteks kondisi global `aws:SourceArn` dengan ARN lengkap sumber daya. Jika Anda tidak mengetahui ARN lengkap sumber daya atau jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks `aws:SourceArn` global dengan wildcard (`*`) untuk bagian ARN yang tidak diketahui. Misalnya, `arn:aws:cloudformation:*:123456789012:*`.

Jika `aws:SourceArn` nilai tidak berisi ID akun, Anda harus menggunakan kedua kunci konteks kondisi global untuk membatasi izin.

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan kunci konteks kondisi `aws:SourceAccount` global `aws:SourceArn` dan CloudFormation untuk mencegah masalah wakil yang membingungkan.

## Contoh kebijakan kepercayaan yang menggunakan `aws:SourceArn` dan kunci `aws:SourceAccount` kondisi
<a name="cross-service-confused-deputy-prevention-example"></a>

Untuk layanan registri CloudFormation , lakukan panggilan ke AWS Security Token Service (AWS STS) untuk mengambil peran layanan di akun Anda. Peran ini dikonfigurasi untuk `ExecutionRoleArn` dalam [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_RegisterType.html)operasi dan `LogRoleArn` diatur dalam [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_LoggingConfig.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_LoggingConfig.html)operasi. Untuk informasi selengkapnya, lihat [Mengonfigurasi peran eksekusi dengan izin IAM dan kebijakan kepercayaan untuk akses ekstensi publik](registry-public.md#registry-public-enable-execution-role).

Contoh kebijakan kepercayaan peran ini menggunakan pernyataan kondisi untuk membatasi `AssumeRole` kemampuan peran layanan hanya pada tindakan pada CloudFormation ekstensi tertentu di akun yang ditentukan. `aws:SourceAccount`Kondisi `aws:SourceArn` dan dievaluasi secara independen. Setiap permintaan untuk menggunakan peran layanan harus memenuhi kedua kondisi tersebut.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "resources.cloudformation.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:cloudformation:us-east-1:123456789012:type/resource/Organization-Service-Resource"
        }
      }
    }
  ]
}
```

------

## Informasi tambahan
<a name="cross-service-confused-deputy-prevention-additional-information"></a>

Misalnya kebijakan yang menggunakan kunci konteks kondisi `aws:SourceAccount` global `aws:SourceArn` dan untuk peran layanan yang digunakan oleh StackSets, lihat[Siapkan kunci global untuk mengurangi masalah wakil yang membingungkan](stacksets-prereqs-self-managed.md#confused-deputy-mitigation).

Untuk informasi selengkapnya, lihat [Memperbarui kebijakan kepercayaan peran](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html) di *Panduan Pengguna IAM*.

# Permintaan sesi akses teruskan (FAS) dan evaluasi izin
<a name="fas-requests-and-permission-evaluation"></a>

Saat membuat, memperbarui, dan menghapus CloudFormation tumpukan, pengguna dapat secara opsional menentukan peran IAM ARN. Jika tidak ada peran yang disediakan, CloudFormation gunakan mekanisme layanan defaultnya untuk berinteraksi dengan AWS layanan lain. Dalam skenario ini, penelepon harus memiliki izin yang diperlukan untuk sumber daya yang dikelola. Atau, ketika pengguna memasok peran IAM mereka sendiri, CloudFormation akan mengambil peran itu untuk melakukan interaksi layanan atas nama mereka.

Terlepas dari apakah pengguna menyediakan peran IAM, CloudFormation menghasilkan token FAS cakupan bawah baru untuk setiap operasi sumber daya. Akibatnya, [kunci kondisi terkait FAS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html#access_fas_policy_conditions), termasuk`aws:ViaAWSService`, diisi di kedua skenario.

Penggunaan FAS mempengaruhi bagaimana kebijakan IAM dievaluasi selama operasi. CloudFormation Saat membuat tumpukan dengan templat yang menyertakan sumber daya yang dipengaruhi oleh kunci kondisi terkait FAS, penolakan izin dapat terjadi.

**Contoh kebijakan IAM**  
Pertimbangkan kebijakan IAM berikut. `Statement2`akan secara konsisten mencegah penciptaan sumber `AWS::KMS::Key` daya di CloudFormation. Pembatasan akan diberlakukan secara konsisten, terlepas dari apakah peran IAM disediakan atau tidak selama operasi tumpukan. Ini karena kunci `aws:ViaAWSService` kondisi selalu disetel `true` karena penggunaan FAS. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "kms:CreateKey"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "Statement2",
            "Effect": "Deny",
            "Action": [
                "kms:CreateKey"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "Bool": {
                    "aws:ViaAWSService": "true"
                }
            }
        }
    ]
}
```

------

**Contoh template tumpukan**  
Misalnya, ketika pengguna membuat tumpukan dengan contoh template berikut, `aws:ViaAWSService` disetel ke`true`, dan izin peran akan diganti oleh kebijakan FAS. Pembuatan tumpukan akan dipengaruhi oleh `Statement2` kebijakan IAM, yang menyangkal tindakan tersebut`CreateKey`. Ini menghasilkan kesalahan izin ditolak. 

```
Resources:
  myPrimaryKey:
    Type: AWS::KMS::Key
    Properties:
      Description: An example multi-Region primary key
      KeyPolicy:
        Version: '2012-10-17'
        Id: key-default-1
        Statement:
          - Sid: Enable IAM User Permissions
            Effect: Allow
            Principal:
              AWS: !Join
                - ''
                - - 'arn:aws:iam::'
                  - !Ref AWS::AccountId
                  - ':root'
            Action: kms:*
            Resource: '*'
```

Untuk informasi selengkapnya tentang FAS, lihat [Teruskan sesi akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html) di *Panduan Pengguna IAM*.

**catatan**  
Sebagian besar sumber daya mematuhi perilaku ini. Namun, jika Anda mengalami keberhasilan atau kegagalan yang tidak terduga saat membuat, memperbarui, atau menghapus sumber daya, dan kebijakan IAM Anda menyertakan kunci kondisi terkait FAS, kemungkinan sumber daya tersebut milik sebagian kecil sumber daya yang tidak mengikuti pola standar ini.

# Logging panggilan CloudFormation API dengan AWS CloudTrail
<a name="cfn-api-logging-cloudtrail"></a>

CloudFormation terintegrasi dengan AWS CloudTrail, layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau AWS layanan di CloudFormation. CloudTrail menangkap semua panggilan API untuk CloudFormation sebagai peristiwa, termasuk panggilan dari CloudFormation konsol dan dari panggilan kode ke CloudFormation APIs. Jika Anda membuat jejak, Anda dapat mengaktifkan pengiriman CloudTrail acara secara berkelanjutan ke bucket Amazon S3, termasuk acara untuk. CloudFormation Jika Anda tidak mengonfigurasi jejak, Anda masih dapat melihat peristiwa terbaru di CloudTrail konsol dalam **Riwayat acara**. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat CloudFormation, alamat IP dari mana permintaan dibuat, siapa yang membuat permintaan, kapan dibuat, dan detail tambahan.

Untuk mempelajari selengkapnya CloudTrail, lihat [Panduan AWS CloudTrail Pengguna](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

**Topics**
+ [CloudFormation informasi di CloudTrail](#cloudformation_info_in_cloudtrail)
+ [Memahami entri file CloudFormation log](#understanding_cloudformation_entries)

## CloudFormation informasi di CloudTrail
<a name="cloudformation_info_in_cloudtrail"></a>

CloudTrail diaktifkan di AWS akun Anda saat Anda membuat akun. Ketika aktivitas terjadi di CloudFormation, aktivitas tersebut dicatat dalam suatu CloudTrail peristiwa bersama dengan peristiwa AWS layanan lainnya dalam **riwayat Acara**. Anda dapat melihat, mencari, dan mengunduh peristiwa terbaru di akun AWS . Untuk informasi selengkapnya, lihat [Melihat peristiwa dengan riwayat CloudTrail acara](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html).

Untuk catatan peristiwa yang sedang berlangsung di AWS akun Anda, termasuk acara untuk CloudFormation, buat jejak. Jejak memungkinkan CloudTrail untuk mengirimkan file log ke bucket Amazon S3. Secara default, ketika Anda membuat jejak di konsol tersebut, jejak diterapkan ke semua Wilayah. Jejak mencatat peristiwa dari semua Wilayah di AWS partisi dan mengirimkan file log ke bucket Amazon S3 yang Anda tentukan. Selain itu, Anda dapat mengonfigurasi AWS layanan lain untuk menganalisis lebih lanjut dan menindaklanjuti data peristiwa yang dikumpulkan dalam CloudTrail log. Untuk informasi lebih lanjut, lihat:
+ [Ikhtisar untuk membuat jejak](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail layanan dan integrasi yang didukung](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)
+ [Mengonfigurasi notifikasi Amazon SNS untuk CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)
+ [Menerima file CloudTrail log dari beberapa Wilayah](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html) dan [Menerima file CloudTrail log dari beberapa akun](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

Semua CloudFormation tindakan dicatat oleh CloudTrail dan didokumentasikan dalam [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Operations.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Operations.html). Misalnya, panggilan ke `CreateStack``DeleteStack`, dan `ListStacks` bagian menghasilkan entri dalam file CloudTrail log.

Setiap entri peristiwa atau log berisi informasi tentang entitas yang membuat permintaan tersebut. Informasi identitas membantu Anda menentukan hal berikut ini:
+ Apakah permintaan tersebut dibuat dengan kredensial root atau pengguna IAM.
+ Apakah permintaan tersebut dibuat dengan kredensial keamanan sementara untuk satu peran atau pengguna terfederasi.
+ Apakah permintaan itu dibuat oleh AWS layanan lain.

Untuk informasi selengkapnya, lihat [Elemen userIdentity CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).

## Memahami entri file CloudFormation log
<a name="understanding_cloudformation_entries"></a>

Trail adalah konfigurasi yang memungkinkan pengiriman peristiwa sebagai file log ke bucket Amazon S3 yang Anda tentukan. CloudTrail file log berisi satu atau lebih entri log. Peristiwa mewakili permintaan tunggal dari sumber mana pun dan mencakup informasi tentang operasi yang diminta, tanggal dan waktu operasi, parameter permintaan, dan sebagainya. CloudTrail file log bukanlah jejak tumpukan yang diurutkan dari panggilan API publik, jadi file tersebut tidak muncul dalam urutan tertentu.

Contoh berikut menunjukkan entri CloudTrail log yang menunjukkan `CreateStack` operasi. Operasi ini dilakukan oleh pengguna IAM bernama Alice.

**catatan**  
Hanya nama kunci parameter input yang dicatat. Nilai parameter tidak dicatat.

```
{
  "eventVersion": "1.01",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDAABCDEFGHIJKLNMOPQ",
    "arn": "arn:aws:iam::012345678910:user/Alice",
    "accountId": "012345678910",
    "accessKeyId": "AKIDEXAMPLE",
    "userName": "Alice"
  },
  "eventTime": "2014-03-24T21:02:43Z",
  "eventSource": "cloudformation.amazonaws.com",
  "eventName": "CreateStack",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "127.0.0.1",
  "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5",
  "requestParameters": {
    "templateURL": "templateURL",
    "tags": [
      {
        "key": "test",
        "value": "tag"
      }
    ],
    "stackName": "my-test-stack",
    "disableRollback": true,
    "parameters": [
      {
        "parameterKey": "password"
      },
      {
        "parameterKey": "securitygroup"
      }
    ]
  },
  "responseElements": {
    "stackId": "arn:aws:cloudformation:us-east-1:012345678910:stack/my-test-stack/a38e6a60-b397-11e3-b0fc-08002755629e"
  },
  "requestID": "9f960720-b397-11e3-bb75-a5b75389b02d",
  "eventID": "9bf6cfb8-83e1-4589-9a70-b971e727099b"
}
```

Contoh berikut menunjukkan bahwa Alice memanggil `UpdateStack` operasi pada `my-test-stack` tumpukan:

```
{
  "eventVersion": "1.01",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDAABCDEFGHIJKLNMOPQ",
    "arn": "arn:aws:iam::012345678910:user/Alice",
    "accountId": "012345678910",
    "accessKeyId": "AKIDEXAMPLE",
    "userName": "Alice"
  },
  "eventTime": "2014-03-24T21:04:29Z",
  "eventSource": "cloudformation.amazonaws.com",
  "eventName": "UpdateStack",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "127.0.0.1",
  "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5",
  "requestParameters": {
    "templateURL": "templateURL",
    "parameters": [
      {
        "parameterKey": "password"
      },
      {
        "parameterKey": "securitygroup"
      }
    ],
    "stackName": "my-test-stack"
  },
  "responseElements": {
    "stackId": "arn:aws:cloudformation:us-east-1:012345678910:stack/my-test-stack/a38e6a60-b397-11e3-b0fc-08002755629e"
  },
  "requestID": "def0bf5a-b397-11e3-bb75-a5b75389b02d",
  "eventID": "637707ce-e4a3-4af1-8edc-16e37e851b17"
}
```

Contoh berikut menunjukkan bahwa Alice menyebut `ListStacks` operasi itu.

```
{
  "eventVersion": "1.01",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDAABCDEFGHIJKLNMOPQ",
    "arn": "arn:aws:iam::012345678910:user/Alice",
    "accountId": "012345678910",
    "accessKeyId": "AKIDEXAMPLE",
    "userName": "Alice"
  },
  "eventTime": "2014-03-24T21:03:16Z",
  "eventSource": "cloudformation.amazonaws.com",
  "eventName": "ListStacks",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "127.0.0.1",
  "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5",
  "requestParameters": null,
  "responseElements": null,
  "requestID": "b7d351d7-b397-11e3-bb75-a5b75389b02d",
  "eventID": "918206d0-7281-4629-b778-b91eb0d83ce5"
}
```

Contoh berikut menunjukkan bahwa Alice memanggil `DescribeStacks` operasi pada `my-test-stack` tumpukan.

```
{
  "eventVersion": "1.01",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDAABCDEFGHIJKLNMOPQ",
    "arn": "arn:aws:iam::012345678910:user/Alice",
    "accountId": "012345678910",
    "accessKeyId": "AKIDEXAMPLE",
    "userName": "Alice"
  },
  "eventTime": "2014-03-24T21:06:15Z",
  "eventSource": "cloudformation.amazonaws.com",
  "eventName": "DescribeStacks",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "127.0.0.1",
  "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5",
  "requestParameters": {
    "stackName": "my-test-stack"
  },
  "responseElements": null,
  "requestID": "224f2586-b398-11e3-bb75-a5b75389b02d",
  "eventID": "9e5b2fc9-1ba8-409b-9c13-587c2ea940e2"
}
```

Contoh berikut menunjukkan bahwa Alice memanggil `DeleteStack` operasi pada `my-test-stack` tumpukan.

```
{
  "eventVersion": "1.01",
  "userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDAABCDEFGHIJKLNMOPQ",
    "arn": "arn:aws:iam::012345678910:user/Alice",
    "accountId": "012345678910",
    "accessKeyId": "AKIDEXAMPLE",
    "userName": "Alice"
  },
  "eventTime": "2014-03-24T21:07:15Z",
  "eventSource": "cloudformation.amazonaws.com",
  "eventName": "DeleteStack",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "127.0.0.1",
  "userAgent": "aws-cli/1.2.11 Python/2.7.4 Linux/2.6.18-164.el5",
  "requestParameters": {
    "stackName": "my-test-stack"
  },
  "responseElements": null,
  "requestID": "42dae739-b398-11e3-bb75-a5b75389b02d",
  "eventID": "4965eb38-5705-4942-bb7f-20ebe79aa9aa"
}
```

# Keamanan infrastruktur di CloudFormation
<a name="infrastructure-security"></a>

Sebagai layanan terkelola, AWS CloudFormation dilindungi oleh keamanan jaringan AWS global. Untuk informasi tentang layanan AWS keamanan dan cara AWS melindungi infrastruktur, lihat [Keamanan AWS Cloud](https://aws.amazon.com/security/). Untuk mendesain AWS lingkungan Anda menggunakan praktik terbaik untuk keamanan infrastruktur, lihat [Perlindungan Infrastruktur dalam Kerangka Kerja](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) yang * AWS Diarsiteksikan dengan Baik Pilar Keamanan*.

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses CloudFormation melalui jaringan. Klien harus mendukung hal-hal berikut:
+ Keamanan Lapisan Pengangkutan (TLS). Kami mensyaratkan TLS 1.2 dan menganjurkan TLS 1.3.
+ Sandi cocok dengan sistem kerahasiaan maju sempurna (perfect forward secrecy, PFS) seperti DHE (Ephemeral Diffie-Hellman) atau ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Sebagian besar sistem modern seperti Java 7 dan versi lebih baru mendukung mode-mode ini.

Anda dapat memanggil operasi API ini dari lokasi jaringan mana pun, CloudFormation tetapi mendukung kebijakan akses berbasis sumber daya, yang dapat mencakup pembatasan berdasarkan alamat IP sumber. Anda juga dapat menggunakan CloudFormation kebijakan untuk mengontrol akses dari titik akhir Amazon Virtual Private Cloud (Amazon VPC) tertentu atau spesifik. VPCs Secara efektif, ini mengisolasi akses jaringan ke CloudFormation sumber daya tertentu hanya dari VPC tertentu dalam AWS jaringan.

# Ketahanan di CloudFormation
<a name="disaster-recovery-resiliency"></a>

Infrastruktur AWS global dibangun di sekitar AWS Wilayah dan Zona Ketersediaan. AWS Wilayah menyediakan beberapa Availability Zone yang terpisah secara fisik dan terisolasi, yang terhubung dengan latensi rendah, throughput tinggi, dan jaringan yang sangat redundan. Dengan Zona Ketersediaan, Anda dapat merancang serta mengoperasikan aplikasi dan basis data yang secara otomatis melakukan fail over di antara zona tanpa gangguan. Zona Ketersediaan memiliki ketersediaan dan toleransi kesalahan yang lebih baik, dan dapat diskalakan dibandingkan infrastruktur pusat data tunggal atau multi tradisional. 

Untuk informasi selengkapnya tentang AWS Wilayah dan Availability Zone, lihat [Infrastruktur AWS Global](https://aws.amazon.com/about-aws/global-infrastructure/).

# Validasi kepatuhan untuk CloudFormation
<a name="cloudformation-compliance"></a>

Untuk mempelajari apakah an Layanan AWS berada dalam lingkup program kepatuhan tertentu, lihat [Layanan AWS di Lingkup oleh Program Kepatuhan Layanan AWS](https://aws.amazon.com/compliance/services-in-scope/) dan pilih program kepatuhan yang Anda minati. Untuk informasi umum, lihat [Program AWS Kepatuhan Program AWS](https://aws.amazon.com/compliance/programs/) .

Anda dapat mengunduh laporan audit pihak ketiga menggunakan AWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh Laporan di AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS ditentukan oleh sensitivitas data Anda, tujuan kepatuhan perusahaan Anda, dan hukum dan peraturan yang berlaku. Untuk informasi selengkapnya tentang tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS, lihat [Dokumentasi AWS Keamanan](https://docs.aws.amazon.com/security/).

# Konfigurasi dan analisis kerentanan di CloudFormation
<a name="vulnerability-analysis-and-management"></a>

Konfigurasi dan kontrol TI adalah tanggung jawab bersama antara AWS dan Anda, pelanggan kami. Untuk informasi selengkapnya, lihat [model tanggung jawab AWS bersama](https://aws.amazon.com/compliance/shared-responsibility-model/).

# Praktik terbaik keamanan untuk CloudFormation
<a name="security-best-practices"></a>

CloudFormation menyediakan sejumlah fitur keamanan untuk dipertimbangkan saat Anda mengembangkan dan menerapkan kebijakan keamanan Anda sendiri. Praktik terbaik berikut adalah pedoman umum dan tidak mewakili solusi keamanan yang lengkap. Karena praktik terbaik ini mungkin tidak sesuai atau tidak memadai untuk lingkungan Anda, perlakukan itu sebagai pertimbangan yang bermanfaat, bukan sebagai resep.

**Topics**
+ [Gunakan IAM untuk mengontrol akses](#use-iam-to-control-access)
+ [Jangan menanamkan kredensial dalam templat Anda](#creds)
+ [Gunakan AWS CloudTrail untuk mencatat CloudFormation panggilan](#cloudtrail)

## Gunakan IAM untuk mengontrol akses
<a name="use-iam-to-control-access"></a>

IAM adalah AWS layanan yang dapat Anda gunakan untuk mengelola pengguna dan izin mereka. AWS Anda dapat menggunakan IAM CloudFormation untuk menentukan CloudFormation tindakan apa yang dapat dilakukan pengguna, seperti melihat templat tumpukan, membuat tumpukan, atau menghapus tumpukan. Selain itu, siapa pun yang mengelola CloudFormation tumpukan akan memerlukan izin untuk sumber daya di dalam tumpukan tersebut. Misalnya, jika pengguna ingin menggunakan CloudFormation untuk meluncurkan, memperbarui, atau menghentikan EC2 instans Amazon, mereka harus memiliki izin untuk memanggil tindakan Amazon EC2 yang relevan.

Dalam kebanyakan kasus, pengguna memerlukan akses penuh untuk mengelola semua sumber daya dalam templat. CloudFormation membuat panggilan untuk membuat, memodifikasi, dan menghapus sumber daya atas nama mereka. Untuk memisahkan izin antara pengguna dan CloudFormation layanan, gunakan peran layanan. CloudFormation menggunakan kebijakan peran layanan untuk melakukan panggilan, bukan kebijakan pengguna. Untuk informasi selengkapnya, lihat [CloudFormation peran layanan](using-iam-servicerole.md).

## Jangan menanamkan kredensial dalam templat Anda
<a name="creds"></a>

Daripada menyematkan informasi sensitif di CloudFormation template Anda, kami sarankan Anda menggunakan *referensi dinamis* di template tumpukan Anda.

Referensi dinamis menyediakan cara yang ringkas dan ampuh bagi Anda untuk mereferensikan nilai eksternal yang disimpan dan dikelola di layanan lain, seperti AWS Systems Manager Parameter Store atau AWS Secrets Manager. Ketika Anda menggunakan referensi dinamis, CloudFormation mengambil nilai referensi yang ditentukan saat diperlukan selama operasi tumpukan dan set perubahan, dan meneruskan nilai ke sumber daya yang sesuai. Namun, CloudFormation tidak pernah menyimpan nilai referensi yang sebenarnya. Untuk informasi selengkapnya, lihat [Dapatkan nilai yang disimpan di layanan lain menggunakan referensi dinamis](dynamic-references.md).

[AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) membantu Anda mengenkripsi, menyimpan, dan mengambil kredensial untuk basis data dan layanan lainnya dengan aman. [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) menyediakan penyimpanan hierarkis yang aman untuk pengelolaan data konfigurasi. 

Untuk informasi lebih lanjut tentang menentukan parameter templat , lihat [CloudFormation Parameterssintaks template](parameters-section-structure.md).

## Gunakan AWS CloudTrail untuk mencatat CloudFormation panggilan
<a name="cloudtrail"></a>

AWS CloudTrail melacak siapa pun yang melakukan panggilan CloudFormation API di Anda Akun AWS. Panggilan API dicatat setiap kali ada yang menggunakan CloudFormation API, CloudFormation konsol, konsol back-end, atau CloudFormation AWS CLI perintah. Aktifkan logging dan tentukan bucket Amazon S3 untuk menyimpan log. Dengan begitu, jika Anda perlu melakukannya, Anda dapat meng-audit siapa yang membuat panggilan CloudFormation di akun Anda. Lihat informasi yang lebih lengkap di [Logging panggilan CloudFormation API dengan AWS CloudTrail](cfn-api-logging-cloudtrail.md).

# Akses CloudFormation menggunakan endpoint antarmuka ()AWS PrivateLink
<a name="vpc-interface-endpoints"></a>

Anda dapat menggunakan AWS PrivateLink untuk membuat koneksi pribadi antara VPC Anda dan. CloudFormation Anda dapat mengakses CloudFormation seolah-olah itu ada di VPC Anda, tanpa menggunakan gateway internet, perangkat NAT, koneksi VPN, atau koneksi. Direct Connect Instans di VPC Anda tidak memerlukan alamat IP publik untuk mengakses. CloudFormation

Anda membuat koneksi pribadi ini dengan membuat *titik akhir antarmuka*, yang didukung oleh AWS PrivateLink. Kami membuat antarmuka jaringan endpoint di setiap subnet yang Anda aktifkan untuk titik akhir antarmuka. Ini adalah antarmuka jaringan yang dikelola pemohon yang berfungsi sebagai titik masuk untuk lalu lintas yang ditakdirkan. CloudFormation

CloudFormation mendukung panggilan ke semua tindakan API-nya melalui titik akhir antarmuka.

## Pertimbangan untuk titik akhir CloudFormation VPC
<a name="vpc-endpoint-considerations"></a>

*Sebelum Anda menyiapkan titik akhir antarmuka, pertama-tama pastikan Anda telah memenuhi prasyarat dalam [Akses layanan AWS menggunakan topik titik akhir VPC antarmuka](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) di Panduan.AWS PrivateLink *

Prasyarat dan pertimbangan tambahan berikut berlaku saat menyiapkan titik akhir antarmuka untuk: CloudFormation
+ Jika Anda memiliki sumber daya dalam VPC yang harus menanggapi permintaan sumber daya khusus atau kondisi tunggu, pastikan mereka memiliki akses ke bucket Amazon CloudFormation S3 khusus yang diperlukan. CloudFormation memiliki bucket S3 di setiap Wilayah untuk memantau respons terhadap permintaan [sumber daya khusus](template-custom-resources.md) atau kondisi [tunggu](using-cfn-waitcondition.md). Jika templat menyertakan sumber daya kustom atau kondisi menunggu di VPC, kebijakan akhir VPC endpoint harus mengizinkan pengguna untuk mengirim respons ke bucket berikut:
  + Untuk sumber daya kustom, izinkan lalu lintas ke bucket `cloudformation-custom-resource-response-region`. Saat menggunakan sumber daya khusus, Wilayah AWS nama tidak mengandung tanda hubung. Misalnya, `uswest2`.
  + Untuk kondisi menunggu, izinkan lalu lintas ke bucket `cloudformation-waitcondition-region`. Saat menggunakan kondisi tunggu, Wilayah AWS nama memang mengandung tanda hubung. Misalnya, `us-west-2`.

  Jika kebijakan endpoint memblokir lalu lintas ke bucket ini, tidak CloudFormation akan menerima tanggapan dan operasi stack gagal. Misalnya, jika Anda memiliki sumber daya VPC di `us-west-2` Region yang harus menanggapi kondisi menunggu, sumber daya harus dapat mengirim respons ke bucket `cloudformation-waitcondition-us-west-2`.

  Untuk daftar Wilayah AWS tempat yang CloudFormation tersedia saat ini, lihat halaman [CloudFormation titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/cfn.html) di halaman. *Referensi Umum Amazon Web Services*
+ Titik akhir VPC saat ini tidak mendukung permintaan Lintas wilayah — pastikan Anda membuat titik akhir di Wilayah yang sama tempat Anda berencana untuk mengeluarkan panggilan API. CloudFormation
+ Titik akhir VPC hanya mendukung DNS yang disediakan Amazon melalui Route 53. Jika Anda ingin menggunakan DNS Anda sendiri, Anda dapat menggunakan penerusan DNS bersyarat. Untuk informasi selengkapnya, lihat [set opsi DHCP di Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html) di Panduan Pengguna Amazon VPC.
+ Grup keamanan yang dilampirkan ke VPC endpoint harus mengizinkan koneksi masuk pada port 443 dari subnet privat VPC.

## Membuat titik akhir VPC antarmuka untuk CloudFormation
<a name="vpc-endpoint-create"></a>

Anda dapat membuat titik akhir VPC untuk CloudFormation menggunakan konsol VPC Amazon atau (). AWS Command Line Interface AWS CLI Untuk informasi selengkapnya, lihat [Membuat titik akhir VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) di *Panduan Pengguna AWS PrivateLink *.

Buat titik akhir antarmuka untuk CloudFormation menggunakan nama layanan berikut:
+ **com.amazonaws. *region*.cloudformation** — Membuat titik akhir untuk operasi API. CloudFormation 

Jika Anda mengaktifkan DNS pribadi untuk titik akhir antarmuka, Anda dapat membuat permintaan API untuk CloudFormation menggunakan nama DNS Regional default. Misalnya, `cloudformation.us-east-1.amazonaws.com`.

Di Wilayah AWS mana titik akhir khusus FIPS didukung, Anda juga dapat membuat titik akhir antarmuka untuk CloudFormation menggunakan nama layanan berikut:
+ **com.amazonaws. *region*.cloudformation-fips** — Membuat titik akhir untuk CloudFormation API yang sesuai dengan [Federal](https://aws.amazon.com/compliance/fips/) Information Processing Standard (FIPS) 140-2.

Untuk daftar lengkap CloudFormation titik akhir, lihat [CloudFormation titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/cfn.html) di. *Referensi Umum Amazon Web Services*

## Membuat kebijakan titik akhir VPC untuk CloudFormation
<a name="vpc-endpoint-policy"></a>

Kebijakan endpoint adalah sumber daya IAM yang dapat Anda lampirkan ke titik akhir antarmuka. Kebijakan endpoint default memungkinkan akses penuh CloudFormation melalui titik akhir antarmuka. Untuk mengontrol akses yang diizinkan CloudFormation dari VPC Anda, lampirkan kebijakan titik akhir kustom ke titik akhir antarmuka.

 kebijakan titik akhir mencantumkan informasi berikut:
+ Prinsipal yang dapat melakukan tindakan (Akun AWS, pengguna IAM, dan peran IAM).
+ Tindakan yang dapat dilakukan.
+ Sumber daya untuk melakukan tindakan.

*Untuk informasi selengkapnya, lihat [Mengontrol akses ke titik akhir VPC menggunakan kebijakan titik akhir](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) di Panduan.AWS PrivateLink *

**Contoh: Kebijakan titik akhir VPC untuk tindakan CloudFormation**  
Berikut ini adalah contoh kebijakan endpoint untuk CloudFormation. Saat dilampirkan ke titik akhir, kebijakan ini memberikan akses ke CloudFormation tindakan yang tercantum untuk semua prinsipal di semua sumber daya. Contoh berikut menolak semua pengguna izin untuk membuat tumpukan melalui titik akhir VPC, dan memungkinkan akses penuh ke semua tindakan lain pada layanan. CloudFormation 

```
{
  "Statement": [
    {
      "Action": "cloudformation:*", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Resource": "*"
    },
    {
      "Action": "cloudformation:CreateStack", 
      "Effect": "Deny", 
      "Principal": "*", 
      "Resource": "*"
    }
  ]
}
```