View a markdown version of this page

Praktik terbaik keamanan di IAM - AWS Identity and Access Management

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Praktik terbaik keamanan di IAM

Untuk membantu mengamankan AWS sumber daya Anda, ikuti praktik terbaik untuk AWS Identity and Access Management (IAM) ini.

Setelah menerapkan praktik terbaik ini, lihat Keamanan di IAM dan AWS STS topik keamanan tambahan termasuk validasi kepatuhan, ketahanan, dan keamanan infrastruktur.

Memerlukan pengguna manusia untuk menggunakan federasi dengan penyedia identitas untuk mengakses AWS menggunakan kredenSIAL sementara

Pengguna manusia, juga dikenal sebagai identitas manusia, adalah orang, administrator, pengembang, operator, dan konsumen aplikasi Anda. Mereka harus memiliki identitas untuk mengakses AWS lingkungan dan aplikasi Anda. Pengguna manusia yang merupakan anggota organisasi Anda juga dikenal sebagai identitas tenaga kerja. Pengguna manusia juga dapat menjadi pengguna eksternal dengan siapa Anda berkolaborasi, dan yang berinteraksi dengan AWS sumber daya Anda. Mereka dapat melakukan ini melalui browser web, aplikasi klien, aplikasi seluler, atau alat baris perintah interaktif.

Memerlukan pengguna manusia Anda untuk menggunakan kredenSIAL sementara saat mengakses AWS. Anda dapat menggunakan penyedia identitas bagi pengguna manusia untuk menyediakan akses federasi Akun AWS dengan mengambil peran, yang menyediakan kredentif sementara. Untuk manajemen akses terpusat, sebaiknya gunakan AWS IAM Identity Center (Pusat Identitas IAM) untuk mengelola akses ke akun dan izin di dalam akun tersebut. Anda dapat mengelola identitas pengguna dengan Pusat Identitas IAM, atau mengelola izin akses untuk identitas pengguna di Pusat Identitas IAM dari penyedia identitas eksternal. Untuk informasi selengkapnya, lihat Apa itu AWS IAM Identity Center dalam Panduan Pengguna AWS IAM Identity Center .

Untuk informasi lebih lanjut tentang peran, lihat Istilah dan konsep peran.

Memerlukan beban kerja untuk menggunakan kredenSIAL sementara dengan peran IAM untuk mengakses AWS

B eban kerja adalah kumpulan sumber daya dan kode yang memberikan nilai bisnis, seperti aplikasi atau proses backend. Beban kerja Anda dapat memiliki aplikasi, alat operasional, dan komponen yang memerlukan kredenSIAL untuk membuat permintaan Layanan AWS, seperti permintaan untuk membaca data dari Amazon S3.

Saat Anda membangun layanan AWS komputasi, seperti Amazon EC2 atau Lambda, AWS memberikan kredenSIAL sementara peran IAM ke sumber daya komputasi tersebut. Aplikasi yang ditulis menggunakan AWS SDK akan menemukan dan menggunakan kredenSIAL sementara ini untuk mengakses AWS sumber daya, dan tidak perlu mendistribusikan kredenSIAL berumur panjang untuk pengguna IAM ke beban kerja Anda yang sedang berjalan. AWS

Beban kerja yang berjalan di luar AWS, seperti server lokal Anda, server dari penyedia cloud lain, atau integrasi berkelanjutan terkelola dan platform pengiriman berkelanjutan (CI/CD), masih dapat menggunakan kredenSIAL sementara. Namun, Anda harus mengirimkan kredenSIAL sementara ini ke beban kerja Anda. Berikut ini adalah cara Anda dapat mengirimkan kredenSIAL sementara ke beban kerja Anda:

  • Anda dapat menggunakan IAM Roles Anywhere untuk meminta AWS kredenSIAL sementara untuk beban kerja Anda menggunakan X.509 Sertifikat dari infrastruktur kunci publik (PKI) Anda.

  • Anda dapat memanggil AWS STS AssumeRoleWithSAML API untuk meminta AWS kredenSIAL sementara untuk beban kerja Anda menggunakan pernyataan SAML dari penyedia identitas eksternal (IdP) yang dikonfigurasi dalam Anda. Akun AWS

  • Anda dapat memanggil AWS STS AssumeRoleWithWebIdentity API untuk meminta AWS kredenSIAL sementara untuk beban kerja Anda menggunakan token web JSON (JWT) dari IdP yang dikonfigurasi dalam Anda. Akun AWS

  • Anda dapat meminta AWS kredenSIAL sementara dari perangkat IoT Anda menggunakan otentikasi Mutual Transport Layer Security (MTLS) menggunakan AWS IoT Core.

