Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Secara otomatis melampirkan kebijakan terkelola AWS untuk Systems Manager ke profil EC2 instans menggunakan Cloud Custodian dan AWS CDK
Ali Asfour dan Aaron Lennon, Amazon Web Services
Ringkasan
Anda dapat mengintegrasikan instans Amazon Elastic Compute Cloud (Amazon EC2) dengan AWS Systems Manager untuk mengotomatiskan tugas operasional serta memberikan lebih banyak visibilitas dan kontrol. Untuk berintegrasi dengan Systems Manager, EC2 instans harus memiliki Agen AWS Systems Manager (Agen SSM) yang diinstal dan kebijakan AmazonSSMManagedInstanceCore AWS Identity and Access Management (IAM) yang terpasang pada profil instans mereka.
Namun, jika Anda ingin memastikan bahwa semua profil EC2 instans memiliki AmazonSSMManagedInstanceCore kebijakan yang dilampirkan, Anda dapat menghadapi tantangan dalam memperbarui EC2 instans baru yang tidak memiliki profil EC2 instans atau instance yang memiliki profil instans tetapi tidak memiliki kebijakan. AmazonSSMManagedInstanceCore Mungkin juga sulit untuk menambahkan kebijakan ini di beberapa akun Amazon Web Services (AWS) dan Wilayah AWS.
Pola ini membantu mengatasi tantangan ini dengan menerapkan tiga kebijakan Cloud Custodian
Kebijakan Cloud Custodian pertama memeriksa EC2 instans yang ada yang memiliki profil instans tetapi tidak memiliki kebijakan.
AmazonSSMManagedInstanceCoreAmazonSSMManagedInstanceCoreKebijakan tersebut kemudian dilampirkan.Kebijakan Cloud Custodian kedua memeriksa instans yang ada tanpa profil EC2 instans dan menambahkan profil instans default yang memiliki kebijakan yang dilampirkan.
AmazonSSMManagedInstanceCoreKebijakan Cloud Custodian ketiga membuat fungsi AWS Lambda
di akun Anda untuk memantau pembuatan EC2 instans dan profil instans. Ini memastikan bahwa AmazonSSMManagedInstanceCorekebijakan dilampirkan secara otomatis saat EC2 instance dibuat.
Pola ini menggunakan DevOps alat AWS
Prasyarat dan batasan
Prasyarat
Dua atau lebih akun AWS aktif. Satu akun adalah akun keamanan dan yang lainnya adalah akun anggota.
Izin untuk menyediakan sumber daya AWS di akun keamanan. Pola ini menggunakan izin administrator, tetapi Anda harus memberikan izin sesuai dengan persyaratan dan kebijakan organisasi Anda.
Kemampuan untuk mengambil peran IAM dari akun keamanan ke akun anggota dan membuat peran IAM yang diperlukan. Untuk informasi selengkapnya tentang hal ini, lihat Mendelegasikan akses di seluruh akun AWS menggunakan peran IAM dalam dokumentasi IAM.
penting
AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi. Untuk tujuan pengujian, Anda dapat mengonfigurasi AWS CLI dengan menggunakan
aws configureperintah atau menyetel variabel lingkungan. : Ini tidak disarankan untuk lingkungan produksi dan kami menyarankan agar akun ini hanya diberikan akses hak istimewa paling sedikit. Untuk informasi lebih lanjut tentang ini, lihat Berikan hak istimewa paling sedikit dalam dokumentasi IAM.devops-cdk-cloudcustodian.zipFile (terlampir), diunduh ke komputer lokal Anda.Keakraban dengan Python
Alat yang diperlukan (Node.js, AWS Cloud Development Kit (AWS CDK), dan Git), diinstal dan dikonfigurasi. Anda dapat menggunakan
install-prerequisites.shfile dalamdevops-cdk-cloudcustodian.zipfile untuk menginstal alat-alat ini. Pastikan Anda menjalankan file ini dengan hak akses root.
Batasan
Meskipun pola ini dapat digunakan dalam lingkungan produksi, pastikan bahwa semua peran dan kebijakan IAM memenuhi persyaratan dan kebijakan organisasi Anda.
Versi Package
Cloud Custodian versi 0.9 atau yang lebih baru
TypeScript versi 3.9.7 atau yang lebih baru
Node.js versi 14.15.4 atau yang lebih baru
npmversi 7.6.1 atau yang lebih baruAWS CDK versi 1.96.0 atau yang lebih baru
Arsitektur

Diagram menunjukkan alur kerja berikut:
Kebijakan Cloud Custodian didorong ke CodeCommit repositori AWS di akun keamanan. Aturan Amazon CloudWatch Events secara otomatis memulai CodePipeline pipeline AWS.
Pipeline mengambil kode terbaru dari CodeCommit dan mengirimkannya ke bagian integrasi berkelanjutan dari pipeline integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) yang ditangani oleh AWS. CodeBuild
CodeBuild melakukan DevSecOps tindakan lengkap, termasuk validasi sintaks kebijakan pada kebijakan Cloud Custodian, dan menjalankan kebijakan ini dalam
--dryrunmode untuk memeriksa sumber daya mana yang diidentifikasi.Jika tidak ada kesalahan, tugas berikutnya memberi tahu administrator untuk meninjau perubahan dan menyetujui penyebaran ke akun anggota.
Tumpukan teknologi
AWS CDK
CodeBuild
CodeCommit
CodePipeline
IAM
Penjaga Awan
Otomatisasi dan skala
Modul pipeline AWS CDK menyediakan CI/CD pipeline yang digunakan CodePipeline untuk mengatur pembuatan dan pengujian kode sumber CodeBuild, selain penerapan sumber daya AWS dengan tumpukan AWS. CloudFormation Anda dapat menggunakan pola ini untuk semua akun anggota dan Wilayah di organisasi Anda. Anda juga dapat memperluas Roles creation tumpukan untuk menerapkan peran IAM lainnya di akun anggota Anda.
Alat
AWS Cloud Development Kit (AWS CDK) adalah kerangka kerja pengembangan perangkat lunak untuk mendefinisikan infrastruktur cloud dalam kode dan menyediakannya melalui AWS. CloudFormation
AWS Command Line Interface (AWS CLI) adalah alat sumber terbuka yang memungkinkan Anda berinteraksi dengan layanan AWS menggunakan perintah di shell baris perintah Anda.
AWS CodeBuild adalah layanan build yang dikelola sepenuhnya di cloud.
AWS CodeCommit adalah layanan kontrol versi yang dapat Anda gunakan untuk menyimpan dan mengelola aset secara pribadi.
AWS CodePipeline adalah layanan pengiriman berkelanjutan yang dapat Anda gunakan untuk memodelkan, memvisualisasikan, dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perangkat lunak Anda.
AWS Identity and Access Management adalah layanan web yang membantu Anda mengontrol akses ke sumber daya AWS dengan aman.
Cloud Custodian
adalah alat yang menyatukan lusinan alat dan skrip yang digunakan sebagian besar organisasi untuk mengelola akun cloud publik mereka menjadi satu alat sumber terbuka. Node.js
adalah JavaScript runtime yang dibangun di mesin V8 JavaScript Google Chrome.
Kode
Untuk daftar rinci modul, fungsi akun, file, dan perintah penerapan yang digunakan dalam pola ini, lihat README file dalam devops-cdk-cloudcustodian.zip file (terlampir).
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Siapkan CodeCommit repositori. |
Untuk informasi selengkapnya tentang ini, lihat Membuat CodeCommit repositori di dokumentasi CodeCommit AWS. | Developer |
Instal alat yang diperlukan. | Gunakan Untuk informasi selengkapnya tentang ini, lihat bagian Prasyarat Memulai AWS CDK dalam dokumentasi AWS CDK. | Developer |
Instal paket AWS CDK yang diperlukan. |
Paket-paket berikut diperlukan oleh AWS CDK dan disertakan dalam
| Developer |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Perbarui variabel yang diperlukan. | Buka
| Developer |
Perbarui file account.ymldengan informasi akun anggota. | Untuk menjalankan alat Cloud Custodian c7n-org
| Developer |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Boostrap akun keamanan. | Bootstrap
| Developer |
Opsi 1 - Secara otomatis bootstrap akun anggota. | Jika Jika diperlukan, Anda dapat memperbarui Akun baru yang ditambahkan ke | Developer |
Opsi 2 - Bootstrap akun anggota secara manual. | Meskipun kami tidak menyarankan menggunakan pendekatan ini, Anda dapat mengatur nilai
pentingPastikan Anda memperbarui Anda juga dapat menggunakan pendekatan lain untuk mem-bootstrap akun anggota, misalnya, dengan AWS CloudFormation. Untuk informasi selengkapnya tentang ini, lihat Bootstrapping di dokumentasi AWS CDK. | Developer |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat peran IAM di akun anggota. | Jalankan perintah berikut untuk menyebarkan
| Developer |
Terapkan tumpukan pipeline Cloud Custodian. | Jalankan perintah berikut untuk membuat
| Developer |
Sumber daya terkait
Lampiran
Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip