Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengotomatiskan portofolio AWS Service Catalog dan penerapan produk dengan menggunakan AWS CDK
Sandeep Gawande, Viyoma Sachdeva, dan RAJNEESH TYAGI, Amazon Web Services
Ringkasan
AWS Service Catalog membantu Anda mengelola katalog layanan TI, atau produk secara terpusat, yang disetujui untuk digunakan di lingkungan AWS organisasi Anda. Kumpulan produk disebut portofolio, dan portofolio juga berisi informasi konfigurasi. Dengan AWS Service Catalog, Anda dapat membuat portofolio yang disesuaikan untuk setiap jenis pengguna di organisasi Anda dan kemudian memberikan akses ke portofolio yang sesuai. Pengguna tersebut kemudian dapat dengan cepat menyebarkan produk apa pun yang mereka butuhkan dari dalam portofolio.
Jika Anda memiliki infrastruktur jaringan yang kompleks, seperti arsitektur Multi-region dan multi-akun, Anda disarankan untuk membuat dan mengelola portofolio Service Catalog dalam satu akun sentral. Pola ini menjelaskan cara menggunakan AWS Cloud Development Kit (AWS CDK) untuk mengotomatiskan pembuatan portofolio Service Catalog di akun pusat, memberikan akses kepada pengguna akhir, dan kemudian, secara opsional, menyediakan produk dalam satu atau beberapa akun AWS target. ready-to-useSolusi ini membuat portofolio Service Catalog di akun sumber. Ini juga, secara opsional, menyediakan produk dalam akun target dengan menggunakan CloudFormation tumpukan AWS dan membantu Anda mengonfigurasi TagOptions produk:
AWS CloudFormation StackSets — Anda dapat menggunakannya StackSets untuk meluncurkan produk Service Catalog di beberapa Wilayah dan akun AWS. Dalam solusi ini, Anda memiliki opsi untuk menyediakan produk secara otomatis saat Anda menerapkan solusi ini. Untuk informasi selengkapnya, lihat Menggunakan AWS CloudFormation StackSets (Dokumentasi Service Catalog) dan StackSets konsep (CloudFormation dokumentasi).
TagOption library — Anda dapat mengelola tag pada produk yang disediakan dengan menggunakan TagOption library. A TagOptionadalah pasangan nilai kunci yang dikelola di AWS Service Catalog. Ini bukan tag AWS, tetapi berfungsi sebagai templat untuk membuat tag AWS berdasarkan tag TagOption. Untuk informasi selengkapnya, lihat TagOption library (Dokumentasi Service Catalog).
Prasyarat dan batasan
Prasyarat
Akun AWS aktif yang ingin Anda gunakan sebagai akun sumber untuk mengelola portofolio Service Catalog.
Jika Anda menggunakan solusi ini untuk menyediakan produk dalam satu atau beberapa akun target, akun target harus sudah ada dan aktif.
Izin AWS Identity and Access Management (IAM) untuk mengakses AWS Service Catalog, AWS CloudFormation, dan AWS IAM.
Versi produk
AWS CDK versi 2.27.0
Arsitektur
Tumpukan teknologi target
Portofolio Service Catalog di akun AWS terpusat
Produk Service Catalog dikerahkan di akun target
Arsitektur target

Di akun portofolio (atau sumber), Anda memperbarui file config.json dengan akun AWS, Wilayah AWS, peran IAM, portofolio, dan informasi produk untuk kasus penggunaan Anda.
Anda menerapkan aplikasi AWS CDK.
Aplikasi AWS CDK mengasumsikan peran IAM penerapan dan membuat portofolio dan produk Service Catalog yang ditentukan dalam file config.json.
Jika Anda mengonfigurasi StackSets untuk menyebarkan produk di akun target, proses akan berlanjut. Jika Anda tidak mengonfigurasi StackSets untuk menyediakan produk apa pun, maka prosesnya selesai.
Aplikasi AWS CDK mengasumsikan peran StackSet administrator dan menerapkan set CloudFormation tumpukan AWS yang Anda tentukan dalam file config.json.
Dalam akun target, StackSets mengasumsikan peran StackSet eksekusi dan ketentuan produk.
Alat
Layanan AWS
AWS Cloud Development Kit (AWS CDK) adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
AWS CDK Toolkit adalah kit pengembangan cloud baris perintah yang membantu Anda berinteraksi dengan aplikasi AWS CDK Anda.
AWS CloudFormation membantu Anda menyiapkan sumber daya AWS, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya di seluruh akun dan Wilayah AWS.
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke sumber daya AWS dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
AWS Service Catalog membantu Anda mengelola katalog layanan TI secara terpusat yang disetujui untuk AWS. Pengguna akhir dapat dengan cepat men-deploy hanya layanan IT yang disetujui yang mereka butuhkan, mengikuti batasan yang ditetapkan oleh organisasi Anda.
Repositori kode
Kode untuk pola ini tersedia di GitHub, di aws-cdk-servicecatalog-automation
cdk-sevicecatalog-app— Folder ini berisi aplikasi AWS CDK untuk solusi ini.
config - Folder ini berisi file config.json dan CloudFormation template untuk menyebarkan produk dalam portofolio Service Catalog.
config/config.json - File ini berisi semua informasi konfigurasi. Anda memperbarui file ini untuk menyesuaikan solusi ini untuk kasus penggunaan Anda.
config/templates - Folder ini berisi CloudFormation template untuk produk Service Center.
setup.sh - Skrip ini menyebarkan solusi.
uninstall.sh - Skrip ini menghapus tumpukan dan semua sumber daya AWS yang dibuat saat menerapkan solusi ini.
Untuk menggunakan kode sampel, ikuti instruksi di bagian Epik.
Praktik terbaik
Peran IAM yang digunakan untuk menerapkan solusi ini harus mematuhi prinsip hak istimewa paling sedikit (dokumentasi IAM).
Patuhi praktik terbaik untuk mengembangkan aplikasi cloud dengan AWS CDK
(postingan blog AWS). Patuhi praktik CloudFormation terbaik AWS (CloudFormation dokumentasi).
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Instal AWS CDK Toolkit. | Pastikan Anda telah menginstal AWS CDK Toolkit. Masukkan perintah berikut untuk mengonfirmasi apakah sudah diinstal dan periksa versinya.
Jika AWS CDK Toolkit tidak diinstal, maka masukkan perintah berikut untuk menginstalnya.
Jika versi AWS CDK Toolkit lebih awal dari 2.27.0, maka masukkan perintah berikut untuk memperbaruinya ke versi 2.27.0.
| AWS DevOps, DevOps insinyur |
Kloning repositori. | Masukkan perintah berikut. Di Kloning repositori di bagian Informasi tambahan, Anda dapat menyalin perintah lengkap yang berisi URL untuk repositori. Ini mengkloning aws-cdk-servicecatalog-automation
Ini membuat
| AWS DevOps, DevOps insinyur |
Siapkan kredensi AWS. | Masukkan perintah berikut. Ini mengekspor variabel berikut, yang menentukan akun AWS dan Wilayah tempat Anda menerapkan tumpukan.
Kredensi AWS untuk AWS CDK disediakan melalui variabel lingkungan. | AWS DevOps, DevOps insinyur |
Konfigurasikan izin untuk peran IAM pengguna akhir. | Jika Anda akan menggunakan peran IAM untuk memberikan akses ke portofolio dan produk di dalamnya, peran harus memiliki izin yang akan diambil oleh prinsipal layanan servicecatalog.amazonaws.com. Untuk petunjuk tentang cara memberikan izin ini, lihat Mengaktifkan akses tepercaya dengan Service Catalog (dokumentasi AWS Organizations). | AWS DevOps, DevOps insinyur |
Konfigurasikan peran IAM yang dibutuhkan oleh StackSets. | Jika Anda menggunakan StackSets untuk secara otomatis menyediakan produk di akun target, Anda perlu mengonfigurasi peran IAM yang mengelola dan menjalankan kumpulan tumpukan.
| AWS DevOps, DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat CloudFormation template. | Di | Pengembang aplikasi, AWS DevOps, DevOps insinyur |
Sesuaikan file konfigurasi. | Di Di
AwasPengguna IAM memiliki kredensi jangka panjang, yang menghadirkan risiko keamanan. Untuk membantu mengurangi risiko ini, kami menyarankan agar Anda memberikan pengguna ini hanya izin yang mereka perlukan untuk melakukan tugas dan menghapus pengguna ini ketika mereka tidak lagi diperlukan. penting
Untuk contoh file konfigurasi yang telah selesai, lihat Contoh file konfigurasi di bagian Informasi tambahan. | Pengembang aplikasi, DevOps insinyur, AWS DevOps |
Menyebarkan solusinya. | Masukkan perintah berikut. Ini menerapkan aplikasi AWS CDK dan menyediakan portofolio dan produk Service Catalog sebagaimana ditentukan dalam file config.json.
| Pengembang aplikasi, DevOps insinyur, AWS DevOps |
Verifikasi penyebaran. | Verifikasi penerapan yang berhasil dengan melakukan hal berikut:
| AWS Umum |
(Opsional) Perbarui portofolio dan produk. | Jika Anda ingin menggunakan solusi ini untuk memperbarui portofolio atau produk atau untuk menyediakan produk baru:
Misalnya, Anda dapat menambahkan portofolio tambahan atau menyediakan lebih banyak sumber daya. Aplikasi AWS CDK hanya mengimplementasikan perubahan. Jika tidak ada perubahan pada portofolio atau produk yang digunakan sebelumnya, pemindahan tidak akan memengaruhi portofolio atau produk tersebut. | Pengembang aplikasi, DevOps insinyur, AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
(Opsional) Hapus sumber daya AWS yang digunakan oleh solusi ini. | Jika Anda ingin menghapus produk yang disediakan, ikuti petunjuk di Menghapus produk yang disediakan (dokumentasi Service Catalog). Jika Anda ingin menghapus semua sumber daya yang dibuat oleh solusi ini, masukkan perintah berikut.
| AWS DevOps, DevOps insinyur, Pengembang aplikasi |
Sumber daya terkait
Perpustakaan Konstruksi AWS Service Catalog (AWS API Referensi)
StackSets konsep (CloudFormation dokumentasi)
AWS Service Catalog
(AWS marketing) Menggunakan Service Catalog dengan AWS CDK
(AWS workshop)
Informasi tambahan
Kloning repositori
Masukkan perintah berikut untuk mengkloning repositori dari. GitHub
git clone https://github.com/aws-samples/aws-cdk-servicecatalog-automation.git
Contoh file konfigurasi
Berikut ini adalah contoh file config.json dengan nilai contoh.
{ "portfolios": [ { "displayName": "EC2 Product Portfolio", "providerName": "User1", "description": "Test1", "roles": [ "<Names of IAM roles that can access the products>" ], "users": [ "<Names of IAM users who can access the products>" ], "groups": [ "<Names of IAM user groups that can access the products>" ] }, { "displayName": "Autoscaling Product Portfolio", "providerName": "User2", "description": "Test2", "roles": [ "<Name of IAM role>" ] } ], "tagOption": [ { "key": "Group", "value": [ "finance", "engineering", "marketing", "research" ] }, { "key": "CostCenter", "value": [ "01", "02", "03", "04" ] }, { "key": "Environment", "value": [ "dev", "prod", "stage" ] } ], "products": [ { "portfolioName": "EC2 Product Profile", "productName": "Ec2", "owner": "owner1", "productVersionName": "v1", "templatePath": "../../config/templates/template1.json" }, { "portfolioName": "Autoscaling Product Profile", "productName": "autoscaling", "owner": "owner1", "productVersionName": "v1", "templatePath": "../../config/templates/template2.json", "deployWithStackSets": { "accounts": [ "012345678901", ], "regions": [ "us-west-2" ], "stackSetAdministrationRoleName": "AWSCloudFormationStackSetAdministrationRole", "stackSetExecutionRoleName": "AWSCloudFormationStackSetExecutionRole" } } ] }