Beberapa Layanan AWS juga mendukung integrasi untuk memberikan kredenSIAL sementara ke beban kerja Anda yang berjalan di luar: AWS

  • Amazon Elastic Container Service (Amazon ECS) Anywhere memungkinkan Anda menjalankan tugas Amazon ECS pada sumber daya komputasi Anda sendiri, dan memberikan AWS kredentif sementara ke tugas Amazon ECS yang berjalan pada sumber daya komputasi tersebut.

  • Amazon Elastic Kubernetes Service Hybrid Nodes memungkinkan Anda menggabungkan sumber daya komputasi yang berjalan di luar AWS sebagai node ke cluster Amazon EKS. Amazon EKS dapat mengirimkan kredenSIAL sementara ke pod Amazon EKS yang berjalan di sumber daya komputasi Anda.

  • AWS Systems ManagerHybrid Activationsmemungkinkan Anda mengelola sumber daya komputasi yang berjalan di luar AWS penggunaan SSM, dan memberikan AWS kredentif sementara ke agen SSM yang berjalan di sumber daya komputasi Anda.

Memerlukan otentikasi multi-faktor (MFA)

Sebaiknya gunakan peran IAM untuk pengguna manusia dan beban kerja yang mengakses AWS sumber daya Anda sehingga mereka menggunakan kredenSIAL sementara. Namun, untuk skenario di mana Anda memerlukan pengguna IAM atau pengguna root di akun Anda, memerlukan MFA untuk keamanan tambahan. Dengan MFA, pengguna memiliki perangkat yang menghasilkan respons terhadap tantangan autentikasi. KredenSIAL setiap pengguna dan respons yang dihasilkan perangkat diperlukan untuk menyelesaikan proses masuk. Untuk informasi selengkapnya, lihat AWS Multi-factor otentikasi di IAM. Sebaiknya gunakan MFA yang tahan phishing seperti kunci sandi dan kunci keamanan jika memungkinkan. Untuk informasi selengkapnya, lihat Tetapkan kunci sandi atau kunci keamanan di Konsol Manajemen AWS.

Jika Anda menggunakan Pusat Identitas IAM untuk manajemen akses terpusat bagi pengguna manusia, Anda dapat menggunakan kemampuan MFA Pusat Identitas IAM saat sumber identitas Anda dikonfigurasi dengan penyimpanan identitas Pusat Identitas IAM, Microsoft AD Terkel AWS ola, atau Konektor AD. Untuk informasi selengkapnya tentang MFA di Pusat Identitas IAM lihat Multi-factor otentikasi di Panduan AWS IAM Identity Center Pengguna.

Perbarui kunci akses bila diperlukan untuk kasus penggunaan yang memerlukan kredenSIAL jangka panjang

Jika memungkinkan, kami sarankan mengandalkan kredenSIAL sementara daripada membuat kredenSIAL jangka panjang seperti kunci akses. Namun, untuk skenario di mana Anda memerlukan pengguna IAM dengan akses terprogram dan kredenSIAL jangka panjang, kami sarankan Anda memperbarui kunci akses saat diperlukan, seperti ketika karyawan meninggalkan perusahaan Anda. Kami menyarankan Anda menggunakan informasi terakhir yang digunakan akses IAM untuk memperbarui dan menghapus kunci akses dengan aman. Untuk informasi selengkapnya, lihat Perbarui kunci akses.

Ada kasus penggunaan khusus yang memerlukan kredenSIAL jangka panjang dengan pengguna IAM di AWS dalamnya. Beberapa kasus penggunaan meliputi yang berikut:

  • Beban kerja yang tidak dapat menggunakan peran IAM — Anda mungkin menjalankan beban kerja dari lokasi yang perlu diakses. AWS Dalam beberapa situasi, Anda tidak dapat menggunakan peran IAM untuk memberikan kredenSIAL sementara, seperti untuk WordPress plugin. Dalam situasi ini, gunakan kunci akses jangka panjang pengguna IAM untuk beban kerja tersebut untuk diautentikasi. AWS

  • Third-party AWS klien — Jika Anda menggunakan alat yang tidak mendukung akses dengan Pusat Identitas IAM, seperti AWS klien pihak ketiga atau vendor yang tidak di-host AWS, gunakan kunci akses jangka panjang pengguna IAM.

  • AWS CodeCommit akses — Jika Anda menggunakan CodeCommit untuk menyimpan kode Anda, Anda dapat menggunakan pengguna IAM dengan kunci SSH atau kredenSIAL khusus layanan untuk mengotentikasi CodeCommit ke repositori Anda. Kami menyarankan Anda melakukan ini selain menggunakan pengguna di Pusat Identitas IAM untuk otentikasi normal. Pengguna di Pusat Identitas IAM adalah orang-orang di tenaga kerja Anda yang membutuhkan akses ke aplikasi Anda Akun AWS atau ke aplikasi cloud Anda. Untuk memberi pengguna akses ke CodeCommit repositori Anda tanpa mengkonfigurasi pengguna IAM, Anda dapat mengonfigurasi utilitasgit-remote-codecommit. Untuk informasi lebih lanjut tentang IAM dan CodeCommit, lihatKredensi IAM untuk: Kredensi CodeCommit Git, kunci SSH, dan kunci akses AWS. Untuk informasi selengkapnya tentang mengonfigurasi git-remote-codecommit utilitas, lihat Menghubungkan ke AWS CodeCommit repositori dengan kredenSIAL berputar di Panduan AWS CodeCommit Pengguna.

  • Akses Amazon Keyspaces (untuk Apache Cassandra) — Dalam situasi di mana Anda tidak dapat menggunakan pengguna di Pusat Identitas IAM, seperti untuk tujuan pengujian kompatibilitas Cassandra, Anda dapat menggunakan pengguna IAM dengan kredenSIAL khusus layanan untuk mengotentikasi dengan Amazon Keyspaces. Pengguna di Pusat Identitas IAM adalah orang-orang di tenaga kerja Anda yang membutuhkan akses ke aplikasi Anda Akun AWS atau ke aplikasi cloud Anda. Anda juga dapat terhubung ke Amazon Keyspaces menggunakan kredenSIAL sementara. Untuk informasi selengkapnya, lihat Menggunakan kredenSIAL sementara untuk menyambung ke ruang kunci Amazon menggunakan peran IAM dan plugin SIGv4 di Panduan Pengembang Amazon Keyspaces (untuk Apache Cassandra).

Ikuti praktik terbaik untuk melindungi kredenSIAL pengguna root Anda

Saat Anda membuat Akun AWS, Anda membuat kredenSIAL pengguna root untuk masuk ke Konsol Manajemen AWS. Lindungi kredentif pengguna root Anda dengan cara yang sama seperti Anda melindungi informasi pribadi sensitif lainnya. Untuk lebih memahami cara mengamankan dan menskalakan proses pengguna root Anda, lihatPraktik terbaik pengguna root untuk Anda Akun AWS.

Terapkan izin hak istimewa terkecil

Saat Anda menetapkan izin dengan kebijakan IAM, berikan hanya izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai izin dengan hak akses paling rendah. Anda dapat memulai dengan izin luas saat Anda menjelajahi izin yang diperlukan untuk beban kerja atau kasus penggunaan Anda. Saat kasus penggunaan Anda matang, Anda dapat bekerja untuk mengurangi izin yang Anda berikan untuk bekerja menuju hak istimewa yang paling sedikit. Untuk informasi selengkapnya tentang menggunakan IAM untuk menerapkan izin, lihatKebijakan dan izin di AWS Identity and Access Management.

Memulai dengan AWS kebijakan terkelola dan bergerak menuju izin hak istimewa terendah

Untuk mulai memberikan izin kepada pengguna dan beban kerja Anda, gunakan kebijakan terkel AWS ola yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Perlu diingat bahwa kebijakan ter AWS kelola mungkin tidak memberikan izin hak istimewa terkecil untuk kasus penggunaan tertentu karena kebijakan tersebut tersedia untuk digunakan oleh semua pelanggan. AWS Oleh karena itu, kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat AWS kebijakan terkelola. Untuk informasi selengkapnya AWS tentang kebijakan terkelola yang dirancang untuk fungsi pekerjaan tertentu, lihatAWS kebijakan terkelola untuk fungsi pekerjaan.

Gunakan IAM Access Analyzer untuk menghasilkan kebijakan hak istimewa terkecil berdasarkan aktivitas akses

Untuk hanya memberikan izin yang diperlukan untuk melakukan tugas, Anda dapat membuat kebijakan berdasarkan aktivitas akses yang masuk AWS CloudTrail. IAM Access Analyzer menganalisis layanan dan tindakan yang digunakan peran IAM Anda, dan kemudian menghasilkan kebijakan terperinci yang dapat Anda gunakan. Setelah menguji setiap kebijakan yang dihasilkan, Anda dapat menerapkan kebijakan tersebut ke lingkungan produksi Anda. Ini memastikan bahwa Anda hanya memberikan izin yang diperlukan untuk beban kerja Anda. Untuk informasi selengkapnya tentang pembuatan kebijakan, lihat pembuatan kebijakan Penganalisis Akses IAM.

Tinjau dan hapus pengguna, peran, izin, kebijakan, dan kredenSIAL yang tidak digunakan secara teratur

Anda mungkin memiliki pengguna, peran, izin, kebijakan, atau kredensi IAM yang tidak lagi Anda perlukan di. Akun AWS IAM menyediakan informasi terakhir yang diakses untuk membantu Anda mengidentifikasi pengguna, peran, izin, kebijakan, dan kredentif yang tidak lagi Anda perlukan sehingga Anda dapat menghapusnya. Ini membantu Anda mengurangi jumlah pengguna, peran, izin, kebijakan, dan kredenSIAL yang harus Anda pantau. Anda juga dapat menggunakan informasi ini untuk menyempurnakan kebijakan IAM agar lebih mematuhi izin hak istimewa terendah. Untuk informasi selengkapnya, lihat Memperbaiki izin dalam AWS menggunakan informasi yang terakhir diakses.

Gunakan ketentuan dalam kebijakan IAM untuk membatasi akses lebih lanjut

Anda dapat menentukan kondisi di mana pernyataan kebijakan berlaku. Dengan begitu, Anda dapat memberikan akses ke tindakan dan sumber daya, tetapi hanya jika permintaan akses memenuhi persyaratan tertentu. Misalnya, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakan TLS. Anda juga dapat menggunakan kondisi untuk memberikan akses ke tindakan layanan, tetapi hanya jika digunakan melalui suatu kondisi tertentu Layanan AWS, seperti CloudFormation. Untuk informasi selengkapnya, lihat Elemen kebijakan IAM JSON: Kondisi.

Verifikasi akses publik dan lintas akun ke sumber daya dengan IAM Access Analyzer

Sebelum Anda memberikan izin untuk akses publik atau lintas akun AWS, sebaiknya verifikasi apakah akses tersebut diperlukan. Anda dapat menggunakan IAM Access Analyzer untuk membantu Anda melihat pratinjau dan menganalisis akses publik dan lintas akun untuk jenis sumber daya yang didukung. Anda melakukan ini dengan meninjau temuan yang dihasilkan oleh IAM Access Analyzer. Temuan ini membantu Anda memverifikasi bahwa kontrol akses sumber daya memberikan akses yang Anda harapkan. Selain itu, saat memperbarui izin publik dan lintas akun, Anda dapat memverifikasi efek perubahan sebelum menerapkan kontrol akses baru ke sumber daya Anda. IAM Access Analyzer juga memantau jenis sumber daya yang didukung secara terus menerus dan menghasilkan temuan untuk sumber daya yang memungkinkan akses publik atau lintas akun. Untuk informasi selengkapnya, lihat Pr atinjau akses dengan API Penganalisis Akses IAM.

Gunakan IAM Access Analyzer untuk memvalidasi kebijakan IAM Anda untuk memastikan izin yang aman dan fungsional

Validasi kebijakan yang Anda buat untuk memastikan bahwa kebijakan tersebut mematuhi bahasa kebijakan IAM (JSON) dan praktik terbaik IAM. Anda dapat memvalidasi kebijakan Anda dengan menggunakan validasi kebijakan IAM Access Analyzer. IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Saat Anda membuat kebijakan baru atau mengedit kebijakan yang ada di konsol, IAM Access Analyzer memberikan rekomendasi untuk membantu Anda menyempurnakan dan memvalidasi kebijakan sebelum menyimpannya. Selain itu, kami sarankan Anda meninjau dan memvalidasi semua kebijakan yang ada. Untuk informasi selengkapnya, lihat validasi kebijakan IAM Access Analyzer. Untuk informasi selengkapnya tentang pemeriksaan kebijakan yang disediakan oleh IAM Access Analyzer, lihat referensi pemeriksaan kebijakan Penganalisis Akses IAM.

Buat pagar pembatas izin di beberapa akun

Saat Anda menskalakan beban kerja, pisahkan dengan menggunakan beberapa akun yang dikelola dengan AWS Organizations. Sebaiknya gunakan kebijakan kontrol AWS Organizations layanan (SCP) untuk membuat pagar pembatas izin untuk mengontrol akses untuk semua kepala sekolah (peran dan pengguna IAM) di seluruh akun Anda. Sebaiknya gunakan kebijakan kontrol AWS Organizations sumber daya (RCP) untuk membuat pagar pembatas izin untuk mengontrol akses AWS sumber daya di seluruh organisasi Anda. SCP dan RCP adalah jenis kebijakan organisasi yang dapat Anda gunakan untuk mengelola izin di organisasi Anda di tingkat AWS organisasi, unit organisasi (OU), atau akun.

Namun, SCP dan RCP saja tidak cukup untuk memberikan izin kepada kepala sekolah dan sumber daya di organisasi Anda. Tidak ada izin yang diberikan oleh SCP dan RCP. Untuk memberikan izin, Anda harus melampirkan kebijakan berbasis identitas atau berbasis sumber daya ke pengguna IAM, peran IAM, atau sumber daya di akun Anda. Untuk informasi selengkapnya, lihat Blok bangunan SRA — AWS Organizations, akun, dan pagar pembatas.

Menggunakan batas izin untuk mendelegasikan manajemen izin dalam akun

Dalam beberapa skenario, Anda mungkin ingin mendelegasikan pengelolaan izin dalam akun kepada orang lain. Misalnya, Anda dapat mengizinkan pengembang untuk membuat dan mengelola peran untuk beban kerja mereka. Saat Anda mendelegasikan izin kepada orang lain, gunakan batas izin untuk menetapkan izin maksimum yang Anda delegasikan. Batas izin adalah fitur lanjutan untuk menggunakan kebijakan terkelola untuk menetapkan izin maksimum yang dapat diberikan kebijakan berbasis identitas ke peran IAM. Batas izin tidak memberikan izin dengan sendirinya. Lihat informasi yang lebih lengkap di Batas izin untuk entitas IAM.