기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CDK 측면 및 이스케이프 해치를 사용하여 기본 역할 이름 사용자 지정
작성자: SANDEEP SINGH(AWS) 및 James Jacob(AWS)
코드 리포지토리: cdk-aspects-override-example | 환경: 프로덕션 | 기술: 인프라, DevOps, 관리 및 거버넌스 |
AWS 서비스: AWS CDK, AWS CloudFormationWord, AWS Lambda |
요약
이 패턴은 AWS Cloud Development Kit (AWS CDK) 구성에서 생성한 역할의 기본 이름을 사용자 지정하는 방법을 보여줍니다. 조직에 이름 지정 규칙에 따른 특정 제약 조건이 있는 경우 역할 이름을 사용자 지정해야 하는 경우가 많습니다. 예를 들어 조직에서 역할 이름에 특정 접두사가 필요한 AWS Identity and Access Management (IAM) 권한 경계 또는 서비스 제어 정책(SCPs)을 설정할 수 있습니다. 이러한 경우 AWS CDK 구성에서 생성된 기본 역할 이름은 이러한 규칙을 충족하지 못할 수 있으며 변경해야 할 수 있습니다. 이 패턴은의 이스케이프 해치 및 측면을 사용하여 이러한 요구 사항을 해결합니다 AWS CDK. 이스케이프 해치를 사용하여 사용자 지정 역할 이름 및 측면을 정의하고 사용자 지정 이름을 모든 역할에 적용하여 조직의 정책 및 제약 조건을 준수할 수 있습니다.
사전 조건 및 제한 사항
사전 조건
활성 AWS 계정
AWS CDK 설명서에 지정된 사전 조건
제한 사항
측면은 리소스 유형을 기반으로 리소스를 필터링하므로 모든 역할은 동일한 접두사를 공유합니다. 역할마다 역할 접두사가 다른 경우 다른 속성을 기반으로 추가 필터링이 필요합니다. 예를 들어 AWS Lambda 함수와 연결된 역할에 다른 접두사를 할당하려면 특정 역할 속성 또는 태그를 기준으로 필터링하고 Lambda 관련 역할에는 하나의 접두사를 적용하고 다른 역할에는 다른 접두사를 적용할 수 있습니다.
IAM 역할 이름의 최대 길이는 64자이므로이 제한을 충족하려면 수정된 역할 이름을 잘라내야 합니다.
일부는 전혀 사용할 수 AWS 서비스 없습니다 AWS 리전. 리전 가용성은 AWS 서비스 리전별
섹션을 참조하세요. 특정 엔드포인트는 서비스 엔드포인트 및 할당량 페이지를 참조하고 서비스의 링크를 선택합니다.
아키텍처
대상 기술 스택
AWS CDK
AWS CloudFormation
대상 아키텍처·
AWS CDK 앱은 AWS 리소스를 관리하기 위해 합성 및 배포되는 하나 이상의 AWS CloudFormation 스택으로 구성됩니다.
계층 AWS CDK 2(L2) 구성에서 노출되지 않은 관리형 리소스의 속성을 수정하려면 이스케이프 해치를 사용하여 underlying CloudFormation 속성(이 경우 역할 이름)을 재정의하고, AWS CDK 스택 합성 프로세스 중에 AWS CDK 앱의 모든 리소스에 역할을 적용하는 측면을 사용합니다.
도구
AWS 서비스
AWS Cloud Development Kit (AWS CDK)는 코드로 AWS 클라우드 인프라를 정의하고 프로비저닝하는 데 도움이 되는 소프트웨어 개발 프레임워크입니다.
AWS CDK Command Line Interface(AWS CDK CLI)(키 AWS CDK 트라고도 함)는 AWS CDK 앱과 상호 작용하는 데 도움이 되는 명령줄 클라우드 개발 키트입니다. CLI
cdk
명령은 AWS CDK 앱과 상호 작용하기 위한 기본 도구입니다. 앱을 실행하고, 정의한 애플리케이션 모델을 조사하고,에서 생성한 CloudFormation 템플릿을 생성하고 배포합니다 AWS CDK.AWS CloudFormation는 AWS 리소스를 설정하고, 빠르고 일관되게 프로비저닝하고, AWS 계정 및 리전의 수명 주기 동안 리소스를 관리할 수 있도록 지원합니다.
코드 리포지토리
이 패턴의 소스 코드와 템플릿은 GitHub CDK WordAspects Override
모범 사례
AWS AWS CDK in TypeScript 를 사용하여 IaC 프로젝트를 생성하는 모범 사례를 참조하세요.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
AWS CDK CLI를 설치합니다. | AWS CDK CLI를 전역적으로 설치하려면 명령을 실행합니다.
| AWS DevOps |
버전을 확인합니다. | 명령 실행:
AWS CDK CLI 버전 2를 사용하고 있는지 확인합니다. | AWS DevOps |
AWS CDK 환경을 부트스트랩합니다. | AWS CloudFormation 템플릿을 배포하기 전에 사용하려는 계정과 AWS 리전 를 준비합니다. 명령 실행:
자세한 내용은 AWS 설명서의 AWS CDK 부트스트랩을 참조하세요. | AWS DevOps |
작업 | 설명 | 필요한 기술 |
---|---|---|
프로젝트를 설정합니다. |
| AWS DevOps |
에서 할당한 기본 역할 이름으로 스택을 배포합니다 AWS CDK. | Lambda 함수와 관련 역할이 포함된 two CloudFormation 스택(
코드는 역할 속성을 명시적으로 전달하지 않으므로 역할 이름은에서 구성됩니다 AWS CDK. 예제 출력은 추가 정보 섹션을 참조하세요. | AWS DevOps |
측면이 있는 스택을 배포합니다. | 이 단계에서는 AWS CDK 프로젝트에 배포된 모든 IAM 역할에 접두사를 추가하여 역할 이름 규칙을 적용하는 측면을 적용합니다. 측면은
예제 출력은 추가 정보 섹션을 참조하세요. | AWS DevOps |
작업 | 설명 | 필요한 기술 |
---|---|---|
AWS CloudFormation 스택을 삭제합니다. | 이 패턴 사용을 완료한 후 다음 명령을 실행하여 추가 비용이 발생하지 않도록 리소스를 정리합니다.
| AWS DevOps |
문제 해결
문제 | Solution |
---|---|
를 사용하는 데 문제가 발생합니다 AWS CDK. | AWS CDK 설명서의 일반적인 AWS CDK 문제 해결을 참조하세요. |
관련 리소스
추가 정보
측면 AWS CloudFormation 없이에서 생성한 역할 이름
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
측면 AWS CloudFormation 이 있는에서 생성한 역할 이름
Outputs: ExampleStack1WithAspects.Function1RoleName = dev-unicorn-Function1LambdaFunctionServiceRole783660DC ExampleStack1WithAspects.Function2RoleName = dev-unicorn-Function2LambdaFunctionServiceRole2C391181 ... Outputs: ExampleStack2WithAspects.Function3RoleName = dev-unicorn-Function3LambdaFunctionServiceRole4CAA721C