Komponen Pabrik Cetak Biru Perusahaan - AWS Bimbingan Preskriptif

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

Komponen Pabrik Cetak Biru Perusahaan

Enterprise Blueprint Factory terdiri dari komponen-komponen berikut:

  • Repositori produk — Repositori tempat Anda menyimpan cetak biru.

  • Repositori konfigurasi — Repositori tempat Anda menyimpan file konfigurasi yang mendefinisikan portofolio dan produk Anda. AWS Service Catalog

  • File konfigurasi — File konfigurasi yang menentukan cetak biru apa yang tersedia, siapa yang dapat menggunakannya, dan bagaimana mereka dapat menggunakannya.

  • Configuration pipeline — Pipeline DevOps CI/CD yang menyiapkan portofolio Service Catalog dan portofolio share dan membuat pipeline rilis untuk setiap produk.

  • Rilis pipeline — Pipeline DevOps CI/CD yang merilis cetak biru sebagai produk Service Catalog. 

Tim infrastruktur cloud biasanya mengelola Enterprise Blueprint Factory secara keseluruhan karena mereka harus menyetujui setiap cetak biru. Namun, tim DevOps kode biasanya bertanggung jawab atas pipa konfigurasi dan pipa rilis. Untuk merilis cetak biru baru, pengembang hanya berinteraksi dengan repositori produk, repositori konfigurasi, dan file konfigurasi.

Repositori produk

Repositori produk adalah lokasi terpusat tempat Anda menyimpan cetak biru yang disetujui organisasi Anda.  Tim administrasi cetak biru dan tim keamanan meninjau permintaan tarik ke repositori ini untuk memastikan bahwa setiap cetak biru memenuhi persyaratan organisasi dan keamanan. Dalam panduan ini, kami gunakan GitHub untuk repositori, tetapi Anda dapat menggunakan alternatif.

Repositori konfigurasi

Repositori konfigurasi (config repo) adalah lokasi di mana organisasi Anda menyimpan file konfigurasi untuk portofolio Service Catalog dan produk yang dirilis melalui Enterprise Blueprint Factory. Dalam panduan ini, kami gunakan GitHub untuk repositori, tetapi Anda dapat menggunakan alternatif.

File konfigurasi

File konfigurasi Enterprise Blueprint Factory (file konfigurasi) disimpan dalam repositori konfigurasi, yang dimiliki oleh tim administratif cetak biru. Nama file ini adalah bp_config.yml. Saat pengembang memperbarui file ini, tim administratif cetak biru meninjau perubahan tersebut. Menggabungkan perubahan ke cabang utama memulai pipa konfigurasi. File konfigurasi mengatur penerbitan, berbagi, dan distribusi semua cetak biru yang dikelola melalui Enterprise Blueprint Factory.

File konfigurasi adalah file YAMM yang terdiri dari dua objek utama: portfolios dan. products Berikut ini adalah contoh contoh file konfigurasi:

portfolios: - portfolio_name: blueprint-portfolio owner: Blueprint-team provider_name: AWS description: "Blueprint portfolio" portfolio_access_role: - arn:aws:iam::123456789012:role/examplerole - arn:aws:iam::123456789012:user/exampleuser share_to_ou: - org_id: "o-exampleOrgID" stack_tags: DataClassification: Confidential Organization: AWS products: - name: BP-S3-Product description: "Blueprint for BP-S3 product" product_config_file: 'BP-S3/product_config.json' owner: Blueprint-team stack_tags: DataClassification: Confidential Organization: AWS portfolio_associations: - blueprint-portfolio launch_constraint_role: arn:aws:iam::123456789012:role/examplelaunchrole

Di portfolios objek, Anda menentukan portofolio Service Catalog target Anda. Untuk setiap portofolio, Anda memberikan atribut berikut:

  • portfolio_nameadalah nama portofolio. Atribut ini diperlukan.

  • owneradalah nama tim yang memiliki portofolio. Atribut ini opsional.

  • provider_nameadalah nama tim atau organisasi yang mengelola portofolio. Nilai default-nya adalah AWS. Atribut ini diperlukan.

  • descriptionadalah deskripsi singkat dari portofolio. Atribut ini opsional.

  • portfolio_access_rolesadalah identitas AWS Identity and Access Management (IAM) (pengguna, peran, atau grup) yang diizinkan untuk mengakses portofolio dan produk terkaitnya. Atribut ini opsional.

  • share_to_ouadalah unit organisasi (OU) di AWS Organizations mana portofolio dibagi. Pengguna akhir dapat menyebarkan produk portofolio ini Akun AWS yang merupakan anggota OU target. Atribut ini opsional.

  • stack_tagsadalah tag yang diterapkan pada portofolio. Atribut ini opsional.

Dalam products objek, Anda menentukan setiap cetak biru yang ingin Anda rilis sebagai produk di Service Catalog. Untuk setiap produk, Anda memberikan atribut berikut:

  • nameadalah nama produk di Service Catalog. Atribut ini diperlukan.

  • descriptionadalah deskripsi singkat tentang produk. Atribut ini diperlukan.

  • product_config_fileadalah nama file konfigurasi produk cetak biru yang disimpan dalam repositori produk. Atribut ini diperlukan.

  • owneradalah nama tim yang memiliki produk. Atribut ini diperlukan.

  • stack_tagsadalah tag yang diterapkan pada produk. Atribut ini opsional.

  • portfolio_associationsadalah portofolio target yang berisi produk. Atribut ini opsional.

    catatan

    Kami menyarankan Anda menambahkan produk hanya ke portofolio yang dikelola melalui Enterprise Blueprint Factory. Jika Anda ingin menambahkan produk ke portofolio yang tidak dikelola melalui Pabrik Cetak Biru Perusahaan, kebijakan IAM pengguna harus mengizinkan tindakan tersebut. AssociateProductWithPortfolio Namun, sebagai praktik terbaik keamanan, sebaiknya Anda mengizinkan tindakan ini hanya untuk pipeline konfigurasi Enterprise Blueprint Factory.

  • launch_constraint_roleadalah peran peluncuran yang diasumsikan oleh Service Catalog saat pengguna akhir meluncurkan produk. Atribut ini diperlukan.

Pipa konfigurasi

Pipeline konfigurasi (config pipeline) mengotomatiskan konfigurasi portofolio Service Catalog dan pembagian portofolio. Ini juga menciptakan pipa rilis untuk setiap produk. Pipeline ini adalah AWS CodePipelinesumber daya. Pembaruan ke file konfigurasi memanggil pipeline konfigurasi.

Pertama kali Anda menjalankan pipeline konfigurasi, itu membuat dua portofolio tambahan yang tidak ditentukan dalam file konfigurasi Anda:

  • Blueprint-portfolio— Setiap produk yang Anda gunakan melalui Enterprise Blueprint Factory ditambahkan ke portofolio ini. Portofolio ini tersedia untuk prinsipal IAM dan unit organisasi yang Anda tentukan dalam file konfigurasi.

  • Bootstrapping-Admin-PortfolioBootstrapping-Admin-Product Produk dikaitkan dengan portofolio ini. Produk ini adalah CloudFormation template untuk pipa rilis. Izinkan hanya tim administrasi cetak biru untuk mengakses portofolio ini sehingga mereka dapat mengelola produk administrasi.

Tahapan pipa konfigurasi

Gambar berikut menunjukkan tahapan dalam pipeline konfigurasi dan sumber daya yang berinteraksi dengan pipeline. Setiap tahap dalam pipa adalah sebuah AWS CodeBuildproyek.

Tahapan dalam pipa konfigurasi Enterprise Blueprint Factory.

Berikut ini adalah tahapan dari pipa konfigurasi:

  1. Terapkan portofolio — Pipeline konfigurasi menyebarkan portofolio apa pun yang telah ditambahkan ke file konfigurasi atau menghapus portofolio apa pun yang telah dihapus dari file konfigurasi. Jika tidak ada perubahan pada portofolio, maka pipeline melewati tahap ini.

  2. Bagikan portofolio — Pipeline konfigurasi berbagi portofolio dengan unit organisasi target (). OUs Jika tidak ada perubahan pada saham portofolio, maka pipa melewati tahap ini.

  3. Deploy Blueprint-Admin-Bootstrapping-Product — Pipeline konfigurasi mengambil bp-pipeline cetak biru dari ServiceCatalog-CodeRepo repo dan menerapkannya ke Service Catalog sebagai. Bootstrapping-Admin-Product Produk ini adalah CloudFormation template yang digunakan untuk membuat pipeline rilis. Menerapkan template ini sebagai produk Service Catalog membantu mempertahankan kontrol versi. Jika tidak ada perubahan pada bp-pipeline cetak biru, maka pipa melewati tahap ini.

  4. Buat pipeline rilis — Berdasarkan atribut produk dalam file konfigurasi, pipeline konfigurasi menyiapkan parameter tumpukan dan meluncurkan CloudFormation tumpukan yang membuat pipeline rilis untuk produk. Untuk informasi selengkapnya, lihat Rilis pipeline dalam panduan ini.

  5. Menyebarkan produk — Saluran rilis menyebarkan cetak biru sebagai produk Service Catalog dan mengaitkannya dengan portofolio target. Pengguna akhir sekarang dapat menyebarkan produk Akun AWS yang merupakan anggota OU target.

Rilis pipa

Pipeline rilis mengotomatiskan rilis cetak biru sebagai produk Service Catalog. Pipeline ini adalah AWS CodePipelinesumber daya. Saat organisasi Anda ingin merilis cetak biru baru, pengembang mengunggah template IAC dan file konfigurasi produknya ke repo produk. Menambahkan detail produk ke file konfigurasi memicu pipeline konfigurasi. Pipeline konfigurasi membuat pipeline rilis untuk cetak biru ini. Setiap pembaruan berikutnya pada cetak biru akan memicu pipeline rilis ini untuk memperbarui produk di Service Catalog dengan versi baru.

Saluran rilis mencakup kontrol proaktif yang mengotomatiskan pemeriksaan keamanan dan kepatuhan untuk cetak biru Anda. Kontrol proaktif dirancang untuk mencegah penciptaan sumber daya yang tidak sesuai. Kontrol ini dapat mengurangi jumlah peristiwa keamanan yang ditangani oleh jenis kontrol keamanan lainnya, seperti kontrol responsif dan detektif. Karena kontrol proaktif memastikan bahwa sumber daya yang diterapkan sesuai sebelum diterapkan, tidak ada peristiwa deteksi yang memerlukan respons atau remediasi.

Pertama kali Anda memanggil pipeline konfigurasi, itu membuat produk Service Catalog yang diberi namaBootstrapping-Admin-Product. Produk ini adalah CloudFormation template untuk pipa rilis. Seperti yang ditunjukkan pada gambar berikut, pipeline konfigurasi menggunakan Bootstrapping-Admin-Product produk untuk membuat pipeline rilis khusus untuk setiap cetak biru baru. Ada one-to-one hubungan antara cetak biru dan pipa rilis.

Pipeline konfigurasi menggunakan produk untuk membuat pipeline rilis untuk setiap cetak biru.

Tahapan saluran pipa rilis

Gambar berikut menunjukkan tahapan default dalam pipeline rilis dan sumber daya yang berinteraksi dengan pipeline. Setiap tahap dalam pipa adalah sebuah CodeBuild proyek.

Tahapan dalam pipa rilis Enterprise Blueprint Factory.

Berikut ini adalah tahapan dari pipa rilis:

  1. Penyelarasan file — Tahap ini memverifikasi bahwa cetak biru adalah template atau CloudFormation konstruksi. AWS Cloud Development Kit (AWS CDK) Jika cetak biru adalah AWS CDK konstruksi, tahap ini mensintesis konstruksi menjadi templat. AWS CDK CloudFormation Proses ini mengotomatiskan dan menstandarisasi penerapan melalui. CloudFormation Jika ada kesalahan yang ditemukan, pipa gagal.

  2. Pemeriksaan sintaks - Kesalahan sintaks adalah penyebab umum kesalahan CloudFormation penerapan. Pada tahap ini, AWS CloudFormation Linter (cfn-lint) memeriksa kesalahan sintaks dengan membandingkan template dengan spesifikasi sumber daya.AWS CloudFormation Ini juga melakukan pemeriksaan lain, seperti memeriksa nilai yang valid untuk properti sumber daya dan kepatuhan terhadap praktik terbaik. Jika ada kesalahan yang ditemukan, pipeline gagal, dan cfn-lint mengembalikan saran.

  3. Pemeriksaan kontrol — Pada tahap ini, cfn_nag memeriksa potensi masalah keamanan dengan mencari pola. Misalnya, ia memeriksa grup keamanan dan kebijakan AWS Identity and Access Management (IAM) yang terlalu permisif, enkripsi yang hilang, dan literal kata sandi. Jika ada kesalahan yang ditemukan, pipeline gagal, dan cfn_nag mengembalikan saran.

  4. Pemeriksaan versi — Saluran rilis melakukan kontrol versi berdasarkan strategi versi yang ditentukan dalam file konfigurasi produk. Jika versi produk didefinisikan sebagai tidak dapat diubah, Service Catalog menonaktifkan versi produk sebelumnya.

  5. Publikasikan produk - Saluran rilis merilis produk di Service Catalog.

catatan

Pipa rilis dapat disesuaikan. Misalnya, Anda dapat menghapus tahapan apa pun yang tidak berlaku untuk kasus penggunaan Anda. Anda juga dapat menambahkan lebih banyak tahapan jika Anda ingin menambahkan pemeriksaan kontrol lainnya, validasi tambahan, atau langkah persetujuan manual. Panduan ini tidak menyertakan instruksi untuk memodifikasi pipeline rilis. Untuk informasi lebih lanjut, lihat CodePipelinedan CodeBuilddokumentasi.