View a markdown version of this page

GAMESEC04-BP01 Batasi akses konten yang dapat diunduh ke klien dan pengguna resmi - Lensa Industri Game

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

GAMESEC04-BP01 Batasi akses konten yang dapat diunduh ke klien dan pengguna resmi

Batasi akses ke konten game oleh aplikasi dan klien resmi. Pertimbangkan untuk menggunakan Amazon S3 sebagai sumber yang hemat biaya dan dapat diskalakan untuk menyimpan konten game yang dapat diunduh dan Amazon CloudFront untuk menyediakan pengiriman konten berkinerja global kepada pemain. Kedua layanan menyediakan mekanisme bawaan untuk membatasi akses ke data yang disimpan, seperti membatasi akses ke pengguna yang diautentikasi.

Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan: Tinggi

Panduan implementasi

Memberikan akses ke konten yang disimpan di Amazon S3

Ketika Anda perlu memberikan akses ke konten yang disimpan di S3, ada beberapa faktor yang perlu dipertimbangkan. Secara default, hanya Akun AWS yang membuat bucket S3 yang dapat mengakses objek yang disimpan di dalamnya. Untuk memberikan akses ke aplikasi internal Anda dan mengelola konten yang disimpan di bucket Amazon S3, gunakan AWS Identity and Access Management (IAM) untuk membuat kebijakan yang menyediakan akses yang sesuai. 

Peran IAM dapat dikaitkan dengan pengguna federasi, sistem, atau aplikasi yang dihosting di layanan, seperti Amazon EC2,, dan aplikasi berbasis kontainer AWS Lambda yang dihosting di Amazon EKS dan Amazon ECS. Misalnya, Anda dapat menggunakan AWS SDK atau AWS CLI untuk menerbitkan dan mengelola aset konten game di bucket S3. Untuk mendukung kasus penggunaan ini, Anda dapat membuat peran IAM dengan akses yang sesuai untuk membaca dan menulis konten game ke bucket S3 Anda dan mengaitkannya dengan instans EC2 yang menghosting perangkat lunak dan skrip Anda.

Resource-based kebijakan dapat ditentukan untuk bucket Anda dan untuk objek tertentu. Kebijakan bucket S3 dikaitkan dengan bucket S3 dan dapat digunakan untuk membatasi akses ke bucket dan objek di dalamnya, serta memberikan akses ke sumber daya Amazon S3 Anda dari akun lain. Misalnya, dalam skenario di mana beberapa tim atau studio pengembangan game terpisah mengerjakan konten game yang sama dan memerlukan akses yang sama ke konten yang dihosting secara terpusat di Amazon S3, Anda dapat menggunakan kebijakan bucket S3 untuk menentukan izin akses lintas akun ke sumber daya S3. Pertimbangkan untuk menggunakan titik akses S3, yang dapat menyederhanakan pengelolaan akses data ke data bersama dengan membuat titik akses dengan nama dan izin khusus untuk setiap aplikasi atau kumpulan aplikasi. Dokumentasi Amazon S3 berisi praktik terbaik tambahan untuk kontrol akses di Amazon S3.

Granting short-term access to your content

Jika akses hanya diperlukan untuk waktu terbatas tertentu, buat URL sementara yang memberikan akses jangka pendek ke konten Anda. Amazon S3 menyediakan dukungan untuk menghasilkan URL yang telah ditandatangani sebelumnya, yang memungkinkan pemilik objek memberikan akses terbatas waktu ke objek di Amazon S3 tanpa memperbarui kebijakan bucket Anda. Dengan demikian, pengguna akhir atau aplikasi yang diberikan akses tidak diharuskan memiliki akun atau izin IAM dan sebaliknya menggunakan URL yang telah ditandatangani sebelumnya untuk mengakses konten. 

Ini adalah praktik terbaik yang biasa digunakan dalam berbagai kasus penggunaan game, seperti memberikan akses pemain resmi ke konten yang dapat diunduh yang menjadi hak mereka dapatkan dan menyediakan akses sementara ke konten game waktu terbatas. URL yang telah ditandatangani sebelumnya juga dapat digunakan untuk memberikan izin sementara untuk mengunggah konten ke bucket S3. Misalnya, Anda dapat mempertimbangkan untuk menggunakan URL yang telah ditandatangani sebelumnya untuk memberi pemain akses untuk mengunggah log klien untuk membantu tim dukungan Anda memecahkan masalah kasus dukungan pemain.

Menggunakan jaringan pengiriman konten untuk menyediakan akses ke konten Anda

Meskipun aplikasi, pengembang game, artis, dan personel lainnya mungkin memerlukan akses langsung ke konten dalam bucket S3 untuk tujuan pengembangan dan manajemen, gunakan jaringan pengiriman konten untuk menyediakan akses ke konten yang tersedia untuk umum bagi pemain atau pengguna lain melalui internet. Pendekatan ini meningkatkan kinerja unduhan dan mengurangi biaya dengan menyimpan konten yang sering diakses dalam cache. Amazon CloudFront dapat mendistribusikan konten Anda secara global dengan men-cache dan mengirimkannya lebih dekat ke pemain Anda sambil mengurangi beban pada sumber unduhan game Anda, seperti Amazon S3.

Daripada menyajikan konten publik Anda langsung dari bucket S3, disarankan untuk menjaga konten ini tetap pribadi dan menyajikannya secara publik dengan menggunakan CloudFront. CloudFront dapat dikonfigurasi untuk mengharuskan pemain mengakses konten pribadi Anda (seperti unduhan game baru hanya untuk pemain berbayar) dengan menggunakan URL yang ditandatangani atau cookie yang ditandatangani. Anda kemudian dapat mengembangkan aplikasi Anda baik untuk membuat dan mendistribusikan URL yang ditandatangani kepada pengguna yang diautentikasi, atau untuk mengirim header set-cookie yang mengatur cookie yang ditandatangani untuk pengguna yang diautentikasi. Saat Anda membuat URL yang ditandatangani atau cookie yang ditandatangani untuk mengontrol akses ke file Anda, Anda dapat menentukan tanggal dan waktu akhir, setelah itu URL dan cookie tidak lagi valid. 

Secara opsional, Anda juga dapat menentukan alamat IP atau rentang alamat komputer yang dapat digunakan untuk mengakses konten Anda, yang berguna jika Anda ingin membatasi akses ke mitra studio pengembangan game tertentu atau jaringan kontraktor. Gunakan cookie yang ditandatangani saat Anda ingin memberikan akses ke beberapa file yang dibatasi, atau jika Anda tidak ingin mengubah URL Anda saat ini. Gunakan URL yang ditandatangani saat Anda ingin membatasi akses ke file individual atau jika pengguna Anda menggunakan klien yang tidak mendukung cookie. URL yang ditandatangani lebih diutamakan dibandingkan cookie yang ditandatangani.

Langkah-langkah implementasi

  • Gunakan peran IAM dan kebijakan bucket untuk memberikan akses yang sesuai ke bucket S3 untuk aplikasi internal, tim, atau skenario lintas akun.

  • Hasilkan URL yang telah ditandatangani sebelumnya untuk memberikan akses jangka pendek ke objek S3, cocok untuk konten yang dapat diunduh atau unggahan sementara seperti log klien.

  • Gunakan Amazon CloudFront dengan URL atau cookie yang ditandatangani untuk menyajikan konten pribadi dengan lebih aman kepada pengguna yang diautentikasi