Hapus EC2 entri Amazon dalam hal yang sama Akun AWS dari AWS Managed Microsoft AD dengan menggunakan AWS Lambda otomatisasi - AWS Prescriptive Guidance

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

Hapus EC2 entri Amazon dalam hal yang sama Akun AWS dari AWS Managed Microsoft AD dengan menggunakan AWS Lambda otomatisasi

Dr. Rahul Sharad Gaikwad dan Tamilselvan P, Amazon Web Services

Ringkasan

Active Directory (AD) adalah alat skrip Microsoft yang mengelola informasi domain dan interaksi pengguna dengan layanan jaringan. Ini banyak digunakan di antara penyedia layanan terkelola (MSPs) untuk mengelola kredensi karyawan dan izin akses. Karena penyerang AD dapat menggunakan akun tidak aktif untuk mencoba dan meretas organisasi, penting untuk menemukan akun yang tidak aktif dan menonaktifkannya pada jadwal pemeliharaan rutin. Dengan AWS Directory Service for Microsoft Active Directory, Anda dapat menjalankan Microsoft Active Directory sebagai layanan terkelola.

Pola ini dapat membantu Anda mengonfigurasi AWS Lambda otomatisasi untuk menemukan dan menghapus akun yang tidak aktif dengan cepat. Bila Anda menggunakan pola ini, Anda bisa mendapatkan manfaat berikut:

  • Tingkatkan kinerja database dan server, dan perbaiki kerentanan keamanan Anda dari akun yang tidak aktif.

  • Jika server iklan Anda di-host di cloud, menghapus akun yang tidak aktif juga dapat mengurangi biaya penyimpanan sekaligus meningkatkan kinerja. Tagihan bulanan Anda mungkin berkurang karena biaya bandwidth dan sumber daya komputasi keduanya dapat turun.

  • Jauhkan penyerang potensial dengan Active Directory yang bersih.

Prasyarat dan batasan

Prasyarat

Batasan

Versi produk

Arsitektur

Diagram berikut menunjukkan alur kerja dan komponen arsitektur untuk pola ini.

Proses untuk menggunakan otomatisasi Lambda untuk menghapus EC2 entri dari Microsoft AD yang Dikelola.

Diagram menunjukkan alur kerja berikut:

  1. Amazon EventBridge memicu AWS Lambda fungsi berdasarkan ekspresi cron. (Untuk pola ini, jadwal ekspresi cron adalah sekali per hari.)

  2. Peran dan kebijakan IAM yang diperlukan dibuat dan dilampirkan AWS Lambda melalui Terraform.

  3. AWS Lambda Fungsi ini dijalankan dan panggilan ke Grup Auto Scaling Amazon Elastic Compute Cloud (Amazon EC2) dengan menggunakan modul boto Python. Fungsi Lambda mendapatkan id instance acak. Id instance digunakan untuk menjalankan AWS Systems Manager perintah.

  4. AWS Lambda membuat panggilan lain ke Amazon EC2 menggunakan modul boto dan mendapatkan alamat IP pribadi dari server Windows yang sedang berjalan dan menyimpan alamat dalam variabel sementara.

  5. AWS Lambda membuat panggilan lain ke Systems Manager untuk mendapatkan informasi komputer yang terhubung ke AWS Directory Service.

  6. AWS Systems Manager Dokumen membantu mengeksekusi PowerShell skrip di server Amazon EC2 Windows untuk mendapatkan alamat IP pribadi komputer yang terhubung dengan AD.

  7. Nama pengguna dan kata sandi domain AD disimpan di AWS Systems Manager Parameter Store. AWS Lambda dan Systems Manager melakukan panggilan ke Parameter Store dan mendapatkan nilai nama pengguna dan kata sandi yang akan digunakan untuk menghubungkan AD.

  8. Menggunakan dokumen Systems Manager, PowerShell skrip dijalankan di server Amazon EC2 Windows menggunakan id instance yang diperoleh sebelumnya di langkah 3.

  9. Amazon EC2 terhubung AWS Directory Service dengan menggunakan PowerShell perintah dan menghapus komputer yang tidak digunakan atau tidak aktif.

Alat

Layanan AWS

  • AWS Directory Servicemenyediakan beberapa cara untuk menggunakan Microsoft Active Directory (AD) dengan yang lain Layanan AWS seperti Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS) untuk SQL Server, dan FSx Amazon untuk Windows File Server.

  • AWS Directory Service for Microsoft Active Directorymemungkinkan beban kerja dan sumber daya yang sadar direktori Anda AWS untuk menggunakan Microsoft Active Directory di file. AWS Cloud

  • Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.

  • Amazon EventBridge adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS

  • AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya. Dengan IAM, Anda dapat menentukan siapa atau apa yang dapat mengakses layanan dan sumber daya AWS, mengelola izin berbutir halus secara terpusat, dan menganalisis akses untuk menyempurnakan izin. AWS

  • AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • AWS Systems Managermembantu Anda mengelola aplikasi dan infrastruktur yang berjalan di AWS Cloud. Ini menyederhanakan aplikasi dan manajemen sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola AWS sumber daya Anda dengan aman dalam skala besar.

  • AWS Systems Manager dokumen menentukan tindakan yang dilakukan Systems Manager pada instans terkelola Anda. Systems Manager mencakup lebih dari 100 dokumen pra-konfigurasi yang dapat Anda gunakan dengan menentukan parameter di runtime.

  • AWS Systems Manager Parameter Store adalah kemampuan AWS Systems Manager dan menyediakan penyimpanan hierarkis yang aman untuk manajemen data konfigurasi dan manajemen rahasia.

Alat-alat lainnya

  • HashiCorp Terraform adalah alat infrastruktur sumber terbuka sebagai kode (IAc) yang membantu Anda menggunakan kode untuk menyediakan dan mengelola infrastruktur dan sumber daya cloud.

  • PowerShelladalah program manajemen otomatisasi dan konfigurasi Microsoft yang berjalan di Windows, Linux, dan macOS.

  • Python adalah bahasa pemrograman komputer tujuan umum.

Repositori C ode

Kode untuk pola ini tersedia di repositori solusi GitHub Custom AD Cleanup Automation.

Praktik terbaik

  • Bergabung dengan domain secara otomatis.Saat Anda meluncurkan instance Windows yang akan menjadi bagian dari AWS Directory Service domain, bergabunglah dengan domain selama proses pembuatan instance alih-alih menambahkan instance secara manual nanti. Untuk bergabung dengan domain secara otomatis, pilih direktori yang benar dari daftar dropdown direktori Gabung Domain saat meluncurkan instance baru. Untuk detail selengkapnya, lihat Menggabungkan instans Amazon EC2 Windows dengan mulus ke Direktori AWS Managed Microsoft AD Aktif Anda di Panduan AWS Directory Service Administrasi.

  • Hapus akun yang tidak digunakan.Adalah umum untuk menemukan akun di AD yang belum pernah digunakan. Seperti akun yang dinonaktifkan atau tidak aktif yang tetap berada di sistem, akun yang tidak digunakan yang diabaikan dapat memperlambat sistem iklan Anda atau membuat organisasi Anda rentan terhadap pelanggaran data.

  • Otomatiskan pembersihan Direktori Aktif.Untuk membantu mengurangi risiko keamanan dan mencegah akun usang memengaruhi kinerja AD, lakukan pembersihan AD harus dilakukan secara berkala. Anda dapat menyelesaikan sebagian besar tugas manajemen dan pembersihan AD dengan menulis skrip. Contoh tugas termasuk menghapus akun yang dinonaktifkan dan tidak aktif, menghapus grup kosong dan tidak aktif, dan menemukan akun pengguna dan kata sandi yang kedaluwarsa.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Buat folder proyek, dan tambahkan file.

Untuk mengkloning repositori dan membuat folder proyek, lakukan hal berikut:

  1. Buka GitHub repositori pola ini.

  2. Pilih tombol Kode untuk melihat opsi untuk mengkloning di dropdown Clone.

  3. Pada tab HTTPS, salin URL yang disediakan di Clone menggunakan URL web.

  4. Buat folder di mesin Anda, dan beri nama dengan nama proyek Anda.

  5. Buka terminal di mesin lokal Anda, dan arahkan ke folder ini.

  6. Untuk mengkloning repositori git, gunakan perintah berikut.

    git clone <repository-URL>.git

  7. Setelah repositori telah dikloning, gunakan perintah berikut untuk pergi ke direktori kloning.

    cd <directory name>

  8. Di repositori kloning, buka proyek ini di lingkungan pengembangan terintegrasi (IDE) pilihan Anda.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Inisialisasi konfigurasi Terraform.

Untuk menginisialisasi direktori kerja Anda yang berisi file Terraform, jalankan perintah berikut.

terraform init

DevOps insinyur

Pratinjau perubahan.

Anda dapat melihat pratinjau perubahan yang akan dilakukan Terraform pada infrastruktur sebelum infrastruktur Anda diterapkan. Untuk memvalidasi bahwa Terraform akan membuat perubahan sesuai kebutuhan, jalankan perintah berikut.

terraform plan

DevOps insinyur

Jalankan tindakan yang diusulkan.

Untuk memverifikasi bahwa hasil dari terraform plan perintah seperti yang diharapkan, lakukan hal berikut:

  1. Jalankan perintah berikut.

    terraform apply

  2. Masuk ke AWS Management Console, dan verifikasi bahwa sumber daya ada.

DevOps insinyur

Bersihkan infrastruktur.

Untuk membersihkan infrastruktur yang Anda buat, gunakan perintah berikut.

terraform destroy

Untuk mengonfirmasi perintah hancurkan, ketikyes.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Jalankan dan uji fungsi Lambda.

Untuk memverifikasi bahwa penerapan berhasil terjadi, lakukan hal berikut:

  1. Masuk ke AWS Management Console dan buka konsol. Buka halaman Fungsi, dan pilih nama fungsi yang dimulai dengan ADcleanup-Lambda-*.

  2. Pada halaman ikhtisar fungsi, pilih Uji pada tab Kode di bagian Sumber kode.

  3. Untuk menyimpan acara pengujian, berikan nama untuk acara tersebut dan pilih Simpan. Kemudian untuk menguji acara, pilih Uji lagi.

Hasil eksekusi menunjukkan output dari fungsi.

DevOps insinyur

Lihat hasil fungsi Lambda.

Dalam pola ini, EventBridge aturan mengeksekusi fungsi Lambda sekali per hari. Untuk melihat hasil fungsi Lambda, lakukan hal berikut:

  1. Masuk ke AWS Management Console dan buka AWS Lambda konsol. Buka halaman Fungsi dan pilih nama fungsi yang dimulai dengan ADcleanup-Lambda-*.

  2. Pilih tab Monitor dan pilih Lihat CloudWatch log.

Di CloudWatch konsol, halaman Grup log menunjukkan hasil fungsi Lambda.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Bersihkan infrastruktur.

Untuk membersihkan infrastruktur yang Anda buat, gunakan perintah berikut.

terraform destroy

Untuk mengonfirmasi perintah hancurkan, ketikyes.

DevOps insinyur

Verifikasi setelah pembersihan.

Verifikasi bahwa sumber daya berhasil dihapus.

DevOps insinyur

Pemecahan Masalah

IsuSolusi

Jika Anda mencoba menghapus komputer AD, Anda mendapatkan pesan “Akses Ditolak”. Komputer AD tidak dapat dihapus karena, secara default, tindakan mencoba menghapus dua alamat IP pribadi yang terhubung sebagai bagian dari layanan AD.

Untuk menghindari kesalahan ini, gunakan operasi Python berikut untuk mengabaikan dua komputer pertama ketika Anda mencantumkan perbedaan antara output komputer AD dan output dari mesin Anda yang menjalankan Windows.

Difference = Difference[2:]

Ketika Lambda mengeksekusi PowerShell skrip pada server Windows, ia mengharapkan modul Active Directory tersedia secara default. Jika modul tidak tersedia, fungsi Lambda membuat kesalahan yang menyatakan “Get- AdComputer is not installed on instance”.

Untuk menghindari kesalahan ini, instal modul yang diperlukan dengan menggunakan data pengguna EC2 instance. Gunakan EC2WindowsUserdataskrip yang ada di GitHub repositori pola ini.

Sumber daya terkait

AWS dokumentasi

Sumber daya lainnya