Halaman ini memberikan ringkasan tentang autentikasi origin pribadi dan petunjuk untuk menggunakannya dengan Cloud CDN.
Autentikasi origin pribadi memberi Cloud CDN akses resource jangka panjang ke bucket Amazon S3 pribadi atau penyimpanan objek kompatibel lainnya. Menggunakan origin pribadi mencegah klien melewati Cloud CDN dan mengakses origin Anda secara langsung.
Fitur ini didukung untuk Cloud CDN dengan Load Balancer Aplikasi eksternal global atau Load Balancer Aplikasi klasik.
Autentikasi origin pribadi menghadap origin, sedangkan URL yang ditandatangani dan cookie yang ditandatangani menghadap klien. Anda dapat mengaktifkan keduanya untuk konten yang sama. Autentikasi origin pribadi membatasi akses non-CDN ke origin dan konten Anda. URL dan cookie yang ditandatangani mengontrol pengguna mana yang dapat mengakses Cloud CDN.
Sebelum memulai
Buat kunci hash-based message authentication code (HMAC) untuk mengautentikasi permintaan dan kaitkan dengan akun layanan. Catat kunci akses dan secret.
Lihat Mengakses AWS menggunakan kredensial AWS Anda: Akses Terprogram dalam dokumentasi AWS.
Konfigurasi load balancer dengan backend eksternal.
Jika penyimpanan objek Anda mengharapkan nilai tertentu untuk header permintaan HTTP
Hostheader, pastikan header tersebut dikonfigurasi di layanan backend. Jika Anda tidak mengonfigurasi header permintaan kustom, layanan backend akan mempertahankan headerHostyang digunakan klien untuk terhubung ke Load Balancer Aplikasi eksternal.Untuk mengetahui langkah-langkah konfigurasi, lihat Bekerja dengan header permintaan kustom. Untuk contoh spesifik, lihat Mengonfigurasi load balancer dengan backend eksternal.
Jika perlu, update ke Google Cloud CLI versi terbaru:
gcloud components update
Mengonfigurasi autentikasi untuk origin pribadi
Untuk mengonfigurasi autentikasi origin pribadi, gunakan petunjuk berikut:
Konsol
Di konsol Google Cloud , buka halaman Cloud CDN.
Klik nama origin yang ingin Anda konfigurasi. Origin harus berjenis Custom origin.
Di halaman Origin details, klik tombol Edit.
Untuk membuka bagian Host and path rules, klik Next.
Untuk membuka bagian Cache performance, klik Next.
Di bagian Private origin authentication, pilih Authenticate requests to this origin with AWS Signature Version 4. Kemudian, tentukan informasi berikut:
- Key ID: kunci akses untuk bucket Amazon S3 atau penyimpanan objek kompatibel lainnya.
- Key: kunci secret yang digunakan untuk mengautentikasi ke penyimpanan objek. Jika Anda menggunakan bucket Cloud Storage pribadi, tentukan kunci HMAC.
- Key version: nama unik untuk merepresentasikan versi kunci.
- Region: region tempat penyimpanan objek Anda berada—
misalnya,
us-east-1.
Klik Done.
gcloud
Ekspor konfigurasi backend untuk origin pribadi Anda ke file YAML menggunakan perintah
gcloud compute backend-services export:gcloud compute backend-services export BACKEND_SERVICE_NAME \ [--destination=DESTINATION]
Ganti
DESTINATIONdengan nama file YAML—misalnya,my-private-origin.yaml.Untuk mengautentikasi permintaan backend menggunakan kunci HMAC, tentukan opsi konfigurasi tambahan ini di bagian
securitySettingsdaribackendServices:securitySettings: awsV4Authentication: accessKeyId: ACCESS_KEY_ID accessKey: ACCESS_KEY [accessKeyVersion: ACCESS_KEY_VERSION] originRegion: REGION …]Ganti kode berikut:
ACCESS_KEY_ID: ID kunci akses HMACACCESS_KEY: kunci akses HMACACCESS_KEY_VERSION(opsional): nama unik yang dapat Anda tetapkan untuk merepresentasikan versi kunciREGION: region yang valid untuk penyedia penyimpanan Anda. Untuk Amazon S3, nilainya bukan Google Cloud region.
Cuplikan berikut menunjukkan isi contoh file
my-private-origin.yaml:name: shopping-cart-services backends: - description: cart-backend-1 group: 'https://www.googleapis.com/compute/v1/projects/my-project-id/global/networkEndpointGroups/my-network-origin-group' securitySettings: awsV4Authentication: accessKeyId: AKIDEXAMPLE accessKey: c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9 accessKeyVersion: prod-access-key-v1.2 originRegion: us-east-2Untuk memperbarui origin pribadi, impor konfigurasi ke layanan backend Anda menggunakan perintah
gcloud compute backend-services import:gcloud compute backend-services import BACKEND_SERVICE_NAME \ [--source=SOURCE]
Ganti
SOURCEdengan nama file YAML.
API
Untuk mengautentikasi permintaan backend menggunakan kunci HMAC, tentukan
opsi konfigurasi tambahan ini di bagian securitySettings dari
backendServices.
Gunakan
panggilan API
Method: backendServices.insert atau
Method: backendServices.update.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
Tambahkan cuplikan berikut ke isi permintaan JSON:
securitySettings: {
awsV4Authentication: {
accessKeyId: ACCESS_KEY_ID,
accessKey: ACCESS_KEY,
[accessKeyVersion: ACCESS_KEY_VERSION],
originRegion: REGION
}
}
Ganti kode berikut:
ACCESS_KEY_ID: ID kunci akses HMACACCESS_KEY: kunci akses HMACACCESS_KEY_VERSION(opsional): nama unik yang dapat Anda tetapkan untuk merepresentasikan versi kunciREGION: region yang valid untuk penyedia penyimpanan Anda. Untuk Amazon S3, nilainya bukan Google Cloud region.
Cuplikan berikut menunjukkan konten isi permintaan JSON contoh:
securitySettings: {
awsV4Authentication: {
accessKeyId: "AKIDEXAMPLE",
accessKey: "c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9",
accessKeyVersion: "prod-access-key-v1.2",
originRegion: "us-east-2"
}
}
Nama layanan otomatis ditetapkan ke s3 untuk membuat tanda tangan.
Setelah konfigurasi ini diterapkan, Cloud CDN akan membuat
header Otorisasi HTTP untuk semua permintaan ke origin Anda.
Meng-cache respons yang diautentikasi secara pribadi
Anda mungkin ingin memastikan bahwa konten yang diautentikasi secara pribadi di-cache oleh Cloud CDN.
Untuk melakukannya, tetapkan cache mode ke Force cache all content dan tentukan TTL, sehingga semua konten yang disajikan dari origin di-cache.
Atau, jika Anda tidak ingin memaksa semua konten di-cache dengan cara yang sama,
ubah cache mode ke Use origin setting based on Cache-Control headers atau Cache static content dan pastikan header Cache-Control disetel dengan benar pada konten yang disajikan dari origin Anda.