

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

# Tentukan penandatangan yang dapat membuat URL yang ditandatangani dan cookie yang ditandatangani
<a name="private-content-trusted-signers"></a>

**Topics**
+ [Pilih antara grup kunci tepercaya (disarankan) dan Akun AWS](#choosing-key-groups-or-AWS-accounts)
+ [Buat pasangan kunci untuk penandatangan Anda](#private-content-creating-cloudfront-key-pairs)
+ [Memformat ulang kunci pribadi (hanya .NET dan Java)](#private-content-reformatting-private-key)
+ [Menambahkan tanda tangan ke distribusi](#private-content-adding-trusted-signers)
+ [Pasangan kunci berputar](#private-content-rotating-key-pairs)

Untuk membuat tanda tangan atau cookie yang ditandatangani, Anda perlu *signer*. Penandatangan adalah grup kunci tepercaya yang Anda buat CloudFront, atau AWS akun yang berisi CloudFront key pair. Kami sarankan Anda menggunakan grup kunci tepercaya dengan URL dan cookie yang ditandatangani. Untuk informasi selengkapnya, lihat [Pilih antara grup kunci tepercaya (disarankan) dan Akun AWS](#choosing-key-groups-or-AWS-accounts).

Signer memiliki dua tujuan:
+ Segera setelah Anda menambahkan tanda tangan ke distribusi Anda, CloudFront mulai mengharuskan pemirsa menggunakan URL yang ditandatangani atau cookie yang ditandatangani untuk mengakses file Anda.
+ Saat Anda membuat URL atau cookie yang ditandatangani, Anda menggunakan kunci privat dari pasangan kunci signer untuk menandatangani sebagian URL atau cookie. Ketika seseorang meminta file terbatas, CloudFront membandingkan tanda tangan di URL atau cookie dengan URL atau cookie yang tidak ditandatangani, untuk memverifikasi bahwa itu belum dirusak. CloudFront juga memverifikasi bahwa URL atau cookie valid, artinya, misalnya, bahwa tanggal kedaluwarsa dan waktu belum berlalu.

Saat Anda menentukan signer, Anda juga secara tidak langsung menentukan file yang memerlukan URL atau cookie yang ditandatangani dengan menambahkan signer ke perilaku cache. Jika distribusi Anda hanya memiliki satu perilaku tembolok, penampil harus menggunakan URL atau cookie yang ditandatangani untuk mengakses setiap file dalam distribusi. Jika Anda membuat beberapa perilaku cache dan menambahkan signer ke beberapa perilaku cache dan tidak pada yang lain, Anda dapat meminta penampil untuk menggunakan tanda tangan URL atau cookie yang ditandatangani untuk mengakses beberapa file dan bukan file lainnya.

Untuk menentukan tanda tangan (kunci pribadi) yang diizinkan untuk membuat URL yang ditandatangani atau cookie yang ditandatangani, dan untuk menambahkan tanda tangan ke CloudFront distribusi Anda, lakukan tugas-tugas berikut:

1. Putuskan apakah akan menggunakan grup kunci tepercaya atau Akun AWS sebagai penandatangan. Kami merekomendasikan penggunaan grup kunci tepercaya. Untuk informasi selengkapnya, lihat [Pilih antara grup kunci tepercaya (disarankan) dan Akun AWS](#choosing-key-groups-or-AWS-accounts).

1. Untuk signer yang Anda pilih pada langkah 1, buat pasangan kunci publik–pribadi. Untuk informasi selengkapnya, lihat [Buat pasangan kunci untuk penandatangan Anda](#private-content-creating-cloudfront-key-pairs).

1. Jika Anda menggunakan .NET atau Java untuk membuat tanda tangan atau cookie yang ditandatangani, format ulang kunci privat. Untuk informasi selengkapnya, lihat [Memformat ulang kunci pribadi (hanya .NET dan Java)](#private-content-reformatting-private-key).

1. Dalam distribusi tempat Anda membuat URL atau cookie yang ditandatangani, tentukan signernya. Untuk informasi selengkapnya, lihat [Menambahkan tanda tangan ke distribusi](#private-content-adding-trusted-signers).

## Pilih antara grup kunci tepercaya (disarankan) dan Akun AWS
<a name="choosing-key-groups-or-AWS-accounts"></a>

Menggunakan tanda tangan atau cookie yang ditandatangani, Anda perlu *signer*. Penandatangan adalah grup kunci tepercaya yang Anda buat CloudFront, atau Akun AWS yang berisi CloudFront key pair. Kami sarankan Anda menggunakan grup kunci tepercaya, karena alasan berikut:
+ Dengan grup CloudFront kunci, Anda tidak perlu menggunakan pengguna root AWS akun untuk mengelola kunci publik untuk URL yang CloudFront ditandatangani dan cookie yang ditandatangani. [AWS praktik terbaik](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html#aws_tasks-that-require-root) merekomendasikan agar Anda tidak menggunakan pengguna root saat Anda tidak perlu melakukannya.
+ Dengan grup CloudFront kunci, Anda dapat mengelola kunci publik, grup kunci, dan penandatangan tepercaya menggunakan CloudFront API. Anda dapat menggunakan API untuk mengotomatiskan pembuatan kunci dan rotasi utama. Saat Anda menggunakan pengguna AWS root, Anda harus menggunakan Konsol Manajemen AWS untuk mengelola pasangan CloudFront kunci, sehingga Anda tidak dapat mengotomatiskan prosesnya.
+ Karena Anda dapat mengelola grup kunci dengan CloudFront API, Anda juga dapat menggunakan kebijakan izin AWS Identity and Access Management (IAM) untuk membatasi apa yang diizinkan dilakukan oleh pengguna yang berbeda. Misalnya, Anda dapat mengizinkan pengguna mengunggah kunci publik, tetapi tidak dapat menghapusnya. Atau Anda dapat mengizinkan pengguna untuk menghapus kunci publik, tetapi hanya jika kondisi tertentu terpenuhi, seperti menggunakan autentikasi multifaktor, mengirim permintaan dari jaringan tertentu, atau mengirim permintaan dalam rentang tanggal dan waktu tertentu.
+ Dengan grup CloudFront kunci, Anda dapat mengaitkan jumlah kunci publik yang lebih tinggi dengan CloudFront distribusi Anda, memberi Anda lebih banyak fleksibilitas dalam cara Anda menggunakan dan mengelola kunci publik. Secara default, Anda dapat mengaitkan hingga empat kelompok utama dengan satu distribusi, dan Anda dapat memiliki hingga lima kunci publik dalam grup utama.

  Saat Anda menggunakan pengguna root AWS akun untuk mengelola pasangan CloudFront kunci, Anda hanya dapat memiliki hingga dua pasangan CloudFront kunci aktif per AWS akun.

## Buat pasangan kunci untuk penandatangan Anda
<a name="private-content-creating-cloudfront-key-pairs"></a>

Setiap penandatangan yang Anda gunakan untuk membuat URL yang CloudFront ditandatangani atau cookie yang ditandatangani harus memiliki key pair publik-pribadi. Penandatangan menggunakan kunci pribadinya untuk menandatangani URL atau cookie, dan CloudFront menggunakan kunci publik untuk memverifikasi tanda tangan.

Cara Anda membuat key pair tergantung pada apakah Anda menggunakan grup kunci tepercaya sebagai penandatangan (recommended), atau CloudFront key pair. Untuk informasi selengkapnya, silakan lihat bagian-bagian berikut ini. Pasangan kunci yang Anda buat harus memenuhi persyaratan berikut:
+ Ini harus berupa key pair SSH-2 RSA 2048 atau ECDSA 256.
+ Informasi tersebut harus dalam format PEM yang dikodekan base64.

Untuk membantu mengamankan aplikasi Anda, kami sarankan Anda memutar pasangan kunci secara berkala. Untuk informasi selengkapnya, lihat [Pasangan kunci berputar](#private-content-rotating-key-pairs).

### Buat pasangan kunci untuk kelompok kunci yang dipercaya (disarankan)
<a name="create-key-pair-and-key-group"></a>

Untuk membuat pasangan kunci untuk grup kunci tepercaya, lakukan langkah-langkah berikut:

1. Ciptakan pasangan kunci publik–pribadi.

1. Unggah kunci publik ke CloudFront.

1. Tambahkan kunci publik ke grup CloudFront kunci.

Untuk informasi selengkapnya, lihat prosedur berikut.<a name="private-content-uploading-cloudfront-public-key-procedure"></a>

**Untuk membuat pasangan kunci**
**catatan**  
Langkah-langkah berikut menggunakan OpenSSL sebagai contoh dari salah satu metode untuk membuat key pair. Ada banyak cara lain untuk membuat key pair RSA atau ECDSA.

1. Jalankan salah satu perintah contoh berikut:
   + Contoh perintah berikut menggunakan OpenSSL untuk membuat pasangan kunci RSA dengan panjang 2048 bit dan menyimpan ke file dengan nama `private_key.pem`.

     ```
     openssl genrsa -out private_key.pem 2048
     ```
   + Contoh perintah berikut menggunakan OpenSSL untuk menghasilkan key pair ECDSA `prime256v1` dengan kurva dan simpan ke file bernama. `private_key.pem`

     ```
     openssl ecparam -name prime256v1 -genkey -noout -out privatekey.pem
     ```

1. Berkas yang dihasilkan berisi baik publik maupun kunci pribadi. Contoh perintah berikut mengekstrak kunci publik dari file yang diberi nama `private_key.pem`.

   ```
   openssl rsa -pubout -in private_key.pem -out public_key.pem
   ```

   Anda mengunggah kunci publik (di `public_key.pem` file) nanti, dalam prosedur berikut.

**Untuk mengunggah kunci publik ke CloudFront**

1. Masuk ke Konsol Manajemen AWS dan buka CloudFront konsol di[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Dalam menu navigasi, pilih **Kunci publik**.

1. Pilih **Buat kunci publik**.

1. Di jendela **Create public key**, lakukan hal berikut:

   1. Untuk **Nama kunci**, ketik nama untuk mengidentifikasi kunci publik.

   1. Untuk **Nilai utama**, merekatkan kunci publik. Jika Anda mengikuti langkah-langkah dalam prosedur sebelumnya, kunci publik ada dalam file dengan nama `public_key.pem`. Untuk menyalin dan menempelkan isi kunci publik, Anda dapat:
      + Gunakan perintah **cat** pada baris perintah macOS atau Linux, seperti ini:

        ```
        cat public_key.pem
        ```

        Salin hasil dari perintah tersebut, kemudian rekatkan ke **Nilai utama** bidang.
      + Buka `public_key.pem` file dengan editor teks biasa seperti Notepad (di Windows) atau (di macOS). TextEdit Salin konten file, lalu tempelkan ke **Nilai utama** bidang.

   1. (Opsional) Untuk **Komentar**, tambahkan komentar untuk menggambarkan kunci publik.

   Setelah selesai, pilih **Tambahkan**.

1. Catat ID kunci publik. Anda menggunakannya nanti saat membuat URL atau cookie yang ditandatangani, sebagai nilai bidang `Key-Pair-Id`.

**Untuk menambahkan kunci publik ke kelompok utama**

1. Buka CloudFront konsol di[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Dalam menu navigasi, pilih **Kelompok utama**.

1. Pilih **Tambahkan kelompok kunci**.

1. Di **Buat grup utama** , lakukan hal berikut:

   1. Untuk **Nama grup utama**, ketikkan nama untuk mengidentifikasi kelompok kunci.

   1. (Opsional) Untuk **Komentar**, ketik komentar untuk mendeskripsikan kelompok utama.

   1. Untuk **Kunci publik**, pilih kunci publik untuk ditambahkan ke kelompok utama, lalu pilih **Tambahkan**. Ulangi langkah ini untuk setiap kunci publik yang ingin Anda tambahkan ke grup utama.

1. Pilih **Buat grup utama**.

1. Catat nama kelompok kunci. Anda menggunakannya nanti untuk mengaitkan grup kunci dengan perilaku cache dalam CloudFront distribusi. (Di CloudFront API, Anda menggunakan ID grup kunci untuk mengaitkan grup kunci dengan perilaku cache.)

### Buat CloudFront key pair (tidak disarankan, membutuhkan Akun AWS pengguna root)
<a name="create-key-pair-aws-account"></a>

**penting**  
Kami sarankan Anda membuat kunci publik untuk grup kunci yang dipercaya, bukan mengikuti langkah-langkah ini. Dengan cara yang direkomendasikan untuk membuat kunci publik untuk URL dan cookie yang ditandatangani, lihat [Buat pasangan kunci untuk kelompok kunci yang dipercaya (disarankan)](#create-key-pair-and-key-group).

Anda dapat membuat CloudFront key pair dengan cara berikut:
+ Buat key pair di Konsol Manajemen AWS dan unduh kunci privat. Lihat prosedur berikut.
+ Buat pasangan kunci RSA dengan menggunakan aplikasi seperti OpenSSL, lalu unggah kunci publik ke Konsol Manajemen AWS. Untuk informasi lebih lanjut tentang membuat pasangan kunci RSA, lihat [Buat pasangan kunci untuk kelompok kunci yang dipercaya (disarankan)](#create-key-pair-and-key-group).<a name="private-content-creating-cloudfront-key-pairs-procedure"></a>

**Untuk membuat pasangan CloudFront kunci di Konsol Manajemen AWS**

1. Masuk ke Konsol Manajemen AWS menggunakan kredensyal pengguna root AWS akun.
**penting**  
Pengguna IAM tidak dapat membuat pasangan CloudFront kunci. Anda harus masuk menggunakan kredensial pengguna akar untuk membuat pasangan kunci.

1. Pilih nama akun Anda, lalu pilih **Kredensial Keamanan Saya**.

1. Pilih **CloudFront pasangan kunci**.

1. Konfirmasikan bahwa Anda tidak memiliki lebih dari satu pasangan kunci aktif. Anda tidak dapat membuat pasangan kunci jika Anda sudah memiliki dua pasangan kunci aktif.

1. Pilih **Buat Pasangan Kunci Baru**.
**catatan**  
Anda juga dapat memilih untuk membuat key pair Anda sendiri dan mengunggah kunci publik. CloudFront pasangan kunci mendukung kunci 1024, 2048, atau 4096-bit.

1. Di **Buat Pasangan Utama** kotak dialog, pilih **Unduh File Kunci Pribadi**, lalu simpan file di komputer Anda.
**penting**  
Simpan kunci pribadi untuk CloudFront key pair Anda di lokasi yang aman, dan atur izin pada file sehingga hanya administrator yang diinginkan yang dapat membacanya. Jika seseorang mendapatkan kunci pribadi Anda, mereka dapat membuat URL valid yang ditandatangani dan cookie yang ditandatangani serta mengunduh konten Anda. Anda tidak bisa mendapatkan kunci pribadi lagi, jadi jika Anda kehilangan atau menghapusnya, Anda harus membuat CloudFront key pair baru.

1. Catat ID pasangan kunci untuk pasangan kunci Anda. (Dalam Konsol Manajemen AWS, ini disebut **ID Kunci Akses**.) Anda akan menggunakannya saat membuat URL atau cookie yang ditandatangani.

## Memformat ulang kunci pribadi (hanya .NET dan Java)
<a name="private-content-reformatting-private-key"></a>

Jika Anda menggunakan .NET atau Java untuk membuat tanda tangan atau cookie yang telah ditandatangani, Anda tidak dapat menggunakan kunci privat dari pasangan kunci Anda dalam format PEM default untuk membuat tanda tangan. Sebaliknya, lakukan hal berikut:
+ **Kerangka kerja .NET** – Konversikan kunci pribadi ke format XML yang digunakan kerangka kerja .NET. Tersedia beberapa alat.
+ **Jawa** – Mengonversi kunci pribadi menjadi format DER. Salah satu cara untuk melakukannya adalah dengan perintah OpenSSL. Dalam perintah berikut, `private_key.pem` adalah nama file yang berisi kunci PEM-formatted pribadi, dan `private_key.der` merupakan nama file yang berisi kunci DER-formatted pribadi setelah Anda menjalankan perintah.

  ```
  openssl pkcs8 -topk8 -nocrypt -in private_key.pem -inform PEM -out {{private_key.der}} -outform DER
  ```

  Untuk memastikan bahwa enkoder bekerja dengan benar, tambahkan JAR untuk kriptografi API Bouncy Castle Java ke proyek Anda, lalu tambahkan penyedia Bouncy Castle.

## Menambahkan tanda tangan ke distribusi
<a name="private-content-adding-trusted-signers"></a>

Penandatangan adalah grup kunci tepercaya (recommended) atau CloudFront key pair yang dapat membuat URL yang ditandatangani dan cookie yang ditandatangani untuk distribusi. Untuk menggunakan URL yang ditandatangani atau cookie yang ditandatangani dengan CloudFront distribusi, Anda harus menentukan tanda tangan.

Signer dikaitkan dengan perilaku cache. Hal ini memungkinkan Anda untuk memerlukan URL yang ditandatangani atau cookie yang ditandatangani untuk beberapa file dan bukan untuk file lain dalam distribusi yang sama. Distribusi perlu URL atau cookie yang ditandatangani hanya untuk file yang terkait dengan perilaku cache yang sesuai.

Demikian pula, signer hanya dapat menandatangani URL atau cookie untuk file yang terkait dengan perilaku cache yang sesuai. Misalnya, jika Anda memiliki satu signer untuk perilaku cache dan signer yang berbeda untuk perilaku cache yang berbeda, kedua signer tidak dapat membuat URL atau cookie yang ditandatangani untuk file yang terkait dengan perilaku cache lainnya.

**penting**  
Sebelum Anda menambahkan signer ke distribusi Anda, lakukan hal berikut:  
Tentukan pola jalur dalam perilaku cache dan urutan perilaku cache secara saksama sehingga Anda tidak memberi pengguna akses yang tidak diinginkan ke konten Anda atau mencegah mereka mengakses konten yang ingin tersedia bagi semua orang.  
Misalnya, anggaplah permintaan tersebut sesuai dengan pola jalur untuk perilaku cache. Perilaku singgahan pertama tidak memerlukan URL atau cookie yang ditandatangani dan perilaku cache kedua. Pengguna akan dapat mengakses file tanpa menggunakan URL yang ditandatangani atau cookie yang ditandatangani karena CloudFront memproses perilaku cache yang terkait dengan kecocokan pertama.  
Untuk informasi lebih lanjut tentang pola jalur, lihat [Pola jalur](DownloadDistValuesCacheBehavior.md#DownloadDistValuesPathPattern).
Untuk distribusi yang sudah Anda gunakan untuk mendistribusikan konten, pastikan Anda siap untuk mulai membuat URL dan cookie yang ditandatangani sebelum Anda menambahkan signer. Saat Anda menambahkan tanda tangan, CloudFront tolak permintaan yang tidak menyertakan URL bertanda tangan yang valid atau cookie yang ditandatangani.

Anda dapat menambahkan tanda tangan ke distribusi menggunakan CloudFront konsol atau CloudFront API.

------
#### [ Console ]

Langkah-langkah berikut menunjukkan cara menambahkan kelompok kunci tepercaya sebagai signer. Anda juga dapat menambahkan Akun AWS sebagai penandatangan tepercaya, tetapi tidak disarankan.<a name="private-content-adding-trusted-signers-console-procedure"></a>

**Untuk menambahkan signer ke distribusi menggunakan konsol**

1. Catat ID kelompok utama dari kelompok kunci yang ingin Anda gunakan sebagai signer tepercaya. Untuk informasi selengkapnya, lihat [Buat pasangan kunci untuk kelompok kunci yang dipercaya (disarankan)](#create-key-pair-and-key-group).

1. Buka CloudFront konsol di[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Pilih distribusi yang file-filenya ingin Anda lindungi dengan URL atau cookie yang ditandatangani.
**catatan**  
Untuk menambahkan signer ke distribusi baru, Anda menentukan pengaturan yang sama yang dijelaskan di langkah 6 saat Anda membuat distribusi.

1. Pilih **Perilaku** tab.

1. Pilih perilaku cache yang pola jalurnya sesuai dengan file yang ingin Anda lindungi dengan URL atau cookie yang ditandatangani, lalu pilih **Edit**.

1. Di **Edit Perilaku** , lakukan hal berikut:

   1. Untuk **Batasi Akses Penampil (Gunakan URL atau Cookie yang Ditandatangani)**, pilih **Ya**.

   1. Untuk **Grup Kunci Tepercaya atau Signer Tepercaya**, pilih **Grup Utama yang Dipercaya**.

   1. Untuk **Grup Utama yang Dipercaya**, pilih grup utama untuk ditambahkan, lalu pilih **Tambahkan**. Ulangi jika Anda ingin menambahkan lebih dari satu grup kunci.

1. Pilih **Ya, Edit** untuk memperbarui perilaku cache.

------
#### [ API ]

Anda dapat menggunakan CloudFront API untuk menambahkan grup kunci tepercaya sebagai penandatangan. Anda dapat menambahkan signer ke distribusi yang ada atau ke distribusi baru. Dalam kedua kasus, tentukan nilai dalam `TrustedKeyGroups` elemen lainnya.

Anda juga dapat menambahkan Akun AWS sebagai penandatangan tepercaya, tetapi tidak disarankan.

Lihat topik berikut di *Referensi Amazon CloudFront API*:
+ **Perbarui distribusi yang ada** — [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)
+ **Buat distribusi baru** — [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)

------

## Pasangan kunci berputar
<a name="private-content-rotating-key-pairs"></a>

Kami menyarankan agar Anda secara berkala memutar (mengubah) pasangan kunci Anda untuk URL dan cookie yang ditandatangani. Untuk memutar pasangan kunci yang Anda gunakan untuk membuat URL atau cookie yang ditandatangani tanpa membatalkan URL atau cookie yang belum kedaluwarsa, lakukan tugas berikut:

1. Buat pasangan kunci baru, dan tambahkan kunci publik ke kelompok kunci. Untuk informasi selengkapnya, lihat [Buat pasangan kunci untuk kelompok kunci yang dipercaya (disarankan)](#create-key-pair-and-key-group).

1. Jika Anda membuat grup kunci baru di langkah sebelumnya, [menambahkan grup utama ke dalam distribusi sebagai penanda tangan](#private-content-adding-trusted-signers).
**penting**  
Jangan hapus kunci publik yang ada dari grup utama, atau grup utama mana pun dari distribusi. Hanya tambahkan yang baru.

1. Perbarui aplikasi Anda untuk membuat tanda tangan menggunakan kunci pribadi dari pasangan kunci baru. Konfirmasikan bahwa URL atau cookie bertanda tangan yang ditandatangani dengan kunci privat baru berfungsi baik.

1. Tunggu hingga tanggal kedaluwarsa telah meneruskan URL atau cookie yang ditandatangani menggunakan kunci privat sebelumnya. Kemudian, hapus kunci publik lama dari kelompok utama. Jika Anda membuat grup kunci baru di langkah 2, hapus grup kunci lama dari distribusi Anda.