Penggunaan Chef InSpec profil dengan Kepatuhan Systems Manager - AWS Systems Manager

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

Penggunaan Chef InSpec profil dengan Kepatuhan Systems Manager

AWS Systems Manager terintegrasi dengan Chef InSpec. Chef InSpec adalah kerangka pengujian sumber terbuka yang memungkinkan Anda membuat profil yang dapat dibaca manusia untuk disimpan GitHub atau Amazon Simple Storage Service (Amazon S3). Kemudian Anda dapat menggunakan Systems Manager untuk menjalankan pemindaian kepatuhan dan melihat node yang sesuai dan tidak sesuai. Profil adalah persyaratan keamanan, kepatuhan, atau kebijakan untuk lingkungan komputasi Anda. Misalnya, Anda dapat membuat profil yang melakukan pemeriksaan berikut saat memindai node Anda dengan Kepatuhan, kemampuan AWS Systems Manager:

  • Periksa apakah port tertentu terbuka atau tertutup.

  • Periksa apakah aplikasi tertentu sedang berjalan.

  • Periksa apakah paket tertentu telah terinstal.

  • Periksa kunci Windows Registry untuk properti tertentu.

Anda dapat membuat InSpec profil untuk instans Amazon Elastic Compute Cloud (AmazonEC2) dan server lokal atau mesin virtual (VMs) yang Anda kelola dengan Systems Manager. Sampel berikut Chef InSpec profil memeriksa apakah port 22 terbuka.

control 'Scan Port' do impact 10.0 title 'Server: Configure the service port' desc 'Always specify which port the SSH server should listen to. Prevent unexpected settings.' describe sshd_config do its('Port') { should eq('22') } end end

InSpec mencakup kumpulan sumber daya yang membantu Anda menulis cek dan kontrol audit dengan cepat. InSpec menggunakan InSpec Domain-specific Language (DSL) untuk menulis kontrol ini di Ruby. Anda juga dapat menggunakan profil yang dibuat oleh komunitas InSpec pengguna yang besar. Misalnya, DevSec chef-os-hardeningproyek di GitHub mencakup lusinan profil untuk membantu Anda mengamankan node Anda. Anda dapat membuat dan menyimpan profil di GitHub atau Amazon S3.

Cara kerjanya

Berikut adalah cara kerja proses penggunaan InSpec profil dengan Kepatuhan:

  1. Entah mengidentifikasi InSpec profil yang telah ditentukan yang ingin Anda gunakan, atau buat sendiri. Anda dapat menggunakan profil yang telah ditentukan pada GitHub untuk memulai. Untuk informasi tentang cara membuat InSpec profil Anda sendiri, lihat ChefChef InSpec Profil.

  2. Menyimpan profil baik publik maupun pribadi GitHub repositori, atau dalam ember S3.

  3. Jalankan Kepatuhan dengan InSpec profil Anda dengan menggunakan dokumen Systems Manager (SSMdokumen)AWS-RunInspecChecks. Anda dapat memulai pemindaian Kepatuhan dengan menggunakan Run Command, kemampuan, untuk pemindaian sesuai permintaan AWS Systems Manager, atau Anda dapat menjadwalkan pemindaian Kepatuhan reguler dengan menggunakan State Manager, kemampuan AWS Systems Manager.

  4. Identifikasi node yang tidak sesuai dengan menggunakan konsol Kepatuhan API atau Kepatuhan.

catatan

Perhatikan informasi berikut.

  • Chef menggunakan klien di node Anda untuk memproses profil. Anda tidak perlu menginstal klien. Ketika Systems Manager menjalankan SSM dokumenAWS-RunInspecChecks, sistem memeriksa apakah klien diinstal. Jika tidak, Systems Manager menginstal Chef klien selama pemindaian, dan kemudian menghapus instalasi klien setelah pemindaian selesai.

  • Menjalankan SSM dokumenAWS-RunInspecChecks, seperti yang dijelaskan dalam topik ini, menetapkan jenis entri kepatuhan Custom:Inspec ke setiap node yang ditargetkan. Untuk menetapkan jenis kepatuhan ini, dokumen memanggil PutComplianceItemsAPIoperasi.

Menjalankan pemindaian InSpec kepatuhan

Bagian ini mencakup informasi tentang cara menjalankan pemindaian InSpec kepatuhan menggunakan konsol Systems Manager dan AWS Command Line Interface (AWS CLI). Prosedur konsol menunjukkan cara mengkonfigurasi State Manager untuk menjalankan pemindaian. AWS CLI Prosedur ini menunjukkan cara mengkonfigurasi Run Command untuk menjalankan pemindaian.

Menjalankan pemindaian InSpec kepatuhan dengan State Manager (konsol)

Untuk menjalankan pemindaian InSpec kepatuhan dengan State Manager dengan menggunakan AWS Systems Manager konsol
  1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/.

  2. Di panel navigasi, pilih State Manager.

  3. Pilih Buat asosiasi.

  4. Di bagian Berikan detail asosiasi, masukkan nama.

  5. Di daftar Dokumen, pilih AWS-RunInspecChecks.

  6. Di daftar Versi dokumen, pilih Terbaru pada waktu aktif.

  7. Di bagian Parameter, dalam daftar Jenis Sumber, pilih salah satu GitHubatau S3.

    Jika Anda memilih GitHub, lalu masukkan jalur ke InSpec profil baik publik maupun pribadi GitHub repositori di bidang Info Sumber. Berikut adalah contoh jalur ke profil publik yang disediakan oleh tim Systems Manager dari lokasi berikut: https://github.com/awslabs/InSpecAmazon-SSM/Tree/Master/Compliance//. PortCheck

    {"owner":"awslabs","repository":"amazon-ssm","path":"Compliance/InSpec/PortCheck","getOptions":"branch:master"}

    Jika Anda memilih S3, masukkan yang valid URL ke InSpec profil di bucket S3 di bidang Info Sumber.

    Untuk informasi lebih lanjut tentang bagaimana Systems Manager terintegrasi dengan GitHub dan Amazon S3, lihat. Menjalankan skrip dari GitHub

  8. Di bagian Target, pilih node terkelola tempat Anda ingin menjalankan operasi ini dengan menentukan tag, memilih instance atau perangkat tepi secara manual, atau menentukan grup sumber daya.

    Tip

    Jika node terkelola yang Anda harapkan tidak terdaftar, lihat Memecahkan masalah ketersediaan node terkelola untuk tips pemecahan masalah.

  9. Di bagian Tentukan jadwal, gunakan pilihan pembangun jadwal untuk membuat jadwal yang menentukan kapan Anda menginginkan pemindaian kepatuhan dijalankan.

  10. Untuk Pengendalian rate:

    • Untuk Konkurensi, tentukan jumlah atau persentase dari simpul terkelola untuk menjalankan perintah pada saat yang sama.

      catatan

      Jika Anda memilih target dengan menentukan tag yang diterapkan pada node terkelola atau dengan menentukan grup AWS sumber daya, dan Anda tidak yakin berapa banyak node terkelola yang ditargetkan, maka batasi jumlah target yang dapat menjalankan dokumen pada saat yang sama dengan menentukan persentase.

    • Untuk Ambang kesalahan, tentukan kapan harus berhenti menjalankan perintah pada simpul terkelola lain setelah gagal pada jumlah atau persentase simpul. Misalnya, jika Anda menentukan tiga kesalahan, Systems Manager berhenti mengirim perintah ketika kesalahan keempat diterima. Node terkelola yang masih memproses perintah mungkin juga mengirim kesalahan.

  11. (Opsional) Untuk Opsi output, untuk menyimpan output perintah ke file, pilih kotak Tuliskan output perintah ke bucket S3. Masukkan nama bucket dan prefiks (folder) di kotak.

    catatan

    Izin S3 yang memberikan kemampuan untuk menulis data ke bucket S3 adalah izin profil instance (untuk EC2 instance) atau peran IAM layanan (mesin yang diaktifkan hibrida) yang ditetapkan ke instance, bukan izin pengguna yang melakukan tugas ini. IAM Untuk informasi selengkapnya, lihat Mengonfigurasi izin instans yang diperlukan untuk Systems Manager atau Membuat peran IAM layanan untuk lingkungan hibrid. Selain itu, jika bucket S3 yang ditentukan berbeda Akun AWS, pastikan bahwa profil instance atau peran IAM layanan yang terkait dengan node terkelola memiliki izin yang diperlukan untuk menulis ke bucket tersebut.

  12. Pilih Buat Asosiasi. Sistem membuat asosiasi dan secara otomatis menjalankan pemindaian Kepatuhan.

  13. Tunggu beberapa menit sampai pemindaian selesai, lalu pilih Kepatuhan di panel navigasi.

  14. Dalam contoh terkelola yang sesuai, cari node di mana kolom Compliance Type adalah Custom:Inspec.

  15. Pilih ID node untuk melihat detail status yang tidak sesuai.

Menjalankan pemindaian InSpec kepatuhan dengan Run Command (AWS CLI)

  1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

    Untuk selengkapnya, lihat Menginstal atau memperbarui versi terbaru AWS CLI.

  2. Jalankan salah satu perintah berikut untuk menjalankan InSpec profil dari salah satu GitHub atau Amazon S3.

    Perintah membawa parameter berikut:

    • sourceType: GitHub atau Amazon S3

    • sourceInfo: URL ke folder InSpec profil baik di GitHub atau ember S3. Folder harus berisi InSpec file dasar (*.yl) dan semua kontrol terkait (*.rb).

    GitHub

    aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"Inspec.yml_file"}"]}'

    Inilah contohnya.

    aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters '{"sourceType":["GitHub"],"getOptions":"branch:master","sourceInfo":["{\"owner\":\"awslabs\", \"repository\":\"amazon-ssm\", \"path\": \"Compliance/InSpec/PortCheck\"}"]}'

    Amazon S3

    aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/Inspec.yml_file\"}"]}'

    Inilah contohnya.

    aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/InSpec/PortCheck.yml\"}"]}'
  3. Jalankan perintah berikut untuk melihat ringkasan pemindaian Kepatuhan.

    aws ssm list-resource-compliance-summaries --filters Key=ComplianceType,Values=Custom:Inspec
  4. Jalankan perintah berikut untuk melihat detail node yang tidak sesuai.

    aws ssm list-compliance-items --resource-ids node_ID --resource-type ManagedInstance --filters Key=DocumentName,Values=AWS-RunInspecChecks