Mentransfer dari S3 melalui CloudFront

Transfer dari Amazon S3 dapat menggunakan distribusi Amazon CloudFront sebagai jalur keluar.

Transfer data melalui CloudFront dapat memanfaatkan biaya egress AWS yang lebih rendah dibandingkan dengan transfer langsung dari S3. Lihat harga CloudFront dan tagihan keluar S3 untuk mengetahui detailnya.

Menggunakan CloudFront sebagai jalur keluar tidak mengekspos objek S3 Anda kepada publik. Lihat Apakah penggunaan CloudFront mengekspos objek saya kepada publik?

Ringkasan

Untuk mentransfer data S3 melalui CloudFront, Anda harus mengikuti langkah-langkah berikut:

Mengonfigurasi Izin IAM

Ikuti petunjuk dalam Izin transfer tanpa agen untuk memberikan izin Google Cloud yang diperlukan.

Mengonfigurasi akses ke bucket S3

Ikuti petunjuk di bagian Mengonfigurasi akses ke sumber: Amazon S3 untuk mengonfigurasi akses ke data Anda di Amazon S3.

Membuat distribusi CloudFront untuk bucket S3

  1. Di akun AWS, buka CloudFront.
  2. Klik Buat distribusi CloudFront.
  3. Di bagian Origin domain, pilih bucket S3 Anda.
  4. Jalur origin harus dibiarkan kosong.
  5. Setujui Nama origin yang diisi otomatis atau tentukan nilai Anda sendiri.
  6. Di bagian Akses origin, pilih Publik. Tindakan ini tidak akan membuat bucket Anda publik; tetapi akan menunjukkan kepada CloudFront bahwa tidak ada mekanisme akses yang harus dikonfigurasi.
  7. Di bagian Cache key and origin requests:
    1. Untuk Kebijakan cache, pilih CachingDisabled. Tindakan ini mencegah CloudFront meng-cache permintaan dan menayangkannya kepada penonton yang tidak diautentikasi.
    2. Untuk Kebijakan permintaan origin, pilih AllViewerExceptHostHeader. Tindakan ini memungkinkan CloudFront meneruskan header autentikasi ke S3, sehingga Storage Transfer Service dapat mengakses bucket Anda dengan kredensial aman Anda.
  8. Di bagian Web Application Firewall (WAF), pilih Jangan aktifkan.
  9. Secara opsional, pilih Kelas harga. Storage Transfer Service memilih kumpulan pekerja berdasarkan region bucket sumber, sehingga harga CloudFront dikenakan di region tersebut. Untuk mendapatkan harga terendah, pastikan bucket sumber Anda berada di Amerika Serikat atau Eropa, atau pilih Hanya gunakan Amerika Utara dan Eropa sebagai Kelas harga di CloudFront.
  10. Klik Create CloudFront distribution.

    Setelah berhasil dibuat, halaman detail distribusi CloudFront akan ditampilkan.

  11. Perhatikan Nama domain distribusi. Contoh: https://dy1h2n3l4ob56.cloudfront.net. Jika halaman detail tidak menyertakan protokol https:// di depan nama domain distribusi, Anda harus menambahkannya sendiri saat membuat tugas transfer.

Membuat tugas transfer

Transfer melalui distribusi CloudFront didukung di konsol Google Cloud dan REST API.

Jangan sertakan informasi sensitif seperti informasi identitas pribadi (PII) atau data keamanan dalam nama tugas transfer Anda. Nama resource dapat di-propagasi ke nama resource Google Cloud lainnya dan dapat diekspos ke sistem internal Google di luar project Anda.

Konsol Google Cloud

Untuk membuat transfer menggunakan konsol Google Cloud, ikuti petunjuk untuk membuat transfer.

Saat diminta untuk memasukkan domain CloudFront, masukkan nama domain distribusi yang Anda catat di bagian sebelumnya. Anda juga dapat menemukan nilai ini tercantum di bagian CloudFront pada konsol Amazon Web Services. File ini memiliki format https://dy1h2n3l4ob56.cloudfront.net.

REST API

Untuk membuat transfer menggunakan REST API, ikuti contoh di halaman Buat transfer.

Tentukan nama domain distribusi sebagai nilai kolom transferSpec.awsS3DataSource.cloudfrontDomain:

"transferSpec": {
  "awsS3DataSource": {
    "bucketName": "AWS_SOURCE_NAME",
    "cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net",
    "awsAccessKey": {
      "accessKeyId": "AWS_ACCESS_KEY_ID",
      "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
    }
  },
  ...
}

Pertanyaan umum (FAQ)

Apakah penggunaan CloudFront mengekspos objek saya ke publik?

Tidak. Jika Anda telah mengikuti langkah-langkah konfigurasi di halaman ini, objek Anda tidak akan ditampilkan kepada publik.

  • CloudFront tidak memiliki akses langsung ke objek S3 Anda.
  • Pengguna akan menerima error permission denied jika mereka mencoba mengakses objek Anda secara langsung atau melalui CloudFront (jika bucket Anda bersifat pribadi).
  • Storage Transfer Service menandatangani permintaan ke CloudFront menggunakan kredensial yang Anda berikan dalam tugas transfer, yang memungkinkan kami mendownload objek Anda dengan aman seolah-olah kami mendownload langsung dari S3. Hal ini berfungsi karena setelan penerusan header AllViewerExceptHostHeader.