Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat URL yang ditandatangani menggunakan kebijakan khusus
Untuk membuat URL yang ditandatangani menggunakan kebijakan khusus, selesaikan prosedur berikut.
Untuk membuat URL yang ditandatangani menggunakan kebijakan kustom
-
Jika Anda menggunakan .NET atau Java untuk membuat ditandatangani URLs, dan jika Anda belum memformat ulang kunci pribadi untuk key pair Anda dari format.pem default ke format yang kompatibel dengan.NET atau dengan Java, lakukan sekarang. Untuk informasi selengkapnya, lihat Memformat ulang kunci pribadi (hanya .NET dan Java).
-
Menggabungkan nilai-nilai berikut. Anda dapat menggunakan format dalam contoh URL yang ditandatangani ini.
https://d111111abcdef8.cloudfront.net/image.jpg
?color=red&size=medium&
Policy=eyANCiAgICEXAMPLEW1lbnQiOiBbeyANCiAgICAgICJSZXNvdXJjZSI6Imh0dHA6Ly9kemJlc3FtN3VuMW0wLmNsb3VkZnJvbnQubmV0L2RlbW8ucGhwIiwgDQogICAgICAiQ29uZGl0aW9uIjp7IA0KICAgICAgICAgIklwQWRkcmVzcyI6eyJBV1M6U291cmNlSXAiOiIyMDcuMTcxLjE4MC4xMDEvMzIifSwNCiAgICAgICAgICJEYXRlR3JlYXRlclRoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTI5Njg2MDE3Nn0sDQogICAgICAgICAiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjEyOTY4NjAyMjZ9DQogICAgICB9IA0KICAgfV0gDQp9DQo
&Signature=nitfHRCrtziwO2HwPfWw~yYDhUF5EwRunQA-j19DzZrvDh6hQ73lDx~-ar3UocvvRQVw6EkC~GdpGQyyOSKQim-TxAnW7d8F5Kkai9HVx0FIu-5jcQb0UEmatEXAMPLE3ReXySpLSMj0yCd3ZAB4UcBCAqEijkytL6f3fVYNGQI6
&Key-Pair-Id=K2JCJMDEHXQW5F
Hapus semua spasi kosong (termasuk tab dan karakter baris baru). Anda mungkin harus memasukkan karakter escape dalam string di kode aplikasi. Semua nilai memiliki tipe
String
.- 1.
Base URL for the file
-
URL dasar adalah CloudFront URL yang akan Anda gunakan untuk mengakses file jika Anda tidak menggunakan tanda tangan URLs, termasuk parameter string kueri Anda sendiri, jika ada. Pada contoh sebelumnya, URL dasar adalah.
https://d111111abcdef8.cloudfront.net/image.jpg
Untuk informasi selengkapnya tentang format URLs untuk distribusi, lihatKustomisasi format URL untuk file di CloudFront.Contoh berikut menunjukkan nilai yang Anda tentukan untuk distribusi.
-
CloudFront URL berikut adalah untuk file gambar dalam distribusi (menggunakan nama CloudFront domain). Perhatikan bahwa
image.jpg
dalamimages
direktori. Jalur menuju file dalam URL harus sesuai dengan alur menuju file pada server HTTP Anda atau pada buket Amazon S3.https://d111111abcdef8.cloudfront.net/images/image.jpg
-
CloudFront URL berikut mencakup string kueri:
https://d111111abcdef8.cloudfront.net/images/image.jpg?size=large
-
Berikut ini CloudFront URLs adalah untuk file gambar dalam distribusi. Keduanya menggunakan nama domain alternatif; yang kedua menyertakan string kueri:
https://www.example.com/images/image.jpg
https://www.example.com/images/image.jpg?color=red
-
CloudFront URL berikut adalah untuk file gambar dalam distribusi yang menggunakan nama domain alternatif dan protokol HTTPS:
https://www.example.com/images/image.jpg
-
- 2.
?
-
?
Ini menunjukkan bahwa parameter string kueri mengikuti URL dasar. Sertakan?
bahkan jika Anda tidak menentukan parameter kueri apa pun.catatan
Anda dapat menentukan parameter kueri berikut dalam urutan apa pun.
- 3.
Your query string parameters, if any
&
-
(Opsional) Anda dapat memasukkan parameter string kueri Anda sendiri. Untuk melakukannya, tambahkan ampersand (&) di antara masing-masing, seperti.
color=red&size=medium
Anda dapat menentukan parameter string kueri dalam urutan apa pun dalam URL.penting
Parameter string kueri Anda tidak dapat diberi nama
Policy
,Signature
, atauKey-Pair-Id
.Jika Anda menambahkan parameter Anda sendiri, tambahkan
&
setelah masing-masing, termasuk yang terakhir. - 4.
Policy=
base64 encoded version of policy statement
-
Pernyataan kebijakan Anda dalam format JSON, dengan spasi kosong dihapus, lalu base64 dikodekan. Untuk informasi selengkapnya, lihat Membuat pernyataan kebijakan untuk URL yang ditandatangani yang menggunakan kebijakan kustom.
Pernyataan kebijakan mengontrol akses yang diberikan oleh URL yang ditandatangani kepada pengguna. Ini mencakup URL file, tanggal dan waktu kedaluwarsa, tanggal dan waktu opsional di mana URL menjadi valid, dan alamat IP opsional atau rentang alamat IP yang diizinkan untuk mengakses file.
- 5.
&Signature=
hashed and signed version of the policy statement
-
Versi yang di-hash, ditandatangani, dan dikodekan base64 dari pernyataan kebijakan JSON. Untuk informasi selengkapnya, lihat Membuat tanda tangan untuk URL yang ditandatangani yang menggunakan kebijakan kustom.
- 6.
&Key-Pair-Id=
public key ID for the CloudFront public key whose corresponding private key you're using to generate the signature
-
ID untuk kunci CloudFront publik, misalnya,
K2JCJMDEHXQW5F
. ID kunci publik memberi tahu kunci publik CloudFront mana yang akan digunakan untuk memvalidasi URL yang ditandatangani. CloudFrontmembandingkan informasi dalam tanda tangan dengan informasi dalam pernyataan kebijakan untuk memverifikasi bahwa URL belum dirusak.Kunci publik ini harus dimiliki oleh kelompok kunci yang merupakan signer tepercaya dalam distribusi. Untuk informasi selengkapnya, lihat Tentukan penandatangan yang dapat membuat cookie yang ditandatangani URLs dan ditandatangani.
- 1.
Membuat pernyataan kebijakan untuk URL yang ditandatangani yang menggunakan kebijakan kustom
Selesaikan langkah-langkah berikut untuk membuat pernyataan kebijakan untuk URL yang ditandatangani yang menggunakan kebijakan khusus.
Misalnya pernyataan kebijakan yang mengontrol akses ke file dalam berbagai cara, lihatContoh pernyataan kebijakan untuk URL yang ditandatangani menggunakan kebijakan kustom.
Untuk membuat pernyataan kebijakan untuk URL yang ditandatangani menggunakan kebijakan kustom
-
Buat pernyataan kebijakan dengan menggunakan format JSON berikut. Ganti simbol kurang dari (
<
) dan lebih besar dari (>
), dan deskripsi di dalamnya, dengan nilai Anda sendiri. Untuk informasi selengkapnya, lihat Nilai yang Anda sebutkan dalam pernyataan kebijakan untuk URL yang ditandatangani menggunakan kebijakan khusus.{ "Statement": [ { "Resource": "<Optional but recommended: URL of the file>", "Condition": { "DateLessThan": { "AWS:EpochTime": <Required: ending date and time in Unix time format and UTC> }, "DateGreaterThan": { "AWS:EpochTime": <Optional: beginning date and time in Unix time format and UTC> }, "IpAddress": { "AWS:SourceIp": "<Optional: IP address>" } } } ] }
Perhatikan hal berikut:
-
Anda hanya dapat memasukkan satu pernyataan dalam kebijakan.
-
Gunakan pengkodean karakter UTF-8.
-
Sertakan semua nama tanda baca dan parameter persis seperti yang ditentukan. Singkatan untuk nama parameter tidak diterima.
-
Urutan parameter di
Condition
tidak masalah. -
Untuk informasi tentang nilai untuk
Resource
,DateLessThan
,DateGreaterThan
, danIpAddress
, lihat Nilai yang Anda sebutkan dalam pernyataan kebijakan untuk URL yang ditandatangani menggunakan kebijakan khusus.
-
-
Hapus semua spasi kosong (termasuk tab dan karakter baris baru) dari pernyataan kebijakan. Anda mungkin harus memasukkan karakter escape dalam string di kode aplikasi.
-
Base64 mengodekan pernyataan kebijakan menggunakan pengodean base64 MIME. Untuk informasi selengkapnya, lihat Bagian 6.8, Base64 Content-Transfer-Encoding
di RFC 2045, MIME (Ekstensi Surat Internet Serbaguna) Bagian Satu: Format Badan Pesan Internet. -
Ganti karakter yang tidak valid dalam string kueri URL dengan karakter yang valid. Tabel berikut mencantumkan karakter yang tidak valid dan valid.
Ganti karakter tidak valid ini Dengan karakter valid ini +
- (tanda hubung)
=
_ (garis bawah)
/
~ (tilde)
-
Tambahkan nilai yang dihasilkan ke URL Anda yang ditandatangani setelah
Policy=
. -
Buat tanda tangan untuk URL yang ditandatangani dengan melakukan, menandatangani, dan memberikan kode dasar64 untuk pernyataan kebijakan. Untuk informasi selengkapnya, lihat Membuat tanda tangan untuk URL yang ditandatangani yang menggunakan kebijakan kustom.
Nilai yang Anda sebutkan dalam pernyataan kebijakan untuk URL yang ditandatangani menggunakan kebijakan khusus
Saat Anda membuat pernyataan kebijakan untuk kebijakan kustom, Anda menentukan nilai berikut.
- Sumber Daya
-
URL, termasuk string kueri apa pun, tetapi tidak termasuk CloudFront
Policy
,Signature
, danKey-Pair-Id
parameter. Misalnya:https://d111111abcdef8.cloudfront.net/images/horizon.jpg\?size=large&license=yes
Anda hanya dapat menentukan satu nilai URL untuk
Resource
.penting
Anda dapat menghilangkan
Resource
parameter dalam kebijakan, tetapi melakukannya berarti siapa pun yang memiliki URL yang ditandatangani dapat mengakses semua file dalam distribusi apa pun yang terkait dengan key pair yang Anda gunakan untuk membuat URL yang ditandatangani.Perhatikan hal berikut:
-
Protokol – Nilai harus dimulai dengan
http://
,https://
, atau*://
. -
Parameter string kueri - Jika URL memiliki parameter string kueri, gunakan karakter garis miring terbalik (
\
) untuk menghindari karakter tanda tanya (?
) yang memulai string kueri. Misalnya:https://d111111abcdef8.cloudfront.net/images/horizon.jpg\?size=large&license=yes
-
Karakter wildcard — Anda dapat menggunakan karakter wildcard di URL dalam kebijakan. Karakter wildcard berikut didukung:
-
asterisk (
*
), yang cocok dengan nol atau lebih karakter -
tanda tanya (
?
), yang cocok persis dengan satu karakter
Saat CloudFront mencocokkan URL dalam kebijakan dengan URL dalam permintaan HTTP, URL dalam kebijakan dibagi menjadi empat bagian—protokol, domain, jalur, dan string kueri—sebagai berikut:
[protocol]://[domain]/[path]\?[query string]
Bila Anda menggunakan karakter wildcard di URL dalam kebijakan, pencocokan wildcard hanya berlaku dalam batas bagian yang berisi wildcard. Misalnya, pertimbangkan URL ini dalam kebijakan:
https://www.example.com/hello*world
Dalam contoh ini, wildcard asterisk (
*
) hanya berlaku di bagian jalur, sehingga cocok dengan URLshttps://www.example.com/helloworld
danhttps://www.example.com/hello-world
, tetapi tidak cocok dengan URL.https://www.example.net/hello?world
Pengecualian berikut berlaku untuk batas bagian untuk pencocokan wildcard:
-
Tanda bintang di bagian jalur menyiratkan tanda bintang di bagian string kueri. Misalnya,
http://example.com/hello*
setara denganhttp://example.com/hello*\?*
. -
Tanda bintang tertinggal di bagian domain menyiratkan tanda bintang di bagian jalur dan string kueri. Misalnya,
http://example.com*
setara denganhttp://example.com*/*\?*
. -
URL dalam kebijakan dapat menghilangkan bagian protokol dan memulai dengan tanda bintang di bagian domain. Dalam hal ini, bagian protokol secara implisit diatur ke tanda bintang. Misalnya, URL
*example.com
dalam kebijakan setara dengan*://*example.com/
. -
Tanda bintang dengan sendirinya (
"Resource": "*"
) cocok dengan URL apa pun.
Misalnya, nilai:
https://d111111abcdef8.cloudfront.net/*game_download.zip*
dalam kebijakan cocok dengan semua hal berikut URLs:-
https://d111111abcdef8.cloudfront.net/game_download.zip
-
https://d111111abcdef8.cloudfront.net/example_game_download.zip?license=yes
-
https://d111111abcdef8.cloudfront.net/test_game_download.zip?license=temp
-
-
Nama domain alternatif — Jika Anda menentukan nama domain alternatif (CNAME) di URL dalam kebijakan, permintaan HTTP harus menggunakan nama domain alternatif di halaman web atau aplikasi Anda. Jangan tentukan URL Amazon S3 untuk file dalam kebijakan.
-
- DateLessThan
-
Tanggal dan waktu kedaluwarsa untuk URL dalam format waktu Unix (dalam detik) dan Waktu Universal Terkoordinasi (UTC). Dalam kebijakan, jangan lampirkan nilai dalam tanda kutip. Untuk informasi tentang UTC, lihat Tanggal dan Waktu di Internet: Stempel
Waktu. Misalnya, 31 Januari 2023 10:00 UTC dikonversi ke 1675159200 dalam format waktu Unix.
Ini adalah satu-satunya parameter yang diperlukan di
Condition
bagian ini. CloudFront memerlukan nilai ini untuk mencegah pengguna memiliki akses permanen ke konten pribadi Anda.Untuk informasi selengkapnya, lihat Saat CloudFront memeriksa tanggal dan waktu kedaluwarsa di URL yang ditandatangani
- DateGreaterThan (Opsional)
-
Tanggal dan waktu mulai opsional untuk URL dalam format waktu Unix (dalam detik) dan Waktu Universal Terkoordinasi (UTC). Pengguna tidak diizinkan untuk mengakses file pada atau sebelum tanggal dan waktu yang ditentukan. Jangan melampirkan nilai dalam tanda petik.
- IpAddress (Opsional)
-
Alamat IP klien membuat permintaan HTTP. Perhatikan hal berikut:
-
Untuk mengizinkan alamat IP mengakses file, hapus
IpAddress
parameter. -
Anda dapat menentukan salah satu alamat IP atau satu rentang alamat IP. Anda tidak dapat menggunakan kebijakan untuk mengizinkan akses jika alamat IP klien berada di salah satu dari dua rentang terpisah.
-
Untuk memungkinkan akses dari satu alamat IP, Anda menentukan:
"
IPv4 IP address
/32"
-
Anda harus menentukan rentang alamat IP dalam format IPv4 CIDR standar (misalnya,
192.0.2.0/24
). Untuk informasi selengkapnya, lihat Classless Inter-domain Routing (CIDR): Rencana Penetapan dan Agregasi Alamat Internet. penting
Alamat IP dalam IPv6 format, seperti 2001:0 db 8:85 a3: :8a2e: 0370:7334, tidak didukung.
Jika Anda menggunakan kebijakan khusus yang menyertakan
IpAddress
, jangan aktifkan IPv6 distribusi. Jika Anda ingin membatasi akses ke sebagian konten dengan alamat IP dan dukungan IPv6 Anda dapat membuat dua distribusi untuk konten lain. Untuk informasi lebih lanjut, lihat Aktifkan IPv6 dalam topik Referensi pengaturan distribusi.
-
Contoh pernyataan kebijakan untuk URL yang ditandatangani menggunakan kebijakan kustom
Contoh pernyataan kebijakan berikut menunjukkan cara mengontrol akses ke file tertentu, semua file di direktori, atau semua file yang terkait dengan ID pasangan kunci. Contoh ini juga menunjukkan cara mengontrol akses dari alamat IP individu atau serangkaian alamat IP, dan cara mencegah pengguna menggunakan URL yang ditandatangani setelah tanggal dan waktu yang ditentukan.
Jika Anda menyalin dan menempelkan salah satu contoh ini, hapus spasi kosong (termasuk tab dan karakter baris baru), ganti nilai dengan nilai Anda sendiri, dan sertakan karakter baris baru setelah tanda kurung kurung penutup (). }
Untuk informasi selengkapnya, lihat Nilai yang Anda sebutkan dalam pernyataan kebijakan untuk URL yang ditandatangani menggunakan kebijakan khusus.
Topik
Contoh pernyataan kebijakan: Akses satu file dari berbagai alamat IP
Contoh kebijakan kustom berikut dalam URL yang ditandatangani menetapkan bahwa pengguna dapat mengakses file https://d111111abcdef8.cloudfront.net/game_download.zip
dari alamat IP dalam rentang 192.0.2.0/24
hingga 31 Januari 2023 10:00 UTC:
{ "Statement": [ { "Resource": "https://d111111abcdef8.cloudfront.net/game_download.zip", "Condition": { "IpAddress": { "AWS:SourceIp": "192.0.2.0/24" }, "DateLessThan": { "AWS:EpochTime": 1675159200 } } } ] }
Contoh pernyataan kebijakan: Akses semua file dalam direktori dari berbagai alamat IP
Contoh kebijakan kustom berikut memungkinkan Anda membuat tanda tangan URLs untuk file apa pun di training
direktori, seperti yang ditunjukkan oleh karakter wildcard asterisk (*
) dalam parameter. Resource
Pengguna dapat mengakses file dari alamat IP dalam kisaran 192.0.2.0/24
hingga 31 Januari 2023 10:00 UTC:
{ "Statement": [ { "Resource": "https://d111111abcdef8.cloudfront.net/training/*", "Condition": { "IpAddress": { "AWS:SourceIp": "192.0.2.0/24" }, "DateLessThan": { "AWS:EpochTime": 1675159200 } } } ] }
Setiap URL yang ditandatangani tempat Anda menggunakan kebijakan ini memiliki URL yang mengidentifikasi file tertentu, misalnya:
https://d111111abcdef8.cloudfront.net/training/orientation.pdf
Contoh pernyataan kebijakan: Akses semua file yang terkait dengan ID key pair dari satu alamat IP
Contoh kebijakan kustom berikut memungkinkan Anda membuat tanda tangan URLs untuk file apa pun yang terkait dengan distribusi apa pun, seperti yang ditunjukkan oleh karakter wildcard asterisk (*
) dalam parameter. Resource
URL yang ditandatangani harus menggunakan https://
protokol, bukanhttp://
. Pengguna harus menggunakan alamat IP 192.0.2.10/32
. (Nilai 192.0.2.10/32
dalam notasi CIDR mengacu pada alamat IP tunggal, 192.0.2.10
.) File hanya tersedia mulai 31 Januari 2023 10:00 UTC hingga 2 Februari 2023 10:00 UTC:
{ "Statement": [ { "Resource": "https://*", "Condition": { "IpAddress": { "AWS:SourceIp": "192.0.2.10/32" }, "DateGreaterThan": { "AWS:EpochTime": 1675159200 }, "DateLessThan": { "AWS:EpochTime": 1675332000 } } } ] }
Setiap URL bertanda tangan yang Anda gunakan kebijakan ini memiliki URL yang mengidentifikasi file tertentu dalam CloudFront distribusi tertentu, misalnya:
https://d111111abcdef8.cloudfront.net/training/orientation.pdf
URL yang ditandatangani juga menyertakan ID key pair, yang harus dikaitkan dengan grup kunci tepercaya dalam distribusi (d111111abcdef8.cloudfront.net) yang Anda tentukan di URL.
Membuat tanda tangan untuk URL yang ditandatangani yang menggunakan kebijakan kustom
Tanda tangan untuk URL bertanda tangan yang menggunakan kebijakan kustom adalah versi salinan dokumen, ditandatangani, dan dikodekan base64 dari pernyataan kebijakan. Untuk membuat tanda tangan untuk kebijakan kustom, selesaikan langkah berikut.
Untuk informasi tambahan dan contoh cara membuat, menandatangani, dan mengkode pernyataan kebijakan, lihat:
Opsi 1: Untuk membuat tanda tangan dengan menggunakan kebijakan khusus
-
Gunakan fungsi hash SHA-1 dan RSA untuk me-h dan menandatangani pernyataan kebijakan JSON yang Anda buat dalam prosedur Untuk membuat pernyataan kebijakan untuk URL yang ditandatangani menggunakan kebijakan kustom. Gunakan versi pernyataan kebijakan yang tidak lagi menyertakan spasi kosong tetapi belum dikodekan base64.
Untuk kunci privat yang diperlukan oleh fungsi hash, gunakan kunci pribadi yang kunci publiknya berada dalam grup kunci yang dipercaya aktif untuk distribusi.
catatan
Metode yang Anda gunakan untuk men-emuk dan menandatangani pernyataan kebijakan tergantung pada bahasa pemrograman dan platform Anda. Untuk kode sampel, lihat Contoh kode untuk membuat tanda tangan untuk URL yang ditandatangani.
-
Hapus spasi kosong (termasuk tab dan karakter baris baru) dari string hash dan ditandatangani.
-
Base64 mengodekan string menggunakan pengodean base64 MIME. Untuk informasi selengkapnya, lihat Bagian 6.8, Base64 Content-Transfer-Encoding
di RFC 2045, MIME (Ekstensi Surat Internet Serbaguna) Bagian Satu: Format Badan Pesan Internet. -
Ganti karakter yang tidak valid dalam string kueri URL dengan karakter yang valid. Tabel berikut mencantumkan karakter yang tidak valid dan valid.
Ganti karakter tidak valid ini Dengan karakter valid ini +
- (tanda hubung)
=
_ (garis bawah)
/
~ (tilde)
-
Tambahkan nilai yang dihasilkan ke URL Anda yang ditandatangani setelah
&Signature=
, dan kembali ke Untuk membuat URL yang ditandatangani menggunakan kebijakan kustom untuk menyelesaikan penyatuan bagian URL yang Anda tanda tangani.