SEC03-BP02 Memberikan hak akses paling rendah - Kerangka Kerja AWS Well-Architected

SEC03-BP02 Memberikan hak akses paling rendah

Salah satu praktik terbaik yang bisa digunakan adalah memberikan hanya akses yang diperlukan identitas untuk melakukan tindakan tertentu pada sumber daya tertentu dalam kondisi tertentu. Gunakan atribut grup dan identitas untuk menetapkan izin secara dinamis dalam skala besar, bukannya menentukan izin satu per satu untuk setiap pengguna. Misalnya, Anda dapat memberikan kepada sebuah grup pengembang akses untuk mengelola sumber daya untuk proyek mereka saja. Dengan cara ini, jika seorang pengembang keluar dari proyek, maka akses pengembang tersebut secara otomatis dicabut tanpa mengubah kebijakan akses dasar.

Hasil yang diinginkan: Para pengguna seharusnya hanya memiliki izin yang diperlukan untuk melakukan pekerjaannya. Para pengguna seharusnya hanya diberi akses ke lingkungan produksi untuk melakukan tugas tertentu dalam jangka waktu terbatas dan akses harus dicabut setelah tugas tersebut selesai. Izin harus dicabut jika sudah tidak digunakan lagi, termasuk saat pengguna beralih ke proyek atau jabatan kerja lain. Hak akses administrator hanya boleh diberikan kepada sekelompok kecil administrator yang sudah tepercaya. Izin harus ditinjau secara rutin untuk menghindari creep izin. Akun sistem atau mesin seharusnya hanya boleh diberi rangkaian izin paling sedikit yang diperlukan untuk menyelesaikan tugas-tugas mereka.

Anti-pola umum:

  • Memberikan izin administrator kepada para pengguna secara default.

  • Menggunakan pengguna root untuk aktivitas harian.

  • Membuat kebijakan yang terlalu permisif, tetapi tanpa memberikan hak istimewa administrator penuh.

  • Tidak meninjau izin untuk memahami apakah izin tersebut memberikan hak akses paling rendah.

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

Panduan implementasi

Prinsip hak akses paling rendah menyatakan bahwa identitas hanya boleh mendapatkan izin untuk melakukan serangkaian tindakan terkecil yang diperlukan untuk memenuhi tugas tertentu. Hal ini akan menyeimbangkan kegunaan, efisiensi, dan keamanan. Pengoperasian berdasarkan prinsip ini akan membantu Anda membatasi akses yang tidak diinginkan dan membantu Anda dalam memantau siapa saja yang memiliki akses ke sumber daya yang mana. Pengguna IAM dan peran IAM tidak memiliki izin secara default. Pengguna root memiliki akses penuh secara default dan harus dikontrol, dipantau, dan digunakan secara ketat hanya untuk tugas-tugas yang memerlukan akses root.

Kebijakan IAM digunakan untuk memberikan izin secara eksplisit ke peran IAM atau sumber daya tertentu. Contohnya, kebijakan berbasis identitas dapat dilampirkan ke grup IAM, sedangkan bucket S3 dapat dikontrol oleh kebijakan berbasis sumber daya.

Saat membuat kebijakan IAM, Anda dapat menentukan tindakan layanan, sumber daya, dan kondisi yang harus terpenuhi agar AWS dapat memberikan atau menolak akses. AWS mendukung beragam kondisi untuk membantu Anda menyaring akses. Misalnya, dengan menggunakan kunci kondisi PrincipalOrgID, Anda dapat menolak tindakan jika pemohon bukan bagian dari Organisasi AWS Anda.

Anda juga dapat mengontrol permintaan yang dibuat oleh layanan AWS atas nama Anda, seperti AWS CloudFormation yang membuat fungsi AWS Lambda, dengan menggunakan kunci kondisi CalledVia. Anda sebaiknya menggunakan berbagai macam kebijakan secara berlapis untuk membuat sistem pertahanan yang mendalam dan membatasi izin keseluruhan untuk pengguna Anda. Anda juga bisa membatasi izin yang dapat diberikan beserta kondisinya. Misalnya, Anda dapat mengizinkan tim aplikasi Anda untuk membuat kebijakan IAM mereka sendiri untuk sistem yang mereka bangun, tetapi juga harus menerapkan Batasan Izin untuk membatasi izin maksimum yang dapat diterima sistem tersebut.

Langkah-langkah implementasi

  • Implementasikan kebijakan hak akses paling rendah: Tetapkan kebijakan akses dengan hak paling rendah ke grup dan peran IAM untuk mencerminkan peran atau fungsi pengguna yang telah Anda tetapkan.

  • Pertimbangkan untuk menggunakan kebijakan terkelola AWS untuk fungsi pekerjaan. Saat akan membuat kebijakan izin yang disesuaikan secara mendetail, Anda mungkin akan mengalami kesulitan untuk mengetahui cara memulainya. AWS memiliki kebijakan terkelola untuk peran tugas umum, misalnya penagihan, administrator basis data, dan ilmuwan data. Kebijakan ini dapat membantu Anda mempersempit akses yang dimiliki pengguna sekaligus menentukan cara menerapkan kebijakan hak akses paling rendah.

  • Hapus izin yang tidak perlu: Hapus izin-izin yang tidak diperlukan dan pangkas kembali kebijakan yang terlalu permisif. Pembuatan kebijakan IAM Access Analyzer dapat membantu Anda menyempurnakan kebijakan izin.

  • Pastikan bahwa para pengguna memiliki akses terbatas ke lingkungan produksi: Pengguna hanya boleh memiliki akses ke lingkungan produksi yang memiliki kasus penggunaan yang valid. Setelah pengguna menyelesaikan tugas-tugas tertentu yang memerlukan akses produksi, akses harus dicabut. Pembatasan akses ke lingkungan produksi akan membantu Anda mencegah kejadian tak terduga yang memengaruhi produksi dan memperkecil cakupan dampak akses yang tidak diharapkan.

  • Pertimbangkan batasan izin: Batasan izin adalah sebuah fitur untuk menggunakan sebuah kebijakan terkelola yang mengatur izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas ke sebuah entitas . Batas izin entitas mengizinkannya untuk melakukan hanya tindakan yang diizinkan oleh kebijakan berbasis identitas dan batas izinnya.  

  • Pertimbangkan tag sumber daya untuk izin: Model kontrol akses berbasis atribut yang menggunakan tag sumber daya akan memungkinkan Anda untuk memberikan akses berdasarkan tujuan sumber daya, pemilik, lingkungan, atau kriteria lainnya. Misalnya, Anda dapat menggunakan tanda sumber daya untuk membedakan lingkungan pengembangan dan produksi. Dengan tanda ini, Anda dapat membatasi pengembang agar hanya dapat mengakses lingkungan pengembangan. Dengan memadukan kebijakan pemberian tanda dan izin, Anda dapat memiliki akses sumber daya yang mendetail tanpa harus menentukan kebijakan kustom dan rumit untuk setiap fungsi tugas.

  • Gunakan kebijakan kontrol layanan untuk AWS Organizations. Kebijakan kontrol layanan secara terpusat mengontrol izin maksimum yang tersedia bagi akun anggota yang ada di organisasi Anda. Fungsi penting dari kebijakan kontrol layanan adalah untuk memungkinkan Anda membatasi izin pengguna root di dalam akun anggota. Pertimbangkan juga untuk menggunakan AWS Control Tower, yang akan menyediakan kontrol terkelola preskriptif yang akan makin memperkaya AWS Organizations. Anda juga dapat menentukan kontrol Anda sendiri di dalam Control Tower.

  • Menetapkan sebuah kebijakan siklus hidup pengguna untuk organisasi Anda: Kebijakan siklus hidup pengguna akan menentukan tugas yang akan dilakukan saat pengguna berada di AWS, mengubah peran atau cakupan pekerjaan, atau tidak lagi memerlukan akses ke AWS. Peninjauan izin harus dilakukan dalam setiap langkah dalam siklus hidup pengguna untuk memverifikasi bahwa izin dibatasi dengan sesuai dan untuk menghindari creep izin.

  • Tetapkan jadwal reguler untuk meninjau izin dan menghapus izin yang tidak diperlukan: Anda harus secara teratur melakukan peninjauan akses pengguna untuk memverifikasi bahwa pengguna tidak memiliki akses yang terlalu permisif. AWS Config dan IAM Access Analyzer dapat membantu Anda saat melakukan audit izin pengguna.

  • Tetapkan matriks peran pekerjaan: Matriks peran pekerjaan memberikan visualisasi dari berbagai peran dan tingkat akses yang diperlukan dalam jejak AWS Anda. Dengan menggunakan sebuah matriks peran kerja, Anda dapat menentukan dan memisahkan izin berdasarkan tanggung jawab pengguna di dalam organisasi. Gunakan grup alih-alih menerapkan izin langsung ke masing-masing pengguna atau peran.  

Sumber daya

Dokumen terkait:

Video terkait:

Contoh terkait: