

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

# Menyiapkan Pabrik Cetak Biru Perusahaan
<a name="setup"></a>

Bagian ini membantu Anda mengatur Pabrik Cetak Biru Perusahaan di lingkungan Anda. AWS Ini mencakup instruksi terperinci untuk menyiapkan repositori yang diperlukan dan AWS sumber daya untuk Pabrik Cetak Biru Perusahaan.

## Prasyarat
<a name="setup-prereqs"></a>

Berikut ini adalah prasyarat untuk menyiapkan Pabrik Cetak Biru Perusahaan di lingkungan Anda: AWS 
+ Berikut ini Akun AWS:
  + Akun yang digunakan untuk mengelola Enterprise Blueprint Factory dan untuk merilis produk
  + Satu atau lebih akun yang mengkonsumsi produk yang dirilis
+ Semua akun adalah:
  + Dikelola sebagai organisasi di [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)
  + Terletak di [unit organisasi yang sama (OU)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit)
  + Organisasi mengikuti [account-per-tenant model](https://aws.amazon.com/blogs/mt/managing-the-account-lifecycle-in-account-per-tenant-saas-environments-on-aws/)
+ AWS Command Line Interface (AWS CLI), [diinstal](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) dan [dikonfigurasi](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Izin untuk menyebarkan AWS CloudFormation tumpukan yang membuat sumber daya berikut: AWS 
  + Grup CloudWatch log Amazon Logs
  + AWS CodePipeline jaringan pipa
  + AWS CodeBuild proyek
  + Kebijakan dan aturan bus EventBridge acara Amazon
  + AWS Identity and Access Management (IAM) peran dan kebijakan
  + AWS Key Management Service (AWS KMS) kebijakan kunci dan kunci
  + AWS Service Catalog portofolio, produk, dan produk yang disediakan
  + Topik, kebijakan topik, dan langganan Amazon Simple Notification Service (Amazon SNS)
  + Ember Amazon Simple Storage Service (Amazon S3)
  + AWS Systems Manager Parameter Menyimpan parameter

  Untuk informasi selengkapnya tentang menyiapkan izin ini, lihat [CloudFormation dokumentasi](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) dan [Kebijakan implementasi untuk izin hak istimewa paling sedikit. AWS CloudFormation](https://docs.aws.amazon.com/prescriptive-guidance/latest/least-privilege-cloudformation/introduction.html)
+ Sebuah GitHub akun

## Praktik terbaik
<a name="setup-best-practices"></a>

Kami menyarankan Anda mengikuti praktik terbaik ini saat menyiapkan Pabrik Cetak Biru Perusahaan di lingkungan Anda: AWS 
+ Saat mengonfigurasi izin yang diperlukan untuk menyebarkan Pabrik Cetak Biru Perusahaan, ikuti prinsip hak istimewa paling sedikit dan berikan izin minimum yang diperlukan. Untuk informasi selengkapnya, lihat [Berikan hak istimewa terkecil](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) dan [praktik terbaik Keamanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) dalam dokumentasi IAM.
+ Saat mengonfigurasi akses ke portofolio Service Catalog, ikuti prinsip hak istimewa paling sedikit dan berikan akses hanya ke peran, pengguna, atau administrator tertentu. Ikuti [praktik terbaik keamanan](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/security-best-practices.html) untuk Service Catalog.

## Membuat repositori
<a name="setup-create-repos"></a>

Bagian ini membantu Anda mengatur repositori [konfigurasi dan repositori](architecture-components.md#architecture-config-repo) [produk untuk Enterprise Blueprint](architecture-components.md#architecture-product-repo) Factory. Untuk mengatur repositori Anda, Anda melakukan [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) pada repositori yang disediakan. GitHub Kemudian, Anda gunakan AWS CodeConnections untuk membuat [koneksi](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html) ke GitHub repositori Anda. Kemudian, Anda mengkloning GitHub repositori ke mesin lokal Anda.

**Untuk melakukan fork GitHub repositori**

1. Masuk ke [GitHub](https://github.com/login).

1. Arahkan ke [ GitHub repositori repo Konfigurasi](https://github.com/aws-samples/aws-enterprise-blueprint-factory-config-repo).

1. Pilih **garpu**.

1. Pada halaman **Buat garpu baru**, di kotak **nama Repositori**, masukkan. `ServiceCatalog-ConfigRepo`

1. (Opsional) Masukkan deskripsi.

1. Pilih **Salin cabang utama saja**.

1. Pilih **Buat garpu**.

1. Ulangi langkah-langkah ini untuk melakukan fork pada [ GitHub repositori repo Kode](https://github.com/aws-samples/aws-enterprise-blueprint-factory-code-repo). Masukkan nama `ServiceCatalog-CodeRepo` untuk repositori ini.

1. Ulangi langkah-langkah ini untuk melakukan fork pada [ GitHub repositori repo Produk](https://github.com/aws-samples/aws-enterprise-blueprint-factory-blueprint-repo). Masukkan nama `ServiceCatalog-BlueprintProductRepo` untuk repositori ini.

**Untuk membuat CodeConnections koneksi**

1. Di AWS CLI, masukkan perintah berikut untuk membuat CodeConnections koneksi ke: GitHub

   ```
   aws codeconnections create-connection --provider-type GitHub --connection-name <MyConnection>
   ```

1. Gunakan konsol Alat AWS Pengembang untuk menyelesaikan koneksi. Untuk informasi selengkapnya, lihat [Memperbarui sambungan yang tertunda](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html).

**Untuk mengkloning repositori bercabang**
+ Masukkan perintah berikut untuk mengkloning GitHub repositori ke workstation lokal Anda:

  ```
  git clone git@github.com:<user>/aws-enterprise-blueprint-factory-config-repo ServiceCatalog-ConfigRepo
  git clone git@github.com:<user>/aws-enterprise-blueprint-factory-blueprint-repo ServiceCatalog-BlueprintProductRepo
  git clone git@github.com:<user>/aws-enterprise-blueprint-factory-code-repo ServiceCatalog-CodeRepo
  ```

## Menyiapkan Pabrik Cetak Biru Perusahaan
<a name="setup-factory"></a>

Petunjuk di bagian ini menjelaskan cara menyiapkan Pabrik Cetak Biru Perusahaan di akun target Anda. Repo produk yang Anda kloning GitHub berisi dua contoh CloudFormation template, `BP-S3` dan. `BP-SNS` Dengan mengikuti petunjuk ini, Anda menerapkan dua contoh cetak biru ini sebagai produk di Service Catalog.

**Untuk mengatur peran**

1. Di akun Pengembang Blueprint, buat kebijakan kepercayaan berikut, lalu simpan sebagai: `sc-enduserrole-trust-policy.json`

   ```
   { 
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {
         "AWS": "arn:aws:iam::123456789012:role/ServiceCatalogEndUserRole"
       },
       "Action": "sts:AssumeRole"
     }
   }
   ```

1. Masukkan perintah berikut untuk membuat peran `ServiceCatalogEndUserRole` IAM:

   ```
   aws iam create-role \
   --role-name ServiceCatalogEndUserRole \
   --assume-role-policy-document file://sc-enduserrole-trust-policy.json  
   aws iam attach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \
   -- role-name ServiceCatalogEndUserRole
   ```
**catatan**  
Pengembang menggunakan `ServiceCatalogEndUserRole` peran tersebut untuk menyediakan produk Service Catalog. Peran ini tidak memerlukan izin untuk membuat sumber daya yang ditentukan dalam cetak biru. Ini mengikuti praktik terbaik dari izin yang paling tidak memiliki hak istimewa dan pemisahan tugas.

1. Buat kebijakan kepercayaan berikut dan kemudian simpan sebagai`sc-launchconstraintrole-trust-policy.json`:

   ```
   { 
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {
         "Service": "servicecatalog.amazonaws.com"
       },
       "Action": "sts:AssumeRole"
     }
   }
   ```

1. Masukkan perintah berikut untuk membuat peran `ServiceCataloglogLaunchConstraintRole` IAM:

   ```
   aws iam create-role \
   --role-name ServiceCataloglogLaunchConstraintRole \
   --assume-role-policy-document file://sc-launchconstraintrole-trust-policy.json  
   aws iam attach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \
   --role-name ServiceCataloglogLaunchConstraintRole
   aws iam attach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AWSCloudFormationFullAccess \
   --role-name ServiceCataloglogLaunchConstraintRole
   ```

1. Tambahkan kebijakan berikut ke peran `ServiceCataloglogLaunchConstraintRole` IAM. Sertakan izin lain yang diperlukan untuk sumber daya produk, seperti yang dijelaskan dalam [Mengonfigurasi Peran Peluncuran](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html#constraints-launch-role) dalam dokumentasi Service Catalog:

   ```
   {
             "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "s3:GetObject"
            ],
            "Resource":"*",
            "Condition":{
               "StringEquals":{
                  "s3:ExistingObjectTag/servicecatalog:provisioning":"true"
               }
            }
      ]
   }
   ```
**catatan**  
Service Catalog menggunakan peran ini untuk menyebarkan CloudFormation tumpukan sebagai produk di Service Catalog. Kebijakan kepercayaan untuk peran ini memastikan bahwa hanya Service Catalog yang dapat mengasumsikan peran tersebut. Pengguna atau layanan lain tidak dapat mengambil peran ini. Ini mengikuti praktik terbaik pemisahan tugas.

1. Buat kebijakan kepercayaan berikut, lalu simpan sebagai`sc-codebuild-trust-policy.json`:

   ```
   { 
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {
         "Service": "codebuild.amazonaws.com"
       },
       "Action": "sts:AssumeRole"
     }
   }
   ```

1. Masukkan perintah berikut untuk membuat peran `codebuild-servicecatalog-admin-role` IAM:

   ```
   aws iam create-role \
   --role-name codebuild-servicecatalog-admin-role \
   --assume-role-policy-document file://sc-codebuild-trust-policy.json  
   aws iam attach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess \
   --role-name codebuild-servicecatalog-admin-role
   ```
**catatan**  
 CodeBuild Pekerjaan di pipeline konfigurasi menggunakan peran ini.

**Untuk mengatur ember Amazon S3**
+ Untuk membuat bucket Amazon Simple Storage Service (Amazon S3) yang digunakan untuk menyimpan CodePipeline artefak, ikuti petunjuk [dalam Membuat bucket di dokumentasi](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) Amazon S3. Ikuti [praktik terbaik Keamanan untuk Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html).

**Untuk mengatur AWS Systems Manager parameter**
+ Ikuti petunjuk dalam [Membuat parameter Parameter Store di Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html) untuk membuat parameter Systems Manager dalam tabel berikut. Parameter ini digunakan dalam CloudFormation template yang menyebarkan pipeline konfigurasi.  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/enterprise-blueprint-factory/setup.html)

**Untuk memperbarui CloudFormation template**

1. Di repositori kode (`ServiceCatalog-CodeRepo`), buka file **ServiceCatalog-pipeline.yml**.

1. Edit nilai default untuk parameter berikut dalam file ini:
   + `ConfigRepositoryName`adalah parameter Systems Manager yang menyimpan GitHub repo tempat file konfigurasi Enterprise Blueprint Factory disimpan. Nilai default-nya adalah `/blueprints/resources/ConfigRepo`.
   + `CodeRepositoryName`adalah parameter Systems Manager yang menyimpan GitHub repo tempat kode pipa konfigurasi Enterprise Blueprint Factory dan kode disimpan. `Bootstrapping-Admin-Product` Nilai default-nya adalah `/blueprints/resources/CodeRepo`.
   + `BlueprintRepositoryName`adalah parameter Systems Manager yang menyimpan GitHub repo tempat cetak biru Enterprise Blueprint Factory disimpan. Nilai default-nya adalah `/blueprints/resources/BlueprintRepo`.
   + `BranchName`adalah cabang dari repositori konfigurasi tempat file konfigurasi disimpan. Nilai default-nya adalah `main`.
   + `VPCID`adalah parameter Systems Manager yang menyimpan ID dari VPC target. Nilai default-nya adalah `/blueprints/resources/vpc_id`.
   + `Subnets`adalah parameter Systems Manager yang IDs menyimpan subnet target. Nilai default-nya adalah `/blueprints/resources/subnets`.
   + `SecurityGroupIds`adalah parameter Systems Manager IDs yang menyimpan kelompok keamanan target. Nilai default-nya adalah `/blueprints/resources/securitygroups`.
   + `IamRoleName`adalah nama peran IAM yang digunakan CodeBuild pekerjaan. Nilai defaultnya adalah`codebuild-servicecatalog-admin-role`.
   + `EnvironmentType`adalah lingkungan tempat Anda menerapkan Pabrik Cetak Biru Perusahaan. Nilai default-nya adalah `DEV`.
   + `ArtifactBucket`adalah parameter Systems Manager yang menyimpan bucket Amazon S3 tempat CodePipeline menyimpan artefak. Nilai defaultnya adalah`/blueprints/resources/artifacts-bucket-name`.
   + `CodeConnectionArn`adalah Nama Sumber Daya Amazon (ARN) dari CodeConnections koneksi ke. GitHub

1. Simpan dan tutup file **ServiceCatalog-Pipeline.yml**.

1. Masukkan perintah berikut untuk menggabungkan perubahan ke dalam repositori kode:

   ```
   cd ServiceCatalog-CodeRepo
   git add ServiceCatalog-Pipeline.yml
   git commit -m "<description of change>"
   git push origin main
   ```

1. Di repositori konfigurasi (`ServiceCatalog-ConfigRepo`), buka file **bp\_config.yml.**

1. Perbarui nilai di bagian portofolio sesuai kebutuhan untuk organisasi Anda. Misalnya, perbarui `share_to_ou` atribut `portfolio_access_roles` dan. Untuk informasi selengkapnya, lihat [File konfigurasi](architecture-components.md#architecture-config-file) dalam panduan ini.

1. Simpan dan tutup file **bp\_config.yml.**

1. Masukkan perintah berikut untuk menggabungkan perubahan ke dalam repositori kode:

   ```
   cd ServiceCatalog-ConfigRepo
   git add bp_config.yml
   git commit -m "<description of change>"
   git push origin main
   ```

**Untuk menyebarkan tumpukan CloudFormation**

1. Masuk ke akun administratif Enterprise Blueprint Factory.

1. Beralih ke peran IAM yang memiliki [izin administratif](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html).

1. Buka [konsol CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Pada bilah navigasi di bagian atas layar, pilih target Wilayah AWS.

1. Pada halaman **Stacks**, pilih **Buat tumpukan** di kanan atas, lalu pilih **Dengan sumber daya baru (standar)**.

1. Untuk **Siapkan templat**, pilih **Templat sudah siap**.

1. Di bawah **Tentukan templat**, pilih **Unggah file templat**.

1. Pilih **Pilih File**, navigasikan ke `ServiceCatalog-CodeRepo` folder, lalu pilih **ServiceCatalog-Pipeline.yl**.

1. Pilih **Berikutnya** untuk melanjutkan dan memvalidasi template.

1. Untuk **nama Stack**, masukkan nama untuk tumpukan.

1. Di bagian **Parameter**, jangan ubah nilai default.

1. Pilih **Berikutnya**.

1. Pada halaman **Configure stack options**, jangan ubah nilai default, lalu pilih **Next**.

1. Pada halaman **Tinjau dan buat**, verifikasi detail templat dan tumpukan, lalu pilih **Kirim**.

1. Pantau kemajuan penerapan tumpukan. Lihat informasi yang lebih lengkap dalam [dokumentasi CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/monitor-stack-progress.html).

1. Tunggu statusnya berubah`CREATE_COMPLETE`.

**Untuk memvalidasi penerapan**

1. Buka [konsol AWS Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. Di panel navigasi, pilih **Produk**.

1. Konfirmasikan bahwa **ServiceCatalog-Pipeline** tersedia dalam daftar produk.

1. Buka [konsol AWS CodePipeline](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Di **Nama**, pilih pipeline konfigurasi. Secara default, nama pipeline adalah`ServiceCatalog-Pipeline`.

1. Pilih **Lihat riwayat**.

1. Lihat status pipa dan eksekusi panggung. Untuk informasi selengkapnya tentang status, [lihat Melihat status eksekusi](https://docs.aws.amazon.com/codepipeline/latest/userguide/executions-view.html#pipelines-executions-status-console) di CodePipeline dokumentasi.

1. Tunggu hingga status pipeline konfigurasi`Succeeded`.

1. Buka [konsol Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. Di panel navigasi, pilih **Produk**.

1. Konfirmasikan bahwa produk **BP-S3 dan produk** **BP-SNS** tersedia. Ini menunjukkan bahwa pipa pelepasan produk untuk cetak biru sampel berhasil diselesaikan.

1. [Jika Anda ingin menghapus contoh cetak biru yang Anda gunakan saat menyiapkan Pabrik Cetak Biru Perusahaan, ikuti petunjuk di Menghapus cetak biru.](using-factory.md#using-factory-delete)

## Hapus Pabrik Cetak Biru Perusahaan
<a name="setup-delete-factory"></a>

Jika Anda tidak menggunakan Pabrik Cetak Biru Perusahaan, Anda dapat menghapusnya untuk menghentikan biaya yang terkait dengan sumber dayanya. AWS 

**Untuk menghapus sumber daya**

1. Masukkan perintah berikut untuk menghapus peran IAM yang digunakan di akun administratif Enterprise Blueprint Factory:

   ```
   aws iam detach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \
   --role-name ServiceCatalogEndUserRole
   aws iam delete-role --role-name ServiceCatalogEndUserRole
   aws iam detach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \
   --role-name ServiceCataloglogLaunchConstraintRole
   aws iam delete-role --role-name ServiceCataloglogLaunchConstraintRole
   ```

1. Hapus CloudFormation tumpukan untuk Enterprise Blueprint Factory. Untuk petunjuk, lihat [Menghapus tumpukan dari CloudFormation konsol](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) atau [Menghapus tumpukan dari AWS CLI](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/service_code_examples.html#delete-stack-sdk).

1. Hapus bucket Amazon S3 yang digunakan untuk menyimpan artefak. CodePipeline Untuk petunjuknya, lihat [Menghapus bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) di dokumentasi Amazon S3.

1. Hapus parameter Systems Manager berikut dari Parameter Store:
   + `/blueprints/resources/vpc_id`
   + `/blueprints/resources/subnets`
   + `/blueprints/resources/securitygroups`
   + `/blueprints/resources/artifacts-bucket-name`
   + `/blueprints/resources/BlueprintRepo`
   + `/blueprints/resources/CodeRepo`
   + `/blueprints/resources/ConfigRepo`

   Untuk petunjuk, lihat [Menghapus parameter dari Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/deleting-parameters.html) dalam dokumentasi Systems Manager.