SEC03-BP02 Memberikan hak akses paling rendah - AWS Well-Architected Framework

SEC03-BP02 Memberikan hak akses paling rendah

Salah satu praktik terbaik 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 daripada menentukan izin satu per satu untuk setiap pengguna. Misalnya, Anda dapat memberikan akses kepada sebuah grup developer untuk mengelola sumber daya untuk proyek mereka saja. Dengan cara ini, jika seorang developer keluar dari proyek, akses developer tersebut secara otomatis dicabut tanpa mengubah kebijakan akses dasar.

Hasil yang diinginkan: Pengguna hanya memiliki izin yang diperlukan untuk melakukan pekerjaannya. Pengguna 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, termasuk saat pengguna beralih ke proyek atau jabatan kerja lain. Hak akses administrator hanya boleh diberikan kepada sekelompok kecil administrator yang tepercaya. Izin harus ditinjau secara rutin untuk menghindari creep izin. Akun sistem atau mesin hanya boleh diberi rangkaian izin paling sedikit yang diperlukan untuk menyelesaikan tugas mereka.

Antipola umum:

  • Memberikan izin administrator kepada para pengguna secara default.

  • Menggunakan pengguna root untuk aktivitas harian.

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

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

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

Panduan implementasi

Prinsip hak akses paling rendah menyatakan bahwa identitas hanya boleh diizinkan untuk melakukan rangkaian tindakan sekecil mungkin yang diperlukan untuk menyelesaikan tugas tertentu. Hal ini menyeimbangkan kegunaan, efisiensi, dan keamanan. Pengoperasian berdasarkan prinsip ini membantu membatasi akses yang tidak diinginkan dan membantu memantau siapa saja yang memiliki akses ke sumber daya yang mana. Pengguna dan peran IAM secara default tidak memiliki izin apa pun. Pengguna root memiliki akses penuh secara default dan harus secara ketat dikontrol, dimonitor, dan digunakan hanya untuk 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. Contohnya, 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 membuat kebijakan IAM sendiri untuk sistem yang mereka buat, tetapi Anda juga harus menerapkan Batasan Izin untuk membatasi izin maksimum yang bisa didapatkan sistem.

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 penggunaan kebijakan terkelola AWS untuk fungsi tugas. Saat akan membuat kebijakan izin yang disesuaikan secara mendetail, mungkin sulit untuk mengetahui cara memulainya. AWS memiliki kebijakan terkelola untuk peran tugas umum, misalnya penagihan, administrator basis data, dan ilmuwan data. Kebijakan ini dapat membantu mempersempit akses yang dimiliki pengguna selagi menentukan cara menerapkan kebijakan hak akses paling rendah.

  • Hapus izin yang tidak diperlukan: Hapus izin yang tidak diperlukan dan ketatkan kebijakan yang terlalu longgar. Pembuatan kebijakan IAM Access Analyzer dapat membantu menyaring kebijakan izin.

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

  • Pertimbangkan batasan izin: Batasan izin adalah fitur untuk menggunakan kebijakan terkelola yang menetapkan izin maksimum yang dapat diberikan oleh kebijakan berbasis identitas ke entitas IAM. Batasan izin memungkinkan entitas melakukan tindakan hanya yang diizinkan oleh kebijakan berbasis identitas serta batasan izinnya.  

  • Pertimbangkan tanda sumber daya untuk izin: Model kontrol akses berbasis atribut yang menggunakan tanda sumber daya memungkinkan Anda memberikan akses berdasarkan tujuan sumber daya, pemilik, lingkungan, atau kriteria lain. Misalnya, Anda dapat menggunakan tanda sumber daya untuk membedakan lingkungan pengembangan dan produksi. Dengan tanda ini, Anda dapat membatasi developer agar hanya dapat mengakses lingkungan pengembangan. Dengan memadukan kebijakan pemberian tanda dan izin, Anda dapat memiliki akses sumber daya yang terperinci 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 di organisasi Anda. Fungsi penting dari kebijakan kontrol layanan adalah memungkinkan Anda membatasi izin pengguna root di dalam akun anggota. Pertimbangkan juga untuk menggunakan AWS Control Tower, yang menyediakan kontrol terkelola preskriptif yang makin melengkapi AWS Organizations. Anda juga dapat menentukan kontrol sendiri di dalam Control Tower.

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

  • Buat jadwal rutin untuk meninjau izin dan menghapus izin yang tidak diperlukan: Anda harus rutin meninjau akses pengguna untuk memverifikasi bahwa pengguna tidak memiliki akses yang terlalu leluasa. AWS Config dan IAM Access Analyzer dapat membantu Anda saat mengaudit izin pengguna.

  • Buat matriks peran kerja: Matrik peran kerja memberikan visualiasi untuk berbagai peran dan tingkat akses yang diperlukan dalam jejak AWS Anda. Dengan matriks peran kerja, Anda dapat menentukan dan memisahkan izin berdasarkan tanggung jawab pengguna di dalam organisasi. Gunakan grup daripada menerapkan izin secara langsung ke pengguna atau peran satu per satu.

Sumber Daya

Dokumen terkait:

Video terkait:

Contoh terkait: