Jika Pasangan Kunci Akses milik pengguna individu atau perusahaan bocor, pihak yang tidak berwenang dapat mengakses dan melakukan operasi terhadap resource Object Storage Service (OSS), sehingga mengancam keamanan data. Untuk mengatasi hal ini, OSS menyediakan praktik terbaik guna memastikan keamanan data.
Praktik terbaik berikut merupakan langkah-langkah keamanan umum, bukan solusi keamanan lengkap. Praktik ini hanya disediakan sebagai referensi dan mungkin tidak sesuai dengan skenario bisnis Anda. Kami menyarankan agar Anda tetap waspada terhadap ancaman keamanan data dan menerapkan langkah pencegahan yang diperlukan.
Tetapkan ACL bucket atau objek Anda ke private
Jangan menetapkan access control list (ACL) bucket atau objek Anda ke public-read atau public-read-write kecuali bisnis Anda benar-benar mengharuskan semua pengguna, termasuk pengguna anonim, untuk membaca dan menulis data ke resource OSS Anda. Misalnya, jika Anda menetapkan ACL bucket ke public-read atau public-read-write, ketentuan berikut akan berlaku:
-
Public-read-write: Semua pengguna, termasuk pengguna anonim, dapat membaca dan menulis data ke objek dalam bucket tersebut.
PeringatanSemua pengguna Internet dapat mengakses objek dalam bucket dan menulis data ke bucket tersebut. Hal ini dapat menyebabkan kebocoran data serta biaya tak terduga yang tinggi. Jika seseorang menulis data atau informasi terlarang ke objek dalam bucket, kepentingan dan hak sah Anda mungkin dilanggar. Kami menyarankan agar Anda tidak menetapkan ACL bucket ke public-read-write kecuali benar-benar diperlukan.
-
Public-read: Hanya pemilik bucket yang dapat menulis data ke objek dalam bucket tersebut. Pengguna lain, termasuk pengguna anonim, hanya dapat membaca data dari objek dalam bucket tersebut.
PeringatanSemua pengguna Internet dapat mengakses objek dalam bucket. Hal ini dapat menyebabkan kebocoran data serta biaya tak terduga yang tinggi. Berhati-hatilah saat menetapkan ACL bucket ke public-read.
Jika AccessKey pair bocor, penyerang memiliki kredensial sah milik pemilik. Bahkan jika ACL bucket ditetapkan ke public-read, penyerang tetap dapat menggunakan AccessKey pair yang bocor tersebut untuk memanggil DeleteObject guna menghapus objek dalam bucket. ACL public-read hanya mengontrol akses oleh pengguna anonim dan tidak membatasi operasi yang dilakukan oleh pengguna terotentikasi yang memiliki AccessKey pair yang valid. Jika AccessKey pair bocor, segera nonaktifkan AccessKey pair yang bocor tersebut dan periksa log perubahan resource bucket Anda.
Bucket atau objek yang mengizinkan akses public-read atau public-read-write dapat menyebabkan pelanggaran data. Oleh karena itu, kami menyarankan agar Anda menetapkan ACL objek atau bucket ke private. Jika ACL bucket ditetapkan ke private, hanya pemilik bucket yang dapat membaca dan menulis data ke objek dalam bucket tersebut. Pastikan bahwa bisnis Anda tidak terganggu sebelum mengubah ACL objek atau bucket menjadi private.
Anda dapat menggunakan beberapa metode untuk menetapkan ACL objek atau bucket ke private. Untuk informasi selengkapnya, lihat ACL Bucket dan Konfigurasi ACL untuk objek.
Jangan sertakan Pasangan Kunci Akses dalam bentuk teks biasa di kode atau menyimpannya secara lokal dalam bentuk terenkripsi
Pasangan Kunci Akses dalam bentuk teks biasa di kode dapat ikut bocor bersama kode tersebut. Pasangan Kunci Akses yang disimpan secara lokal dalam bentuk terenkripsi juga tidak aman karena konten terenkripsi dan hasil dekripsinya disimpan di memori, dan data di memori tersebut dapat disalin ke perangkat lain. Aplikasi mobile dan aplikasi di komputer rentan terhadap risiko ini. Untuk mendapatkan data yang telah didekripsi, penyerang cukup menggunakan teknologi seperti injection, API hooking, dan dynamic debugging.
Untuk menghindari penyertaan Pasangan Kunci Akses dalam bentuk teks biasa di kode, Anda dapat menggunakan plugin rahasia terkelola untuk Alibaba Cloud SDK di sisi server. Dengan cara ini, Anda dapat mencegah kebocoran Pasangan Kunci Akses bersama kode sumber atau kode hasil kompilasi. Untuk informasi selengkapnya tentang plugin rahasia terkelola untuk Alibaba Cloud SDK, lihat Plugin rahasia terkelola untuk Alibaba Cloud SDK.
Metode ini tidak berlaku untuk klien. Jangan menyematkan Pasangan Kunci Akses di klien.
Akses OSS menggunakan RAM user
Pasangan Kunci Akses Akun Alibaba Cloud memiliki izin atas semua operasi API. Menggunakan kredensial ini untuk melakukan operasi di OSS merupakan operasi berisiko tinggi. Kami menyarankan agar Anda menggunakan RAM user untuk memanggil operasi API atau menjalankan tugas O&M rutin.
Anda dapat membuat RAM user dan memberikan izin berbeda kepada RAM user tersebut untuk mengelola akses ke resource Anda. RAM membantu Anda menjaga kerahasiaan ketat akun dan password Alibaba Cloud Anda dalam skenario di mana beberapa pengguna di perusahaan Anda perlu mengelola resource cloud secara kolaboratif. RAM juga memungkinkan Anda memberikan hak istimewa minimal yang diperlukan guna memastikan keamanan data. Untuk informasi selengkapnya, lihat Buat RAM user.
Setelah membuat RAM user, Anda dapat menggunakan kebijakan RAM untuk memberikan izin kepada RAM user tersebut. Dengan demikian, Anda dapat mengelola pengguna—seperti karyawan, sistem, dan aplikasi—serta mengatur resource yang dapat diakses oleh pengguna tersebut. Sebagai contoh, Anda dapat menggunakan kebijakan RAM berikut untuk mencegah RAM user tertentu mengakses bucket bernama examplebucket serta objek atau direktori di dalam bucket tersebut.
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "oss:*",
"Resource": [
"acs:oss:*:*:examplebucket",
"acs:oss:*:*:examplebucket/*"
]
}
]
}
Anda juga dapat menggunakan kebijakan RAM untuk mencegah RAM user menghapus direktori dalam bucket atau memberikan otorisasi kepada RAM user hanya untuk membaca resource dalam bucket. Untuk informasi selengkapnya, lihat Contoh umum kebijakan RAM.
Aktifkan MFA
Autentikasi Multi-Faktor (MFA) adalah metode autentikasi yang mudah digunakan dan efektif. Jika Anda mengaktifkan MFA, username, password, dan kode verifikasi dinamis yang dihasilkan oleh perangkat MFA diperlukan saat Anda login ke Konsol Manajemen Alibaba Cloud. Dengan demikian, akses tidak sah dapat diblokir untuk memastikan keamanan akun Alibaba Cloud Anda jika terjadi kebocoran password.
Anda dapat mengaktifkan MFA untuk akun Alibaba Cloud Anda. Untuk informasi selengkapnya, lihat Ikatan perangkat MFA ke akun Alibaba Cloud. Anda juga dapat mengaktifkan MFA untuk RAM user. Untuk informasi selengkapnya, lihat Ikatan perangkat MFA ke RAM user.
Akses OSS menggunakan kredensial akses temporary yang disediakan oleh STS
Anda dapat menggunakan Security Token Service (STS) untuk menghasilkan kredensial akses temporary guna memberikan otorisasi kepada RAM user untuk mengakses resource OSS Anda dalam periode waktu tertentu. Dengan cara ini, Anda tidak perlu membagikan Pasangan Kunci Akses Anda, sehingga keamanan data menjadi lebih tinggi.
Untuk informasi selengkapnya tentang cara mengakses OSS menggunakan kredensial akses temporary yang disediakan oleh STS, lihat Gunakan kredensial temporary yang disediakan oleh STS untuk mengakses OSS.
Konfigurasi kebijakan bucket
Anda dapat mengonfigurasi kebijakan bucket untuk memberikan izin kepada pengguna lain mengakses resource OSS tertentu dalam sebuah bucket. Misalnya, Anda dapat mengonfigurasi kebijakan bucket untuk memberikan izin kepada akun lain mengakses atau mengelola seluruh atau sebagian resource dalam bucket Anda. Anda juga dapat mengonfigurasi kebijakan bucket untuk memberikan izin berbeda kepada RAM user yang berbeda dalam satu akun yang sama.
Saat mengonfigurasi kebijakan bucket, ikuti prinsip Hak Istimewa Minimal (PoLP) untuk mengurangi risiko keamanan.
-
Jangan memberikan izin kepada pengguna untuk mengakses seluruh resource dalam bucket Anda
Untuk mencegah pemberian izin berlebihan dan akses ilegal, kami menyarankan agar Anda hanya memberikan izin pada jalur resource yang diperlukan.
-
Jangan izinkan akses anonim
Akun anonim dapat digunakan untuk mengakses OSS jika titik akhir dan nama bucket tersedia. Namun, titik akhir dapat dienumerasi, dan nama bucket dapat diperoleh dari URL objek yang dapat diakses oleh akun tersebut. Oleh karena itu, akses anonim meningkatkan risiko keamanan.
-
Tentukan Action
Saat Anda mengonfigurasi kebijakan bucket di konsol OSS, Action yang menyediakan empat operasi otorisasi hanyalah metode praktis bagi pengguna untuk mengonfigurasi kebijakan, dan action yang ditentukan mungkin tidak sesuai dengan kebutuhan bisnis Anda. Kami menyarankan agar Anda hanya memberikan izin yang diperlukan kepada pengguna melalui Advanced Settings. Sebagai contoh, izin read-only mencakup
oss:ListObjectsdanoss:GetObject. Dalam sebagian besar skenario, hanya izinoss:GetObjectyang diperlukan jika Anda ingin mengunduh objek. -
Aktifkan HTTPS untuk akses
Anda dapat mengaktifkan HTTPS untuk mengatasi isu seperti serangan man-in-the-middle dan pembajakan domain. Selain itu, jika Anda menggunakan Google Chrome untuk mengakses website HTTPS, resource HTTP pada website tersebut tidak dapat dimuat secara default. Pastikan Anda mengaktifkan HTTPS. HTTPS merupakan metode paling hemat biaya untuk mengatasi berbagai isu tersebut.
-
Tentukan alamat IP sumber
Jika alamat IP yang digunakan untuk mengakses resource OSS bersifat tetap dan dapat dienumerasi, kami menyarankan agar Anda mengonfigurasi alamat IP tersebut.
Sebagai contoh, Anda dapat menggunakan kebijakan bucket untuk memberikan izin kepada RAM user Test agar dapat mengunduh semua objek dalam direktori log di examplebucket melalui OSS SDK atau alat baris perintah ossutil.
Tetapkan Action ke Advanced Settings dan pilih oss:GetObject. Tetapkan Effect ke Allow. Pada bagian Condition, pilih HTTPS untuk Access Method dan masukkan 10.10.10.10 untuk IP =. Lalu, klik OK.