Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Terapkan ChatOps solusi untuk mengelola hasil pemindaian SAST dengan menggunakan Amazon Q Developer dalam tindakan kustom aplikasi obrolan dan AWS CloudFormation
Anand Bukkapatnam Tirumala, Amazon Web Services
Ringkasan
Pola ini menyajikan solusi komprehensif yang menggunakan Pengembang Amazon Q dalam aplikasi obrolan untuk merampingkan pengelolaan kegagalan pemindaian pengujian keamanan aplikasi statis (SAST) yang dilaporkan melalui. SonarQube Pendekatan inovatif ini mengintegrasikan tindakan dan pemberitahuan khusus ke dalam antarmuka percakapan, memungkinkan kolaborasi yang efisien dan proses pengambilan keputusan dalam tim pengembangan.
Dalam lingkungan pengembangan perangkat lunak yang serba cepat saat ini, mengelola hasil pemindaian SAST secara efisien sangat penting untuk menjaga kualitas dan keamanan kode. Namun, banyak organisasi menghadapi tantangan signifikan berikut:
Kesadaran yang tertunda akan kerentanan kritis karena sistem notifikasi yang tidak efisien
Proses pengambilan keputusan yang lambat disebabkan oleh alur kerja persetujuan yang terputus
Kurangnya respons langsung dan dapat ditindaklanjuti terhadap kegagalan pemindaian SAST
Komunikasi dan kolaborasi yang terfragmentasi seputar temuan keamanan
Penyiapan infrastruktur manual yang memakan waktu dan rawan kesalahan untuk perkakas keamanan
Masalah-masalah ini sering menyebabkan peningkatan risiko keamanan, rilis yang tertunda, dan penurunan produktivitas tim. Untuk mengatasi tantangan ini secara efektif diperlukan solusi yang dapat merampingkan manajemen hasil SAST, meningkatkan kolaborasi tim, dan mengotomatiskan penyediaan infrastruktur.
Fitur utama dari solusi ini meliputi:
Pemberitahuan yang disesuaikan — Peringatan dan notifikasi real-time dikirimkan langsung ke saluran obrolan tim, memastikan kesadaran dan tindakan yang cepat pada kerentanan atau kegagalan pemindaian SAST.
Persetujuan percakapan - Pemangku kepentingan dapat memulai dan menyelesaikan alur kerja persetujuan untuk hasil pemindaian SAST dengan mulus dalam antarmuka obrolan, mempercepat proses pengambilan keputusan.
Tindakan kustom — Tim dapat menentukan dan menjalankan tindakan kustom berdasarkan hasil pemindaian SAST, seperti secara otomatis memicu pesan email untuk kegagalan gerbang kualitas, meningkatkan respons terhadap masalah keamanan.
Kolaborasi terpusat - Semua diskusi, keputusan, dan tindakan terkait pemindaian SAST disimpan dalam lingkungan obrolan terpadu, mendorong peningkatan kolaborasi dan berbagi pengetahuan di antara anggota tim.
Infrastructure as code (IAc) — Seluruh solusi dibungkus dengan AWS CloudFormation template, memungkinkan penyediaan infrastruktur yang lebih cepat dan lebih andal sekaligus mengurangi kesalahan pengaturan manual.
Prasyarat dan batasan
Prasyarat
Aktif Akun AWS.
Ruang kerja Slack.
Pengembang Amazon Q dalam aplikasi obrolan ditambahkan ke ruang kerja Slack yang diperlukan sebagai plugin. Untuk informasi selengkapnya, lihat Menambahkan aplikasi ke ruang kerja Slack
di dokumentasi Slack. Catat ID ruang kerja Slack seperti yang ditunjukkan pada pendaftaran AWS Management Console setelah berhasil. Pengembang Amazon Q yang dikonfigurasi di klien aplikasi obrolan, dengan ID ruang kerja yang tersedia untuk dimasukkan di AWS CloudFormation konsol. Untuk petunjuk, lihat Mengonfigurasi klien Slack di Pengembang Amazon Q di Panduan Administrator aplikasi obrolan.
Akun email sumber yang dibuat dan diverifikasi di Amazon Simple Email Service (Amazon SES) untuk mengirimkan pesan email persetujuan. Untuk petunjuk penyiapan, lihat Membuat dan memverifikasi identitas email di Panduan Pengembang Layanan Email Sederhana Amazon.
Alamat email tujuan untuk menerima pemberitahuan persetujuan. Alamat ini dapat berupa kotak masuk bersama atau daftar distribusi tim tertentu.
SonarQube Contoh operasional yang dapat diakses dari Anda Akun AWS. Untuk informasi selengkapnya, lihat petunjuk SonarQube penginstalan
. Token SonarQube pengguna
dengan izin untuk memicu dan membuat proyek melalui pipeline.
Batasan
Pembuatan tombol tindakan khusus adalah proses manual dalam solusi ini.
Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat Layanan AWS berdasarkan Wilayah
. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.
Arsitektur
Diagram berikut menunjukkan alur kerja dan komponen arsitektur untuk pola ini.

Diagram menunjukkan alur kerja jaminan kualitas kode otomatis:
Persiapan dan unggah kode:
Pengembang mengompres basis kode menjadi file.zip.
Pengembang secara manual mengunggah file.zip ke bucket Amazon Simple Storage Service (Amazon S3) yang ditunjuk.
Pemicu dan orkestrasi peristiwa Amazon S3: AWS Step Functions
Peristiwa upload Amazon S3 memicu alur kerja Step Functions.
Step Functions mengatur pemindaian SAST menggunakan. SonarQube
Alur kerja memantau status AWS CodeBuild pekerjaan untuk menentukan tindakan selanjutnya. Jika CodeBuild berhasil (Quality Gate Pass), alur kerja akan berakhir. Jika CodeBuild gagal, AWS Lambda fungsi dipanggil untuk diagnostik. Untuk lebih jelasnya, lihat AWS Step Functions logika nanti di bagian ini.
AWS CodeBuild eksekusi:
CodeBuild Pekerjaan mengeksekusi SonarQube pemindaian pada basis kode yang diunggah.
Artefak pemindaian disimpan dalam bucket Amazon S3 terpisah untuk audit dan analisis.
Analisis kegagalan (fungsi Lambda):
Pada CodeBuild kegagalan, fungsi
CheckBuildStatusLambda dipicu.Setelah CodeBuild sukses, proses dihentikan dan tidak diperlukan tindakan lebih lanjut.
Fungsi Lambda menganalisis penyebab kegagalan (kegagalan gerbang kualitas atau masalah lainnya)
CheckBuildStatusFungsi ini membuat muatan khusus dengan informasi kegagalan terperinci.CheckBuildStatusFungsi ini menerbitkan payload khusus ke topik Amazon Simple Notification Service (Amazon SNS).
Sistem pemberitahuan:
Amazon SNS meneruskan payload ke Amazon Q Developer dalam aplikasi obrolan untuk integrasi Slack.
Integrasi kendur:
Pengembang Amazon Q dalam aplikasi obrolan memposting pemberitahuan di saluran Slack yang ditunjuk.
Proses persetujuan:
Pemberi persetujuan meninjau detail kegagalan dalam pemberitahuan Slack.
Pemberi persetujuan dapat memulai persetujuan menggunakan tombol Approve di Slack.
Penangan persetujuan:
Fungsi Lambda Persetujuan memproses tindakan persetujuan dari Slack.
Fungsi Persetujuan menerbitkan pesan khusus ke Amazon SES.
Pesan yang dihasilkan:
Fungsi Persetujuan menghasilkan pesan khusus untuk pemberitahuan pengembang.
Pemberitahuan pengembang:
Amazon SES mengirimkan pesan email ke pengembang dengan langkah berikutnya atau tindakan yang diperlukan.
Alur kerja ini menggabungkan pengunggahan kode manual dengan pemeriksaan kualitas otomatis, memberikan umpan balik langsung melalui Slack, dan memungkinkan intervensi manusia bila diperlukan, memastikan proses peninjauan kode yang kuat dan fleksibel.
AWS Step Functions logika
Seperti yang ditunjukkan pada diagram arsitektur sebelumnya, jika gerbang kualitas diteruskan SonarQube gagal, alur kerja masuk ke fungsi CheckBuildStatus Lambda. CheckBuildStatusFungsi ini memicu pemberitahuan di saluran Slack. Setiap pemberitahuan mencakup informasi dengan langkah-langkah berikutnya yang disarankan. Berikut ini adalah jenis notifikasi:
Aplikasi telah gagal dalam pemindaian keamanan kode — Pengguna menerima pemberitahuan ini ketika kode yang diunggah tidak lulus pemindaian SonarQube keamanan. Pengguna dapat memilih APPROVE untuk menerima build. Namun, pemberitahuan tersebut menyarankan pengguna untuk berhati-hati terhadap potensi kualitas kode yang buruk dan risiko keamanan. Pemberitahuan tersebut mencakup detail berikut:
Langkah selanjutnya: Kesalahan: Status gerbang kualitas: GAGAL — Lihat detail di URL yang disediakan.
Triase kerentanan seperti yang disebutkan dalam dokumen di URL yang disediakan.
CodeBuild rincian tersedia di lokasi di URL yang disediakan.
Pipeline pemindaian aplikasi telah gagal karena beberapa alasan lain — Pengguna menerima pemberitahuan ini ketika pipa gagal karena beberapa alasan selain gagal pemindaian keamanan kode. Pemberitahuan tersebut mencakup detail berikut:
Untuk langkah selanjutnya, buka tautan yang disediakan untuk pemecahan masalah lebih lanjut.
Untuk melihat tangkapan layar notifikasi saat muncul di saluran Slack, buka folder aset
Diagram berikut menunjukkan contoh status langkah Step Functions setelah quality gate pass gagal.

Alat
Layanan AWS
Pengembang Amazon Q dalam aplikasi obrolan memungkinkan Anda menggunakan saluran obrolan Amazon Chime, Microsoft Teams, dan Slack untuk memantau dan merespons peristiwa operasional di aplikasi Anda. AWS Pemberitahuan akhir dukungan: Pada 20 Februari 2026, AWS akan mengakhiri dukungan untuk layanan Amazon Chime. Setelah 20 Februari 2026, Anda tidak akan lagi dapat mengakses konsol Amazon Chime atau sumber daya aplikasi Amazon Chime. Untuk informasi lebih lanjut, kunjungi posting blog
. Ini tidak memengaruhi ketersediaan layanan Amazon Chime SDK . AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS
AWS CodeBuildadalah layanan build terkelola penuh yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.
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.
AWS Key Management Service (AWS KMS) membantu Anda membuat dan mengontrol kunci kriptografi untuk membantu melindungi data Anda.
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 Secrets Managermembantu Anda mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram.
Amazon Simple Email Service (Amazon SES) membantu Anda mengirim dan menerima pesan email dengan menggunakan alamat email dan domain Anda sendiri.
Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
AWS Step Functionsadalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi bisnis yang penting.
Alat lainnya
Slack
, penawaran Salesforce, adalah platform percakapan bertenaga AI yang menyediakan kolaborasi obrolan dan video, mengotomatiskan proses tanpa kode, dan mendukung berbagi informasi. SonarQube
adalah alat analisis lokal yang dirancang untuk mendeteksi masalah pengkodean di lebih dari 30 bahasa, kerangka kerja, dan platform IAc.
Repositori kode
Kode untuk pola ini tersedia di repositori GitHub chatops-slack
Praktik terbaik
CloudFormation manajemen tumpukan - Jika Anda mengalami kegagalan selama eksekusi CloudFormation tumpukan, kami sarankan Anda menghapus tumpukan yang gagal. Kemudian, buat ulang dengan nilai parameter yang benar. Pendekatan ini mendukung penerapan yang bersih dan membantu menghindari potensi konflik atau implementasi sebagian.
Konfigurasi email kotak masuk bersama — Saat Anda mengonfigurasi
SharedInboxEmailparameter, gunakan daftar distribusi umum yang dapat diakses oleh semua pengembang yang relevan. Pendekatan ini mempromosikan transparansi dan membantu pemberitahuan penting menjangkau anggota tim yang relevan.Alur kerja persetujuan produksi — Untuk lingkungan produksi, batasi akses ke saluran Slack yang digunakan untuk persetujuan build. Hanya pemberi persetujuan yang ditunjuk yang harus menjadi anggota saluran ini. Praktik ini mempertahankan rantai tanggung jawab yang jelas dan meningkatkan keamanan dengan membatasi siapa yang dapat menyetujui perubahan kritis.
Izin IAM - Ikuti prinsip hak istimewa terkecil dan berikan izin minimum yang diperlukan untuk melakukan tugas. Untuk informasi selengkapnya, lihat Berikan hak istimewa terkecil dan praktik terbaik Keamanan dalam dokumentasi IAM.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning repositori. | Untuk mengkloning repositori chatops-slack
| AWS DevOps, Membangun pemimpin, DevOps insinyur, administrator Cloud |
Buat file.zip yang berisi kode Lambda. | Buat file.zip untuk kode AWS Lambda fungsi untuk
| AWS DevOps, Membangun pemimpin, DevOps insinyur, administrator Cloud |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Jalankan file | File
| Administrator AWS, AWS DevOps, Pemimpin build, DevOps insinyur |
Unggah file.zip ke bucket Amazon S3. | Unggah | AWS DevOps, Build lead, DevOps engineer, administrator sistem AWS |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Jalankan file | File
| AWS DevOps, administrator sistem AWS, DevOps insinyur, Membangun prospek |
Uji pengaturan notifikasi. | Untuk menguji pengaturan notifikasi, lakukan hal berikut:
Setelah pesan pengujian berhasil dikirim, Anda akan melihat pemberitahuan di saluran Slack. Untuk informasi selengkapnya, lihat Menguji notifikasi dari Layanan AWS ke Slack di Pengembang Amazon Q di Panduan Administrator aplikasi obrolan. | AWS DevOps, administrator sistem AWS, DevOps insinyur, Membangun prospek |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Konfigurasikan tindakan Lambda khusus. | Untuk mengatur AWS Lambda tindakan kustom, lakukan hal berikut:
| Administrator AWS, AWS DevOps, Pemimpin build, DevOps insinyur, Admin Slack |
Validasi aliran persetujuan. | Untuk memvalidasi bahwa alur persetujuan berfungsi seperti yang diharapkan, pilih tombol Setujui di Slack. Slackbot harus mengirim pemberitahuan di utas pesan dengan string konfirmasi Email Persetujuan berhasil dikirim. | Administrator AWS, AWS DevOps, DevOps insinyur, Admin Slack |
Pemecahan Masalah
| Isu | Solusi |
|---|---|
Kesalahan konfigurasi Slack | Untuk informasi tentang masalah pemecahan masalah yang terkait dengan kesalahan konfigurasi Slack, lihat Memecahkan Masalah Pengembang Amazon Q di Panduan Administrator Pengembang Amazon Q di aplikasi obrolan. |
Pemindaian gagal karena beberapa alasan lain | Kesalahan ini berarti bahwa tugas pembuatan kode telah gagal. Untuk memecahkan masalah, buka tautan yang ada di pesan. Kegagalan tugas pembuatan kode mungkin memiliki kemungkinan penyebab berikut:
|
Sumber daya terkait
AWS dokumentasi
Sumber daya lainnya
Tambahkan aplikasi ke ruang kerja Slack Anda (dokumentasi
Slack) Menghasilkan dan menggunakan token
(SonarQube dokumentasi) Pengantar instalasi server
(SonarQube dokumentasi)
Informasi tambahan
Solusi ini menekankan Amazon Q Developer dalam tindakan kustom aplikasi obrolan untuk tujuan manajemen rilis. Namun, Anda dapat menggunakan kembali solusi dengan memodifikasi kode Lambda untuk kasus penggunaan spesifik Anda dan membangun di atasnya.
Parameter file CloudFormation tumpukan
Tabel berikut menunjukkan parameter dan deskripsi mereka untuk file CloudFormation pre-requisite.yml stack.
Kunci | Deskripsi |
|---|---|
| Nama CloudFormation tumpukan. |
| Nama bucket Amazon S3 tempat Anda mengunggah kode Lambda. Nama harus unik secara global. |
| Token SonarQube pengguna seperti yang dijelaskan dalam Prasyarat. |
Tabel berikut menunjukkan parameter dan deskripsi mereka untuk file CloudFormation app-security.yml stack.
Kunci | Deskripsi |
|---|---|
| Nama Sumber Daya AWS KMS key Amazon (ARN) yang digunakan dalam peran IAM dan fungsi Lambda yang dibuat di tumpukan ini. |
| AWS KMS key ID yang digunakan dalam topik Amazon SNS dibuat di tumpukan ini. |
| Nama lingkungan klien untuk penyebaran pipeline pemindaian aplikasi. Pilih nama lingkungan dari daftar dropdown nilai yang diizinkan. |
| Nama bucket Amazon S3 yang berisi file |
| Nama identitas email terdaftar di Amazon SES seperti yang dijelaskan dalam Prasyarat. Identitas ini adalah alamat email sumber. |
| Alamat email tujuan tempat notifikasi pemindaian dikirim. |
| ID saluran saluran Slack tempat Anda ingin notifikasi dikirim. Untuk menemukan ID saluran, klik kanan nama saluran di Detail Saluran di aplikasi Slack. ID saluran ada di bagian bawah. |
| ID ruang kerja Slack seperti yang dijelaskan dalam Prasyarat. Untuk menemukan ID ruang kerja Slack, masuk ke, buka Amazon Q Developer di konsol aplikasi obrolan AWS Management Console, dan pilih Klien yang dikonfigurasi, Slack, WorkspaceID. |
| Nama CloudFormation tumpukan. |
| Direktori yang berisi |
| Nama |
| Nama file.zip yang berisi |