Origin fetch dari bucket Object Storage Service (OSS) pribadi memungkinkan CDN mempercepat resource yang disimpan di bucket OSS pribadi. Jika server origin nama domain yang dipercepat Anda adalah bucket OSS pribadi, aktifkan fitur ini alih-alih menjadikan bucket tersebut publik.
Cara kerja
Setelah Anda mengaktifkan origin fetch dari bucket OSS pribadi, CDN secara otomatis menambahkan bidang Authorization ke header permintaan setiap permintaan origin fetch yang dikirim ke bucket OSS pribadi Anda. Nilai bidang ini adalah signature valid yang dihasilkan berdasarkan informasi identitas yang Anda otorisasi (token keamanan sementara Security Token Service (STS) atau pasangan AccessKey). OSS melakukan autentikasi permintaan berdasarkan signature tersebut.
Manfaat
Akses Aman — Anda memberikan izin read-only terbatas kepada CDN pada bucket pribadi, sehingga hanya permintaan origin fetch yang sah yang dapat mengakses bucket tersebut. Hal ini menghindari risiko keamanan akibat menjadikan bucket pribadi menjadi publik.
Optimalisasi Biaya — Permintaan pengguna akhir mengenai cache CDN. Biaya trafik lebih rendah dibandingkan biaya lalu lintas outbound internet yang dihasilkan saat pengguna mengakses OSS secara langsung. Selain itu, trafik dari CDN ke OSS dihitung sebagai trafik origin fetch, yang harganya lebih murah daripada trafik outbound internet OSS. Hal ini mengurangi biaya keseluruhan. Untuk informasi lebih lanjut, lihat Penagihan Akselerasi Konten OSS.
Pertimbangan
Sebelum mengaktifkan origin fetch dari bucket OSS pribadi, perhatikan hal-hal berikut:
Cakupan Akses — Setelah fitur ini diaktifkan, nama domain yang dipercepat dapat mengakses semua resource di bucket pribadi server origin-nya. Anda tidak dapat membatasi akses hanya ke beberapa resource tertentu di bucket tersebut dari sisi CDN.
Konflik tanda tangan — Pastikan parameter URL pada permintaan pengambilan asal tidak mengandung informasi tanda tangan. Jika mengandung, otentikasi OSS akan gagal karena satu permintaan tidak boleh menyertakan tanda tangan baik di Header maupun di URL secara bersamaan.
Konflik Fitur — Fitur ini bertentangan dengan konfigurasi halaman utama default dari fitur hosting situs web statis OSS. Untuk menggunakan kedua fitur secara bersamaan, lihat dokumentasi.
Prasyarat
Nama domain yang dipercepat telah dikonfigurasi, dan server origin-nya adalah bucket OSS Alibaba Cloud.
Bucket OSS tersebut merupakan bucket pribadi yang menyediakan autentikasi akses dan mencegah pencurian trafik oleh permintaan tidak sah.
Prosedur
Konfigurasi terdiri dari dua langkah. Pertama, selesaikan otorisasi tingkat akun satu kali yang memungkinkan CDN mengakses OSS. Kemudian, aktifkan fitur ini untuk nama domain yang dipercepat Anda.
Otorisasi CDN untuk mengakses OSS. Jika prompt otorisasi tidak muncul, lewati langkah ini.
Login ke CDN console.
Di panel navigasi kiri, klik Domain Names.
Di halaman Domain Names, klik Manage untuk nama domain target.
Di panel navigasi kiri halaman domain tertentu, klik Origin Fetch.
Di bagian Alibaba Cloud OSS Private Bucket Access, baris Role Authorization menampilkan "Akun ini belum mengotorisasi layanan CDN untuk mengakses ruang OSS Anda", dan sakelar Status dimatikan secara default.
Otorisasi satu-klik melalui CDN console direkomendasikan. Gunakan otorisasi manual di RAM jika Anda ingin membuat role dan kebijakan otorisasi sendiri.
(Direkomendasikan) Otorisasi satu-klik melalui console
Di bagian Alibaba Cloud OSS Private Bucket Access, klik Authorize.
Di halaman konfirmasi otorisasi, klik Confirm Authorization.
(Alternatif) Otorisasi manual melalui RAM
Login ke Resource Access Management (RAM) console.
Di panel navigasi kiri, pilih Permission Management > Access Policy.
Di halaman Access Policy, klik Create Policy.
Di tab Script Editor, masukkan konten kebijakan berikut.
{ "Version": "1", "Statement": [ { "Action": [ "oss:List*", "oss:Get*" ], "Resource": "*", "Effect": "Allow" } ] }Klik OK, masukkan informasi berikut di halaman Create Policy, lalu klik OK.
Policy Name: AliyunCDNAccessingPrivateOSSRolePolicy
Remarks: Kebijakan otorisasi untuk role yang digunakan CDN/DCDN dalam origin fetch dari bucket OSS pribadi. Berisi izin read-only pada OSS.
Di panel navigasi kiri, pilih Identity Management > Roles.
Di halaman Roles, klik Create Role.
Atur Trusted Entity Type menjadi Cloud Account, pilih Current Cloud Account untuk Trusted Entity Name, lalu klik OK.
Di langkah Create Role, masukkan informasi berikut:
Role Name: AliyunCDNAccessingPrivateOSSRole
Setelah role dibuat, di daftar halaman Roles, klik AliyunCDNAccessingPrivateOSSRole untuk membuka halaman edit role.
Di tab Trust Policy, klik Edit Trust Policy, masukkan informasi berikut, lalu klik OK.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "cdn.aliyuncs.com" ] } } ], "Version": "1" }Beralih ke tab Permission Management. Di tab Authorize, klik Grant Permission.
Resource Scope: account-level
Authorized Principal: pilih AliyunCDNAccessingPrivateOSSRole yang telah dibuat sebelumnya.
Access Policy: pilih Custom Policy, pilih AliyunCDNAccessingPrivateOSSRolePolicy yang telah dibuat sebelumnya, lalu klik Confirm New Authorization.
Setelah otorisasi dikonfirmasi, kembali ke halaman Origin Fetch di console CDN . Anda dapat melihat bahwa fitur Alibaba Cloud OSS Private Bucket Access telah diotorisasi.
Nyalakan Alibaba Cloud OSS Private Bucket Access dan konfigurasikan tipe origin fetch.
Temukan bagian Alibaba Cloud OSS Private Bucket Access dan nyalakan sakelarnya.
Di kotak dialog Alibaba Cloud OSS Private Bucket Access yang muncul, pilih tipe origin fetch dan klik OK.
Tabel berikut menjelaskan skenario penerapan kedua tipe origin fetch tersebut.
Origin Fetch Type | Skenario penerapan dan deskripsi |
Bucket in the Same Account | (Direkomendasikan) Berlaku ketika CDN dan bucket OSS berada di bawah akun Alibaba Cloud yang sama. Sistem secara otomatis menggunakan token keamanan temporary STS untuk autentikasi, yang mudah dikonfigurasi, tidak memerlukan manajemen kunci, dan lebih aman. Token keamanan temporary STS juga dapat digunakan untuk origin fetch cross-account. Untuk informasi lebih lanjut, lihat bagian Gunakan STS untuk origin fetch cross-account dari bucket OSS pribadi dalam topik ini. |
Bucket Across Accounts or in the Same Account | Berlaku ketika CDN dan bucket OSS berada di akun Alibaba Cloud yang berbeda dan otorisasi berbasis STS tidak dapat digunakan. Skema akun yang sama juga didukung. Metode ini mengharuskan Anda secara manual menyediakan ID AccessKey dan Rahasia AccessKey dari akun Alibaba Cloud pemilik bucket OSS pribadi target untuk origin fetch. Untuk informasi lebih lanjut, lihat Buat AccessKey. |
Setelah Anda mengklik OK, origin fetch dari bucket OSS pribadi diaktifkan untuk nama domain yang dipercepat.
Gunakan STS untuk origin fetch cross-account dari bucket OSS pribadi
Secara default, CDN menggunakan token keamanan sementara STS dan hanya mendukung origin fetch dari bucket OSS pribadi di bawah akun yang sama. Untuk menggunakan token keamanan sementara STS dalam origin fetch cross-account dari bucket OSS pribadi, aktifkan tipe origin fetch berbasis STS di sisi CDN dan tambahkan kebijakan bucket di sisi OSS.
Di sisi OSS, konfigurasikan kebijakan bucket sebagai berikut:
Login ke akun Alibaba Cloud tempat bucket pribadi berada dan buka OSS console.
Klik Buckets > target bucket. Buka tab Permission Control > Bucket Policy dan klik Authorize.
Untuk Authorized User, pilih Other Account. Berdasarkan metode otorisasi yang digunakan saat CDN mengambil dari OSS, masukkan ARN dalam format yang sesuai di Authorized Account:
Otorisasi STS Langsung: masukkan
arn:sts:uid, di manauidadalah ID akun akun tempat CDN berada.AssumeRole: masukkan
arn:sts://{CDN_account_UID}:assumed-role/{CDN_account_role_name}/*, di mana{CDN_account_UID}adalah ID akun tempat CDN berada dan{CDN_account_role_name}adalah nama role yang diasumsikan oleh akun CDN. Jika CDN mengambil dari OSS dengan mengasumsikan role, Anda harus menggunakan format ini. Jika tidak, terjadi error 403.
Untuk Authorized Operation, pilih Quick Setup > Read-Only (excluding ListObject), lalu klik OK untuk menyelesaikan konfigurasi.
Setelah otorisasi ditambahkan, tab Bucket Policy menampilkan informasi otorisasi tersebut.
Rekomendasi penguatan keamanan
Setelah origin fetch dari bucket OSS pribadi diaktifkan, data di server origin Anda aman. Namun, resource yang di-cache di node tepi CDN dapat diakses publik secara default. Untuk mencegah pencurian trafik, gunakan fitur ini bersama fitur keamanan berikut yang disediakan oleh CDN:
Konfigurasikan Daftar Hitam Referer atau Daftar Putih: hanya mengizinkan permintaan dari situs web referrer tertentu untuk mengakses resource CDN Anda.
Konfigurasikan Penandatanganan URL: mengonfigurasi signature dinamis dan waktu kedaluwarsa untuk URL resource Anda guna mencegah unduhan jahat.
Nonaktifkan origin fetch dari bucket OSS pribadi
Jika Anda tidak lagi ingin nama domain yang dipercepat mengakses resource di bucket pribadi di bawah akun yang sama, cabut otorisasi role terkait di Resource Access Management (RAM) console untuk menonaktifkan izin CDN dalam mengambil dari bucket OSS pribadi.
Nonaktifkan fitur di CDN console.
Login ke CDN console.
Di panel navigasi kiri, klik Domain Names.
Di halaman Domain Names, klik Manage untuk nama domain target.
Di panel navigasi kiri halaman domain tertentu, klik Origin Fetch.
Di bagian Alibaba Cloud OSS Private Bucket Access, matikan sakelar Alibaba Cloud OSS Private Bucket Access.
Hapus sepenuhnya otorisasi di RAM console.
Login ke Resource Access Management (RAM) console.
Di panel navigasi kiri, pilih Identity Management > Roles.
Di daftar nama role, klik role AliyunCDNAccessingPrivateOSSRole.
Hapus semua izin dari role AliyunCDNAccessingPrivateOSSRole.
Di halaman detail role, tab Permission Management mencantumkan kebijakan sistem yang diotorisasi (catatan: kebijakan otorisasi untuk role yang digunakan CDN dalam origin fetch dari bucket OSS pribadi, yang berisi izin read-only pada OSS). Cakupan resource-nya adalah tingkat akun. Tombol Delete Role berada di pojok kanan atas halaman.
a. Di kolom Actions, klik Revoke Authorization.
b. Di kotak dialog konfirmasi pencabutan izin, klik Revoke Authorization.
Kembali ke halaman Identity Management > Roles dan hapus role AliyunCDNAccessingPrivateOSSRole.
a. Klik Delete Role untuk role AliyunCDNAccessingPrivateOSSRole.
b. Di kotak dialog konfirmasi Delete Role, klik Delete Role.
Kembali ke halaman Permission Management > Access Policy dan hapus kebijakan AliyunCDNAccessingPrivateOSSRolePolicy.
a. Klik Delete Access Policy untuk kebijakan AliyunCDNAccessingPrivateOSSRolePolicy.
b. Di kotak dialog konfirmasi Delete Access Policy, masukkan Nama Kebijakan dan klik Delete Access Policy.
Referensi
Jika terjadi error seperti
This request is forbidden by kms.atauYou have no right to access this object because of bucket acl.saat CDN mengakses resource OSS, lihat Panduan Troubleshooting Origin Fetch untuk metode penanganannya.Praktik Terbaik Penggunaan CDN untuk Mempercepat Resource OSS