

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

# Sesuaikan nama peran default dengan menggunakan AWS CDK aspek dan lubang keluar
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches"></a>

*SANDEEP SINGH dan James Jacob, Amazon Web Services*

## Ringkasan
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-summary"></a>

Pola ini menunjukkan cara menyesuaikan nama default peran yang dibuat oleh AWS Cloud Development Kit (AWS CDK) konstruksi. Menyesuaikan nama peran seringkali diperlukan jika organisasi Anda memiliki batasan khusus berdasarkan konvensi penamaan. Misalnya, organisasi Anda mungkin menetapkan [batas izin AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) (IAM) atau [kebijakan kontrol layanan (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) yang memerlukan awalan tertentu dalam nama peran. Dalam kasus seperti itu, nama peran default yang dihasilkan oleh AWS CDK konstruksi mungkin tidak memenuhi konvensi ini dan mungkin harus diubah. Pola ini membahas persyaratan tersebut dengan menggunakan [lubang keluar](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html) dan [aspek](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html) di. AWS CDK Anda menggunakan escape hatch untuk menentukan nama peran kustom, dan aspek untuk menerapkan nama kustom ke semua peran, untuk memastikan kepatuhan terhadap kebijakan dan batasan organisasi Anda.

## Prasyarat dan batasan
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-prereqs"></a>

**Prasyarat**
+ Aktif Akun AWS
+ [Prasyarat yang ditentukan dalam dokumentasi AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_prerequisites)

**Batasan**
+ Aspek memfilter sumber daya berdasarkan jenis sumber daya, sehingga semua peran memiliki awalan yang sama. Jika Anda memerlukan awalan peran yang berbeda untuk peran yang berbeda, pemfilteran tambahan berdasarkan properti lain diperlukan. Misalnya, untuk menetapkan awalan berbeda ke peran yang terkait dengan AWS Lambda fungsi, Anda dapat memfilter berdasarkan atribut atau tag peran tertentu, dan menerapkan satu awalan untuk peran terkait Lambda dan awalan yang berbeda untuk peran lain.
+ Nama peran IAM memiliki panjang maksimum 64 karakter, jadi nama peran yang dimodifikasi harus dipangkas untuk memenuhi batasan ini.
+ Beberapa Layanan AWS tidak tersedia di semua AWS Region. Untuk ketersediaan Wilayah, lihat [Layanan AWS berdasarkan Wilayah](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Untuk titik akhir tertentu, lihat halaman [titik akhir dan kuota Layanan](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), dan pilih tautan untuk layanan.

## Arsitektur
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-architecture"></a>

**Tumpukan teknologi target**
+ AWS CDK
+ AWS CloudFormation

**Arsitektur target**

![Arsitektur untuk menggunakan lubang keluar dan aspek untuk menyesuaikan nama peran yang ditetapkan AWS CDK.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/c149d8d2-1da6-4680-ab0b-e5051b69688c/images/15e56ca5-f150-4522-b374-8ee2dcc655a9.png)

+  AWS CDK Aplikasi terdiri dari satu atau lebih CloudFormation tumpukan, yang disintesis dan digunakan untuk mengelola sumber daya. AWS 
+ Untuk memodifikasi properti sumber daya yang AWS CDK dikelola yang tidak diekspos oleh konstruksi layer 2 (L2), Anda menggunakan escape hatch untuk mengganti CloudFormation properti yang mendasarinya (dalam hal ini, nama peran), dan aspek untuk menerapkan peran ke semua sumber daya dalam AWS CDK aplikasi selama proses sintesis tumpukan. AWS CDK 

## Alat
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-tools"></a>

**Layanan AWS**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)adalah kerangka pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan AWS Cloud infrastruktur dalam kode.
+ [AWS CDK Command Line Interface (AWS CDK CLI)](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) (juga disebut sebagai AWS CDK Toolkit) adalah kit pengembangan cloud baris perintah yang membantu Anda berinteraksi dengan aplikasi Anda. AWS CDK `cdk`Perintah CLI adalah alat utama untuk berinteraksi dengan aplikasi Anda. AWS CDK Ini menjalankan aplikasi Anda, menginterogasi model aplikasi yang Anda tentukan, dan menghasilkan serta menerapkan CloudFormation template yang dihasilkan oleh. AWS CDK
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan Wilayah.

**Repositori kode**

Kode sumber dan template untuk pola ini tersedia di repositori GitHub [CDK Aspects Override](https://github.com/aws-samples/cdk-aspects-override).

## Praktik terbaik
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-best-practices"></a>

Lihat [Praktik terbaik untuk menggunakan AWS CDK in TypeScript untuk membuat proyek IAc](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html) di situs web **AWS **Prescriptive Guidance.

## Epik
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-epics"></a>

### Instal AWS CDK CLI
<a name="install-the-cdk-cli"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal AWS CDK CLI. | Untuk menginstal AWS CDK CLI secara global, jalankan perintah:<pre>npm install -g aws-cdk</pre> | AWS DevOps | 
| Verifikasi versinya. | Jalankan perintah :<pre>cdk --version</pre><br />Konfirmasikan bahwa Anda menggunakan AWS CDK CLI versi 2. | AWS DevOps | 
| Bootstrap AWS CDK lingkungan. | Sebelum Anda menyebarkan CloudFormation template, siapkan akun dan AWS Region yang ingin Anda gunakan. Jalankan perintah :<pre>cdk bootstrap <account>/<Region></pre><br />Untuk informasi selengkapnya, lihat [AWS CDK bootstrap di dokumentasi](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html). AWS  | AWS DevOps | 

### Terapkan AWS CDK aplikasi untuk mendemonstrasikan penggunaan aspek
<a name="deploy-the-cdk-app-to-demonstrate-the-use-of-aspects"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Siapkan proyek. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html) | AWS DevOps | 
| Terapkan tumpukan dengan nama peran default yang ditetapkan oleh. AWS CDK | Terapkan dua CloudFormation tumpukan (`ExampleStack1`dan`ExampleStack2`) yang berisi fungsi Lambda dan peran terkaitnya:<pre>npm run deploy:ExampleAppWithoutAspects</pre><br />Kode tidak secara eksplisit meneruskan properti peran, sehingga nama peran akan dibuat oleh. AWS CDK<br />Misalnya output, lihat bagian [Informasi tambahan](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | AWS DevOps | 
| Menyebarkan tumpukan dengan aspek. | Pada langkah ini, Anda menerapkan aspek yang memberlakukan konvensi nama peran dengan menambahkan awalan ke semua peran IAM yang diterapkan dalam proyek. AWS CDK Aspek didefinisikan dalam `lib/aspects.ts` file. Aspek menggunakan escape hatch untuk mengganti nama peran dengan menambahkan awalan. Aspek ini diterapkan pada tumpukan dalam `bin/app-with-aspects.ts` file. Awalan nama peran yang digunakan dalam contoh ini adalah`dev-unicorn`.[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches.html)<br />Misalnya output, lihat bagian [Informasi tambahan](#customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional). | AWS DevOps | 

### Pembersihan sumber daya
<a name="clean-up-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Hapus AWS CloudFormation tumpukan Anda. | Setelah Anda selesai menggunakan pola ini, jalankan perintah berikut untuk membersihkan sumber daya agar tidak menimbulkan biaya tambahan:<pre>cdk destroy --all -f && cdk --app npx ts-node bin/app-with-aspects.ts' destroy --all -f </pre> | AWS DevOps | 

## Pemecahan masalah
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-troubleshooting"></a>


| Isu | Solusi | 
| --- | --- | 
| Anda mengalami masalah menggunakan AWS CDK. | Lihat [Memecahkan AWS CDK masalah umum](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html) dalam dokumentasi. AWS CDK  | 

## Sumber daya terkait
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-resources"></a>
+ [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/)
+ [AWS CDK dokumentasi](https://docs.aws.amazon.com/cdk/)
+ [AWS CDK pada GitHub](https://github.com/aws/aws-cdk)
+ [Melarikan diri menetas](https://docs.aws.amazon.com/cdk/v2/guide/cfn-layer.html)
+ [Aspek dan AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/aspects.html)

## Informasi tambahan
<a name="customize-default-role-names-by-using-aws-cdk-aspects-and-escape-hatches-additional"></a>

**Nama peran yang dibuat oleh CloudFormation tanpa aspek**

```
Outputs:
ExampleStack1WithoutAspects.Function1RoleName = example-stack1-without-as-Function1LambdaFunctionSe-y7FYTY6FXJXA
ExampleStack1WithoutAspects.Function2RoleName = example-stack1-without-as-Function2LambdaFunctionSe-dDZV4rkWqWnI
...

Outputs:
ExampleStack2WithoutAspects.Function3RoleName = example-stack2-without-as-Function3LambdaFunctionSe-ygMv49iTyMq0
```

**Nama peran yang dibuat oleh CloudFormation dengan aspek**

```
Outputs:
ExampleStack1WithAspects.Function1RoleName = dev-unicorn-Function1LambdaFunctionServiceRole783660DC
ExampleStack1WithAspects.Function2RoleName = dev-unicorn-Function2LambdaFunctionServiceRole2C391181
...

Outputs:
ExampleStack2WithAspects.Function3RoleName = dev-unicorn-Function3LambdaFunctionServiceRole4CAA721C
```