SEC02-BP02 Menggunakan kredensial sementara
Saat melakukan autentikasi jenis apa pun, sebaiknya Anda menggunakan kredensial sementara alih-alih kredensial jangka panjang untuk mengurangi atau menghindari risiko, misalnya seperti risiko pengungkapan, pembagian, dan pencurian kredensial.
Hasil yang diinginkan: Untuk mengurangi adanya risiko kredensial jangka panjang, Anda harus menggunakan kredensial sementara sedapat mungkin untuk identitas manusia dan mesin. Kredensial jangka panjang menimbulkan banyak risiko, seperti, mereka dapat diunggah ke repositori GitHub publik dalam bentuk kode. Dengan menggunakan kredensial sementara, Anda dapat secara signifikan mengurangi risiko penyusupan kredensial.
Anti-pola umum:
-
Pengembang memilih menggunakan kunci akses jangka panjang dari pengguna IAM dibanding memperoleh kredensial sementara dari CLI menggunakan federasi.
-
Pengembang menyematkan kunci akses jangka panjang dalam kodenya dan mengunggah kode tersebut ke repositori Git publik.
-
Pengembang menyematkan kunci akses jangka panjang di aplikasi seluler yang kemudian dibuat tersedia di toko aplikasi.
-
Pengguna membagikan kunci akses jangka panjang kepada para 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 pun dalam kasus ini kredensial sementara dapat digunakan.
Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan: Tinggi
Panduan implementasi
Gunakan kredensial keamanan sementara alih-alih kredensial jangka panjang untuk semua permintaan CLI dan API AWS. Permintaan API dan CLI ke layanan AWS harus, dalam hampir setiap kasus, ditandatangani dengan menggunakan kunci akses AWS. Permintaan ini dapat Anda tandatangani dengan menggunakan kredensial jangka panjang maupun sementara. Satu-satunya waktu di mana Anda harus menggunakan kredensial jangka panjang, juga dikenal sebagai kunci akses jangka panjang, adalah jika Anda menggunakan pengguna IAM atau pengguna root Akun AWS. Ketika Anda berfederasi ke AWS atau mengambil peran IAM melalui metode lain, Anda akan menghasilkan kredensial sementara. Bahkan ketika Anda mengakses AWS Management Console dengan 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 dan Anda hampir dapat melakukan semua tugas dengan 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-langkah implementasi
Untuk identitas manusia seperti karyawan, administrator, pengembang, operator, dan pelanggan:
-
Anda harus mengandalkan penyedia identitas tersentralisasi dan meminta pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS dengan menggunakan kredensial sementara. Federasi untuk para pengguna Anda dapat dilakukan baik dengan melakukan federasi langsung ke setiap Akun AWS
atau menggunakan AWS IAM Identity Center dan penyedia identitas pilihan Anda. Selain mengurangi penggunaan kredensial jangka panjang, federasi memberikan berbagai manfaat atas penggunaan pengguna IAM. Para pengguna Anda juga dapat meminta kredensial sementara dari baris perintah untuk federasi langsung atau dengan menggunakan Pusat Identitas IAM. Artinya, ada beberapa kasus penggunaan yang memerlukan kredensial jangka panjang atau pengguna IAM untuk pengguna Anda. -
Saat memberikan akses kepada pihak ketiga, seperti penyedia perangkat lunak sebagai layanan (SaaS), ke sumber daya yang ada di Akun AWS Anda, Anda dapat menggunakan peran lintas akun dan kebijakan berbasis sumber daya.
-
Jika Anda perlu memberikan aplikasi untuk akses konsumen atau pelanggan ke sumber daya AWS Anda, Anda dapat menggunakan kolam identitas Amazon Cognito atau kumpulan pengguna Amazon Cognito untuk memberikan kredensial sementara untuk mereka. Izin untuk kredensial dikonfigurasi melalui peran IAM. Anda juga dapat menentukan peran IAM terpisah dengan izin terbatas untuk pengguna tamu yang tidak melalui proses auntetikasi.
Untuk identitas mesin, Anda mungkin perlu menggunakan kredensial jangka panjang. Dalam kasus ini, Anda seharusnya 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 mengonfigurasi peran eksekusi Lambda untuk memberikan izin layanan untuk melakukan tindakan AWS dengan 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 membuat permintaan 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 ini, lakukan audit dan rotasi kredensial secara berkala dan rotasi kunci akses secara rutin untuk kasus penggunaan yang memerlukan kredensial jangka panjang. Beberapa contoh yang mungkin mengharuskan penggunaan kredensial jangka panjang termasuk plugin WordPress dan klien AWS pihak ketiga. Dalam situasi di mana Anda harus menggunakan kredensial jangka panjang, atau untuk kredensial selain kunci akses AWS, seperti login basis data, Anda dapat menggunakan layanan yang dirancang untuk menangani pengelolaan rahasia, seperti AWS Secrets Manager
Sumber daya
Praktik-praktik terbaik terkait:
Dokumen terkait:
Video terkait: