Ringkasan kontrol akses

Anda mengontrol siapa yang memiliki akses ke bucket dan objek Cloud Storage dan level akses yang mereka miliki.

Memilih antara akses seragam dan terperinci

Saat membuat bucket, Anda sebaiknya memutuskan apakah ingin menerapkan izin menggunakan akses seragam atau terperinci.

  • Seragam (direkomendasikan): Akses level bucket yang seragam memungkinkan Anda menggunakan Identity and Access Management (IAM) saja untuk mengelola izin. IAM menerapkan izin ke semua objek yang ada di dalam bucket atau kelompok objek dengan awalan nama yang sama. IAM juga memungkinkan Anda menggunakan fitur yang tidak tersedia saat bekerja dengan ACL, seperti folder terkelola, IAM Conditions, berbagi dengan batasan domain, dan workforce identity federation.

  • Terperinci: Penerapan terperinci memungkinkan Anda menggunakan IAM dan Access Control Lists (ACL) secara bersamaan untuk mengelola izin. ACL adalah sistem kontrol akses lama untuk Cloud Storage yang dirancang untuk interoperabilitas dengan Amazon S3. ACL juga memungkinkan Anda menentukan akses per objek.

    Karena akses terperinci mengharuskan Anda berkoordinasi antara dua sistem kontrol akses yang berbeda, ada peningkatan peluang terjadinya eksposur data yang tidak disengaja, dan mengaudit siapa yang memiliki akses ke resource menjadi lebih rumit. Terutama jika Anda memiliki objek yang berisi data sensitif, seperti informasi identitas pribadi, sebaiknya simpan data tersebut dalam bucket dengan akses tingkat bucket seragam yang diaktifkan.

Menggunakan izin IAM dengan ACL

Cloud Storage menawarkan dua sistem untuk memberi pengguna akses ke bucket dan objek Anda: IAM dan Access Control Lists (ACL). Sistem ini bertindak secara paralel - agar pengguna dapat mengakses resource Cloud Storage, hanya diperlukan satu sistem untuk memberikan izin kepada pengguna tersebut. Misalnya, jika kebijakan IAM bucket Anda hanya mengizinkan beberapa pengguna untuk membaca data objek dalam bucket, tetapi salah satu objek dalam bucket memiliki ACL yang membuatnya dapat dibaca publik, maka objek tersebut terekspos ke publik.

Pada umumnya, IAM adalah metode yang direkomendasikan untuk mengontrol akses ke resource Anda. IAM mengontrol pemberian izin di seluruh Google Cloud dan memungkinkan Anda memberikan izin di level bucket dan project. Anda sebaiknya menggunakan IAM untuk setiap izin yang berlaku pada beberapa objek dalam bucket untuk mengurangi risiko eksposur yang tidak diinginkan. Untuk menggunakan IAM secara eksklusif, aktifkan akses level bucket yang seragam agar ACL tidak diizinkan pada semua resource Cloud Storage.

ACL hanya mengontrol pemberian izin untuk resource Cloud Storage dan memiliki opsi izin yang terbatas, tetapi memungkinkan Anda memberikan izin per objek. Anda kemungkinan besar ingin menggunakan ACL untuk kasus penggunaan berikut:

  • Menyesuaikan akses ke tiap-tiap objek dalam bucket.
  • Memigrasikan data dari Amazon S3.

Opsi kontrol akses tambahan

Selain IAM dan ACL, alat berikut tersedia untuk membantu mengontrol akses ke resource Anda:

URL yang ditandatangani (autentikasi string kueri)

Gunakan URL yang ditandatangani untuk memberikan akses baca atau tulis dengan batas waktu ke objek melalui URL yang Anda buat. Siapa pun yang Anda beri URL dapat mengakses objek selama durasi waktu yang Anda tentukan, terlepas dari apakah mereka memiliki akun pengguna atau tidak.

Anda dapat menggunakan URL yang ditandatangani di samping IAM dan ACL. Misalnya, Anda dapat menggunakan IAM untuk memberi beberapa orang akses ke bucket, kemudian membuat URL yang ditandatangani yang memungkinkan orang lain mengakses resource tertentu dalam bucket tersebut.

Pelajari cara membuat URL yang ditandatangani:

Dokumen kebijakan yang ditandatangani

Gunakan dokumen kebijakan yang ditandatangani untuk menentukan apa yang dapat diupload ke bucket. Dokumen kebijakan memungkinkan kontrol yang lebih besar terhadap ukuran, jenis konten, dan karakteristik upload lainnya dibanding dengan URL yang ditandatangani. Selain itu, dokumen kebijakan juga dapat digunakan pemilik situs agar pengunjung dapat mengupload file ke Cloud Storage.

Anda dapat menggunakan dokumen kebijakan yang ditandatangani di samping IAM dan ACL. Misalnya, Anda dapat menggunakan IAM agar orang di organisasi Anda dapat mengupload objek apa pun, lalu membuat dokumen kebijakan yang ditandatangani yang memungkinkan pengunjung situs mengupload objek yang memenuhi kriteria tertentu saja.

Aturan Keamanan Firebase

Gunakan Aturan Keamanan Firebase untuk menyediakan kontrol akses berbasis atribut yang terperinci untuk aplikasi seluler dan web menggunakan Firebase SDK untuk Cloud Storage. Misalnya, Anda dapat menentukan siapa yang dapat mengupload atau mendownload objek, seberapa besar ukuran objek, atau kapan objek dapat didownload.

Pencegahan akses publik

Gunakan pencegahan akses publik untuk membatasi akses publik ke bucket dan objek Anda. Jika Anda mengaktifkan pencegahan akses publik, pengguna yang mendapatkan akses melalui allUsers dan allAuthenticatedUsers tidak diizinkan mengakses data.

Batas Akses Kredensial

Gunakan Batas Akses Kredensial untuk memperkecil cakupan izin yang tersedia untuk token akses OAuth 2.0. Pertama, tentukan Batas Akses Kredensial yang menentukan bucket mana yang dapat diakses token, serta batas atas izin yang tersedia di bucket tersebut. Anda kemudian dapat membuat token akses OAuth 2.0 dan menukarnya dengan token akses baru yang mematuhi Batas Akses Kredensial.

Pemfilteran IP bucket

Gunakan Pemfilteran IP bucket untuk membatasi akses ke bucket Anda berdasarkan alamat IP sumber permintaan. Pemfilteran IP bucket menambahkan lapisan keamanan dengan mencegah jaringan yang tidak sah mengakses bucket dan datanya. Anda dapat mengonfigurasi daftar rentang alamat IP yang diizinkan, termasuk alamat IP publik, rentang alamat IP publik, dan alamat IP dalam Virtual Private Cloud Anda. Semua permintaan yang berasal dari alamat IP yang tidak ada dalam daftar Anda akan diblokir. Akibatnya, hanya pengguna yang diizinkan yang dapat mengakses bucket Anda.

Praktik terbaik untuk IAM dan ACL

Kebijakan IAM dan ACL memerlukan pengelolaan aktif agar efektif. Sebelum membuat bucket, objek, atau folder terkelola dapat diakses oleh pengguna lain, pastikan Anda tahu dengan siapa Anda ingin membagikan resource tersebut dan peran apa yang menurut Anda perlu dimiliki masing-masing orang tersebut. Seiring waktu, perubahan pada pengelolaan project, pola penggunaan, dan kepemilikan organisasi mungkin mengharuskan Anda mengubah setelan IAM atau ACL di bucket dan project, terutama jika Anda mengelola Cloud Storage di organisasi atau untuk sekelompok besar pengguna. Saat mengevaluasi dan merencanakan setelan kontrol akses, ingatlah praktik terbaik berikut:

  • Gunakan prinsip hak istimewa terendah saat memberikan akses ke bucket, objek, atau folder terkelola Anda.

    Prinsip hak istimewa terendah adalah panduan keamanan dalam memberikan akses ke resource Anda. Saat memberikan akses berdasarkan prinsip hak istimewa terendah, Anda memberikan izin minimum yang diperlukan pengguna untuk menyelesaikan tugas yang diberikan. Misalnya, jika Anda ingin membagikan file ke seseorang, Anda harus memberi orang tersebut peran IAM Storage Object Viewer atau izin READER ACL, dan bukan peran IAM Storage Admin atau izin OWNER ACL.

  • Hindari memberikan peran IAM dengan izin setIamPolicy atau memberikan izin OWNER ACL kepada orang yang tidak Anda kenal.

    Dengan memberikan izin setIamPolicy IAM atau izin OWNER ACL, pengguna dapat mengubah izin dan mengontrol data. Sebaiknya gunakan peran dengan izin ini hanya jika Anda ingin mendelegasikan kontrol administratif atas objek, bucket, dan folder terkelola.

  • Perhatikan cara Anda memberikan izin untuk pengguna anonim.

    Jenis akun utama allUsers dan allAuthenticatedUsers hanya boleh digunakan jika siapa saja di internet boleh membaca dan menganalisis data Anda. Meskipun cakupan ini berguna untuk beberapa aplikasi dan skenario, sebaiknya jangan berikan izin tertentu kepada semua pengguna, seperti izin IAM setIamPolicy, update, create, atau delete, atau izin ACL OWNER.

  • Pastikan Anda mendelegasikan kontrol administratif bucket.

    Anda harus yakin bahwa resource Anda masih dapat dikelola oleh anggota tim lainnya jika seseorang dengan akses administratif keluar dari grup.

    Agar resource tetap dapat diakses, Anda dapat melakukan salah satu hal berikut:

    • Memberikan peran IAM Storage Admin untuk project Anda ke grup, bukan perorangan.

    • Berikan peran IAM Storage Admin untuk project Anda kepada setidaknya dua orang.

    • Berikan izin ACL OWNER untuk bucket Anda kepada setidaknya dua orang.

  • Perhatikan perilaku interoperabilitas Cloud Storage.

    Saat menggunakan XML API untuk akses interoperabilitas dengan layanan penyimpanan lain, seperti Amazon S3, ID tanda tangan akan menentukan sintaksis ACL. Misalnya, jika alat atau library yang Anda gunakan membuat permintaan ke Cloud Storage untuk mengambil ACL dan permintaan tersebut menggunakan ID tanda tangan penyedia penyimpanan lain, Cloud Storage akan menampilkan dokumen XML yang menggunakan sintaks ACL penyedia penyimpanan yang sesuai. Jika alat atau library yang Anda gunakan membuat permintaan ke Cloud Storage untuk menerapkan ACL dan permintaan tersebut menggunakan ID tanda tangan penyedia penyimpanan lain, Cloud Storage mengharapkan dokumen XML yang menggunakan sintaks ACL penyedia penyimpanan yang sesuai.

    Untuk mengetahui informasi selengkapnya tentang penggunaan XML API untuk interoperabilitas dengan Amazon S3, lihat Migrasi mudah dari Amazon S3 ke Cloud Storage.

Langkah berikutnya