SEC02-BP02 Menggunakan kredensial sementara
Saat melakukan autentikasi jenis apa pun, sebaiknya gunakan kredensial sementara daripada kredensial jangka panjang untuk mengurangi atau menghindari risiko seperti pengungkapan, pembagian, dan pencurian kredensial.
Hasil yang diinginkan: Untuk mengurangi risiko kredensial jangka panjang, sebisa mungkin gunakan kredensial sementara untuk identitas mesin dan manusia. Kredensial jangka panjang menimbulkan banyak risiko, misalnya, dapat diunggah ke repositori GitHub publik dalam bentuk kode. Dengan kredensial sementara, Anda dapat secara signifikan mengurangi risiko penyusupan kredensial.
Antipola umum:
-
Developer memilih menggunakan kunci akses jangka panjang dari IAM users dibanding memperoleh kredensial sementara dari CLI menggunakan federasi.
-
Developer menyematkan kunci akses jangka panjang dalam kodenya dan mengunggah kode tersebut ke repositori Git publik.
-
Developer menyematkan kunci akses jangka panjang di aplikasi seluler yang kemudian dibuat tersedia di toko aplikasi.
-
Pengguna membagikan kunci akses jangka panjang kepada pengguna lainnya, atau karyawan yang sudah keluar dari perusahaan tetapi masih memiliki kunci akses jangka panjang.
-
Menggunakan kunci akses jangka panjang untuk identitas mesin meski kredensial sementara dapat digunakan.
Tingkat risiko yang terjadi jika praktik terbaik ini tidak dijalankan: Tinggi
Panduan implementasi
Gunakan kredensial keamanan sementara, bukan kredensial jangka panjang untuk semua permintaan CLI dan API AWS. Permintaan CLI dan API ke layanan AWS harus, hampir di setiap kasus, ditandatangani menggunakan kunci akses AWS. Permintaan ini dapat ditandatangani dengan kredensial jangka panjang maupun sementara. Satu-satunya situasi yang perlu menggunakan kredensial jangka panjang, disebut juga kunci akses jangka panjang, adalah ketika Anda menggunakan pengguna IAM atau pengguna root Akun AWS. Saat Anda bergabung ke AWS atau mengambil peran IAM melalui metode lainnya, kredensial sementara akan dibuat. Bahkan ketika Anda mengakses AWS Management Console menggunakan kredensial masuk, kredensial sementara akan dibuat untuk Anda untuk melakukan panggilan ke layanan AWS. Anda hanya memerlukan kredensial jangka panjang untuk beberapa situasi saja; hampir semua tugas dapat dilakukan menggunakan kredensial sementara.
Menghindari penggunaan kredensial jangka panjang dan mengutamakan kredensial sementara harus diikuti dengan penerapan strategi pengurangan penggunaan pengguna IAM untuk mengutamakan federasi dan peran IAM. Meski sebelumnya pengguna IAM sudah digunakan untuk identitas mesin dan manusia, kini sebaiknya jangan gunakan pengguna tersebut untuk menghindari risiko dalam penggunaan kunci akses jangka panjang.
Langkah implementasi
Untuk identitas manusia seperti karyawan, administrator, developer, operator, dan pelanggan:
-
Anda harus mengandalkan penyedia identitas terpusat dan dan mengharuskan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredensial sementara. Federasi untuk pengguna Anda dapat dilakukan dengan federasi langsung ke setiap Akun AWS
atau menggunakan AWS IAM Identity Center (pengganti AWS IAM Identity Center) dan penyedia identitas yang Anda pilih. Selain mengurangi penggunaan kredensial jangka panjang, federasi memberikan berbagai manfaat atas penggunaan pengguna IAM. Pengguna Anda juga dapat meminta kredensial sementara dari baris perintah untuk federasi langsung atau menggunakan IAM Identity Center. Artinya, ada beberapa kasus penggunaan yang memerlukan kredensial jangka panjang atau pengguna IAM untuk pengguna Anda. -
Saat memberi pihak ketiga, seperti penyedia perangkat lunak sebagai layanan (SaaS), akses ke sumber daya di Akun AWS Anda, Anda dapat menggunakan peran lintas akun dan kebijakan berbasis sumber daya.
-
Jika Anda perlu memberi aplikasi untuk konsumen atau pelanggan akses ke sumber daya AWS Anda, Anda dapat menggunakan kolam identitas Amazon Cognito atau Amazon Cognito user pools untuk menyediakan kredensial sementara. Izin untuk kredensial ini dikonfigurasikan lewat peran IAM. Anda juga dapat menentukan peran IAM terpisah dengan izin terbatas untuk pengguna tamu yang tidak diautentikasi.
Untuk identitas mesin, Anda mungkin perlu menggunakan kredensial jangka panjang. Dalam kasus tersebut, Anda harus mewajibkan beban kerja untuk menggunakan kredensial sementara dengan peran IAM untuk mengakses AWS.
-
Untuk Amazon Elastic Compute Cloud
(Amazon EC2), Anda dapat menggunakan peran untuk Amazon EC2.
-
AWS Lambda
memungkinkan Anda untuk mengonfigurasikan peran eksekusi Lambda guna memberikan izin layanan untuk melakukan tindakan AWS menggunakan kredensial sementara. Ada banyak model serupa untuk layanan AWS yang digunakan untuk memberikan kredensial sementara menggunakan peran IAM. -
Untuk perangkat IoT, Anda dapat menggunakan penyedia kredensial AWS IoT Core untuk meminta kredensial sementara.
-
Untuk sistem on-premise atau sistem yang berjalan di luar AWS yang memerlukan akses ke sumber daya AWS, Anda dapat menggunakan IAM Roles Anywhere.
Dalam beberapa skenario, kredensial sementara tidak dapat digunakan dan Anda mungkin perlu menggunakan kredensial jangka panjang. Dalam situasi tersebut, audit dan rotasikan kredensial secara berkala serta rotasikan kunci akses secara rutin untuk kasus penggunaan yang memerlukan kredensial jangka panjang. Beberapa contoh yang dapat mengharuskan kredensial jangka panjang termasuk plugin WordPress dan klien pihak ketiga AWS. Dalam situasi yang mengharuskan Anda menggunakan kredensial jangka panjang, atau untuk kredensial selain kunci akses AWS, seperti masuk ke basis data, Anda dapat menggunakan layanan yang dirancang untuk menangani manajemen rahasia, seperti AWS Secrets Manager
Sumber daya
Praktik Terbaik Terkait:
Dokumen terkait:
Video terkait: