Sesuaikan nama peran default dengan menggunakan AWS CDK aspek dan lubang keluar - AWS Prescriptive Guidance

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

SANDEEP SINGH dan James Jacob, Amazon Web Services

Ringkasan

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 (IAM) atau kebijakan kontrol layanan (SCPs) 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 dan aspek 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

Prasyarat

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 Wilayah AWS. Untuk ketersediaan Wilayah, lihat Layanan AWS berdasarkan Wilayah. Untuk titik akhir tertentu, lihat halaman titik akhir dan kuota Layanan, dan pilih tautan untuk layanan.

Arsitektur

Tumpukan teknologi target

  • AWS CDK

  • AWS CloudFormation

Arsitektur target

Arsitektur untuk menggunakan lubang keluar dan aspek untuk menyesuaikan nama peran yang ditetapkan AWS CDK.
  • AWS CDK Aplikasi terdiri dari satu atau lebih AWS 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

Layanan AWS

  • AWS Cloud Development Kit (AWS CDK)adalah kerangka pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan AWS Cloud infrastruktur dalam kode.

  • AWS CDK Command Line Interface (AWS CDK CLI) (juga disebut sebagai AWS CDK Toolkit) adalah kit pengembangan cloud baris perintah yang membantu Anda berinteraksi dengan aplikasi Anda. AWS CDK cdkPerintah 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

  • AWS CloudFormationmembantu 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.

Praktik terbaik

Lihat Praktik terbaik untuk menggunakan AWS CDK in TypeScript untuk membuat proyek IAc di situs web AWS Prescriptive Guidance.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Instal AWS CDK CLI.

Untuk menginstal AWS CDK CLI secara global, jalankan perintah:

npm install -g aws-cdk
AWS DevOps

Verifikasi versinya.

Jalankan perintah :

cdk --version

Konfirmasikan bahwa Anda menggunakan AWS CDK CLI versi 2.

AWS DevOps

Bootstrap AWS CDK lingkungan.

Sebelum Anda menyebarkan AWS CloudFormation template, siapkan akun dan Wilayah AWS yang ingin Anda gunakan. Jalankan perintah :

cdk bootstrap <account>/<Region>

Untuk informasi selengkapnya, lihat AWS CDK bootstrap di dokumentasi. AWS

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Siapkan proyek.

  1. Kloning GitHub repositori untuk pola ini ke komputer lokal Anda:

    git clone https://github.com/aws-samples/cdk-aspects-override
  2. Arahkan ke direktori proyek di komputer lokal Anda.

  3. Instal dependensi proyek:

    npm ci
AWS DevOps

Terapkan tumpukan dengan nama peran default yang ditetapkan oleh. AWS CDK

Terapkan dua CloudFormation tumpukan (ExampleStack1danExampleStack2) yang berisi fungsi Lambda dan peran terkaitnya:

npm run deploy:ExampleAppWithoutAspects

Kode tidak secara eksplisit meneruskan properti peran, sehingga nama peran akan dibuat oleh. AWS CDK

Misalnya output, lihat bagian Informasi tambahan.

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 adalahdev-unicorn.

  1. Edit file bin/app-with-aspects.ts

  2. Dalam file, perbarui variabel ROLE_NAME_PREFIX dengan awalandev-unicorn:

    const app = new cdk.App(); // Define a prefix for the role names const ROLE_NAME_PREFIX = 'dev-unicorn'; // Instantiate the RoleNamingConventionAspect with the desired prefix const roleNamingConventionAspect = new RoleNamingConventionAspect(ROLE_NAME_PREFIX);
  3. Terapkan AWS CDK aplikasi dengan aspek:

    npm run deploy:ExampleAppWithAspects

Misalnya output, lihat bagian Informasi tambahan.

AWS DevOps
TugasDeskripsiKeterampilan 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:

cdk destroy --all -f && cdk --app npx ts-node bin/app-with-aspects.ts' destroy --all -f
AWS DevOps

Pemecahan Masalah

IsuSolusi

Anda mengalami masalah menggunakan AWS CDK.

Lihat Memecahkan AWS CDK masalah umum dalam dokumentasi. AWS CDK

Sumber daya terkait

Informasi tambahan

Nama peran yang dibuat oleh AWS 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 AWS CloudFormation dengan aspek

Outputs: ExampleStack1WithAspects.Function1RoleName = dev-unicorn-Function1LambdaFunctionServiceRole783660DC ExampleStack1WithAspects.Function2RoleName = dev-unicorn-Function2LambdaFunctionServiceRole2C391181 ... Outputs: ExampleStack2WithAspects.Function3RoleName = dev-unicorn-Function3LambdaFunctionServiceRole4CAA721C