Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
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 eksposur melalui unggahan ke repositori publik. 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
Identitas manusia
Untuk identitas tenaga kerja seperti karyawan, administrator, developer, 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 Pusat identitas AWS IAM 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.
Untuk identitas pihak ketiga:
-
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. Selain itu, Anda dapat menggunakan alur kredensial klien grant OAuth 2.0 Amazon Cognito untuk pelanggan atau partner SaaS B2B.
Identitas pengguna yang mengakses sumber daya AWS Anda melalui browser web, aplikasi klien, aplikasi seluler, atau alat baris perintah interaktif:
-
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 akan dikonfigurasi melalui peran IAM. Anda juga dapat menentukan IAM role terpisah dengan izin terbatas untuk pengguna tamu yang tidak terauntetikasi.
Identitas mesin
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.
Ada skenario di mana kredensial sementara tidak didukung, yang memerlukan penggunaan kredensial jangka panjang. Dalam situasi ini, lakukan audit dan rotasi kredensial secara berkala dan rotasi kunci akses secara rutin. Untuk kunci akses pengguna IAM yang sangat terbatas, pertimbangkan langkah-langkah keamanan tambahan berikut:
-
Berikan izin yang sangat terbatas:
-
Patuhi prinsip hak akses paling rendah (tentukan tindakan, sumber daya, dan kondisi spesifik).
-
Pertimbangkan untuk memberi pengguna IAM hanya operasi AssumeRole untuk satu peran tertentu. Bergantung pada arsitektur on-premise, pendekatan ini membantu mengisolasi dan mengamankan kredensial IAM jangka panjang.
-
-
Batasi sumber jaringan dan alamat IP yang diizinkan dalam kebijakan kepercayaan peran IAM.
-
Pantau penggunaan dan atur peringatan untuk izin yang tidak digunakan atau penyalahgunaan (menggunakan filter dan alarm metrik Log AWS CloudWatch).
-
Berlakukan batasan izin (kebijakan kontrol layanan (SCP) dan batasan izin saling melengkapi - SCP bersifat umum, sementara batasan izin bersifat terperinci).
-
Terapkan proses untuk menyediakan dan menyimpan kredensialnya dengan aman (di vault on-premise).
Beberapa opsi lain untuk skenario yang membutuhkan kredensial jangka panjang meliputi:
-
Buat API penyedia token Anda sendiri (menggunakan Amazon API Gateway).
-
Untuk skenario saat Anda harus menggunakan kredensial jangka panjang, atau kredensial selain kunci akses AWS, seperti login basis data, Anda dapat menggunakan layanan yang dirancang untuk menangani pengelolaan rahasia, seperti AWS Secrets Manager
. Secrets Manager menyederhanakan pengelolaan, rotasi, dan penyimpanan rahasia terenkripsi yang aman. Banyak layanan AWS mendukung integrasi langsung dengan Secrets Manager.
Untuk informasi selengkapnya tentang cara merotasi kredensial jangka panjang, silakan lihat merotasi kunci akses.
Sumber daya
Praktik-praktik terbaik terkait:
Dokumen terkait:
Video terkait: