기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Enterprise Blueprint Factory 설정
이 섹션에서는 AWS 환경에 Enterprise Blueprint Factory를 설정하는 데 도움이 됩니다. 여기에는 Enterprise Blueprint Factory에 필요한 리포지토리 및 AWS 리소스를 설정하는 방법에 대한 자세한 지침이 포함되어 있습니다.
사전 조건
다음은 AWS 환경에서 Enterprise Blueprint Factory를 설정하기 위한 사전 조건입니다.
-
AWS 계정다음은 다음과 같습니다.
-
Enterprise Blueprint Factory를 관리하고 제품을 출시하는 데 사용되는 계정
-
릴리스된 제품을 사용하는 하나 이상의 계정
-
-
모든 계정은 다음과 같습니다.
-
에서 조직으로 관리됨 AWS Organizations
-
동일한 조직 단위(OU)에 위치
-
-
다음 리소스를 생성하는 AWS CloudFormation 스택을 배포할 수 AWS 있는 권한:
-
Amazon CloudWatch Logs 로그 그룹
-
AWS CodePipeline 파이프라인
-
AWS CodeBuild 프로젝트
-
Amazon EventBridge 이벤트 버스 정책 및 규칙
-
AWS Identity and Access Management (IAM) 역할 및 정책
-
AWS Key Management Service (AWS KMS) 키 및 키 정책
-
AWS Service Catalog 포트폴리오, 제품 및 프로비저닝된 제품
-
Amazon Simple Notification Service(Amazon SNS) 주제, 주제 정책 및 구독
-
Amazon Simple Storage Service(Amazon S3) 버킷
-
AWS Systems Manager 파라미터 스토어 파라미터
이러한 권한 설정에 대한 자세한 내용은 CloudFormation 설명서 및 최소 권한에 대한 정책 구현을 참조하세요 AWS CloudFormation.
-
-
GitHub 계정
모범 사례
AWS 환경에 Enterprise Blueprint Factory를 설정할 때 다음 모범 사례를 따르는 것이 좋습니다.
리포지토리 생성
이 섹션에서는 Enterprise Blueprint Factory의 구성 리포지토리와 제품 리포지토리를 설정하는 데 도움이 됩니다. 리포지토리를 설정하려면 GitHub에서 제공된 리포지토리를 포크
GitHub 리포지토리를 포크하려면
-
GitHub
에 로그인합니다. -
구성 리포
지토리 GitHub 리포지토리로 이동합니다. -
포크를 선택합니다.
-
새 포크 생성 페이지의 리포지토리 이름 상자에를 입력합니다
ServiceCatalog-ConfigRepo. -
(선택 사항) 설명을 입력합니다.
-
기본 브랜치만 복사를 선택합니다.
-
포크 생성을 선택합니다.
-
이 단계를 반복하여 코드 리포
지토리 GitHub 리포지토리를 포크합니다. 이 ServiceCatalog-CodeRepo리포지토리의 이름을 입력합니다. -
이 단계를 반복하여 제품 리포
지토리 GitHub 리포지토리를 포크합니다. 이 ServiceCatalog-BlueprintProductRepo리포지토리의 이름을 입력합니다.
CodeConnections 연결을 생성하려면
-
AWS CLI에서 다음 명령을 입력하여 GitHub에 대한 CodeConnections 연결을 생성합니다.
aws codeconnections create-connection --provider-type GitHub --connection-name <MyConnection> -
AWS 개발자 도구 콘솔을 사용하여 연결을 완료합니다. 자세한 내용은 보류 중인 연결 업데이트를 참조하세요.
포크된 리포지토리를 복제하려면
-
다음 명령을 입력하여 GitHub 리포지토리를 로컬 워크스테이션에 복제합니다.
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
Enterprise Blueprint Factory 설정
이 섹션의 지침에서는 대상 계정에서 Enterprise Blueprint Factory를 설정하는 방법을 설명합니다. GitHub에서 복제한 제품 리포지토리에는 두 개의 샘플 CloudFormation 템플릿인 BP-S3 및가 포함되어 있습니다BP-SNS. 이 지침에 따라이 두 샘플 블루프린트를 Service Catalog에 제품으로 배포합니다.
역할을 설정하려면
-
블루프린트 개발자의 계정에서 다음 신뢰 정책을 생성한
sc-enduserrole-trust-policy.json다음 다른 이름으로 저장합니다.{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ServiceCatalogEndUserRole" }, "Action": "sts:AssumeRole" } } -
다음 명령을 입력하여
ServiceCatalogEndUserRoleIAM 역할을 생성합니다.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참고
개발자는
ServiceCatalogEndUserRole역할을 사용하여 Service Catalog 제품을 프로비저닝합니다. 이 역할은 블루프린트에 정의된 리소스를 생성하는 데 권한이 필요하지 않습니다. 이는 최소 권한 및 업무 분리의 모범 사례를 따릅니다. -
다음 신뢰 정책을 생성한 다음 로 저장합니다
sc-launchconstraintrole-trust-policy.json.{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" } } -
다음 명령을 입력하여
ServiceCataloglogLaunchConstraintRoleIAM 역할을 생성합니다.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 -
ServiceCataloglogLaunchConstraintRoleIAM 역할에 다음 정책을 추가합니다. Service Catalog 설명서의 시작 역할 구성에 설명된 대로 제품 리소스에 필요한 다른 권한을 포함합니다.{ "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":"*", "Condition":{ "StringEquals":{ "s3:ExistingObjectTag/servicecatalog:provisioning":"true" } } ] }참고
Service Catalog는이 역할을 사용하여 CloudFormation 스택을 Service Catalog의 제품으로 배포합니다. 이 역할에 대한 신뢰 정책은 Service Catalog만 이를 수임할 수 있도록 합니다. 다른 사용자 또는 서비스는이 역할을 수임할 수 없습니다. 이는 업무 분리 모범 사례를 따릅니다.
-
다음 신뢰 정책을 생성한 다음
sc-codebuild-trust-policy.json다른 이름으로 저장합니다.{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole" } } -
다음 명령을 입력하여
codebuild-servicecatalog-admin-roleIAM 역할을 생성합니다.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참고
구성 파이프라인의 CodeBuild 작업은이 역할을 사용합니다.
Amazon S3 버킷을 설정하려면
-
CodePipeline 아티팩트를 저장하는 데 사용되는 Amazon Simple Storage Service(Amazon S3) 버킷을 생성하려면 Amazon S3 설명서의 버킷 생성의 지침을 따르세요. Amazon S3의 보안 모범 사례를 따르세요.
AWS Systems Manager 파라미터를 설정하려면
-
다음 표에서 Systems Manager 파라미터를 생성하려면 Systems Manager에서 파라미터 스토어 파라미터 생성의 지침을 따릅니다. 이러한 파라미터는 구성 파이프라인을 배포하는 CloudFormation 템플릿에 사용됩니다.
파라미터 이름 Type 설명 /blueprints/resources/vpc_idString 대상 Virtual Private Cloud(VPC)의 ID를 저장하는 파라미터입니다. /blueprints/resources/subnetsStringList 대상 서브넷의 IDs를 저장하는 파라미터입니다. /blueprints/resources/securitygroupsStringList 대상 보안 그룹의 IDs를 저장하는 파라미터입니다. /blueprints/resources/artifacts-bucket-nameString CodePipeline 아티팩트에 사용되는 Amazon S3 버킷 이름을 저장하는 파라미터입니다. /blueprints/resources/BlueprintRepoString Enterprise Blueprint Factory 블루프린트가 저장되는 GitHub 리포지토리를 저장하는 파라미터입니다. 기본값은 <user>/aws-enterprise-blueprint-factory-blueprint-repo입니다./blueprints/resources/CodeRepoString Enterprise Blueprint Factory 구성 파이프라인 코드와 Bootstrapping-Admin-Product코드가 저장되는 GitHub 리포지토리를 저장하는 파라미터입니다. 기본값은<user>/aws-enterprise-blueprint-factory-code-repo입니다./blueprints/resources/ConfigRepoString Enterprise Blueprint Factory 구성 파일이 저장되는 GitHub 리포지토리를 저장하는 파라미터입니다. 기본값은 <user>/aws-enterprise-blueprint-factory-config-repo입니다.
CloudFormation 템플릿을 업데이트하려면
-
코드 리포지토리(
ServiceCatalog-CodeRepo)에서 ServiceCatalog-Pipeline.yml 파일을 엽니다. -
이 파일에서 다음 파라미터의 기본값을 편집합니다.
-
ConfigRepositoryName는 Enterprise Blueprint Factory 구성 파일이 저장되는 GitHub 리포지토리를 저장하는 Systems Manager 파라미터입니다. 기본값은/blueprints/resources/ConfigRepo입니다. -
CodeRepositoryName는 Enterprise Blueprint Factory 구성 파이프라인 코드와Bootstrapping-Admin-Product코드가 저장되는 GitHub 리포지토리를 저장하는 Systems Manager 파라미터입니다. 기본값은/blueprints/resources/CodeRepo입니다. -
BlueprintRepositoryName는 Enterprise Blueprint Factory 블루프린트가 저장되는 GitHub 리포지토리를 저장하는 Systems Manager 파라미터입니다. 기본값은/blueprints/resources/BlueprintRepo입니다. -
BranchName는 구성 파일이 저장되는 구성 리포지토리의 브랜치입니다. 기본값은main입니다. -
VPCID는 대상 VPC의 ID를 저장하는 Systems Manager 파라미터입니다. 기본값은/blueprints/resources/vpc_id입니다. -
Subnets는 대상 서브넷의 IDs를 저장하는 Systems Manager 파라미터입니다. 기본값은/blueprints/resources/subnets입니다. -
SecurityGroupIds는 대상 보안 그룹의 IDs를 저장하는 Systems Manager 파라미터입니다. 기본값은/blueprints/resources/securitygroups입니다. -
IamRoleName는 CodeBuild 작업이 사용하는 IAM 역할의 이름입니다. 기본값은 입니다codebuild-servicecatalog-admin-role. -
EnvironmentType는 Enterprise Blueprint Factory를 배포하는 환경입니다. 기본값은DEV입니다. -
ArtifactBucket는 CodePipeline이 아티팩트를 저장하는 Amazon S3 버킷을 저장하는 Systems Manager 파라미터입니다. 기본값은 입니다/blueprints/resources/artifacts-bucket-name. -
CodeConnectionArn는 GitHub에 대한 CodeConnections 연결의 Amazon 리소스 이름(ARN)입니다.
-
-
ServiceCatalog-Pipeline.yml 파일을 저장하고 닫습니다.
-
다음 명령을 입력하여 변경 사항을 코드 리포지토리에 병합합니다.
cd ServiceCatalog-CodeRepo git add ServiceCatalog-Pipeline.yml git commit -m "<description of change>" git push origin main -
구성 리포지토리(
ServiceCatalog-ConfigRepo)에서 bp_config.yml 파일을 엽니다. -
조직에 필요한 대로 포트폴리오 섹션의 값을 업데이트합니다. 예를 들어
portfolio_access_roles및share_to_ou속성을 업데이트합니다. 자세한 내용은이 가이드의 구성 파일을 참조하세요. -
bp_config.yml 파일을 저장하고 닫습니다.
-
다음 명령을 입력하여 변경 사항을 코드 리포지토리에 병합합니다.
cd ServiceCatalog-ConfigRepo git add bp_config.yml git commit -m "<description of change>" git push origin main
CloudFormation 스택을 배포하려면
-
Enterprise Blueprint Factory 관리 계정에 로그인합니다.
-
관리 권한이 있는 IAM 역할로 전환합니다.
-
CloudFormation 콘솔
을 엽니다. -
화면 상단의 탐색 모음에서 대상을 선택합니다 AWS 리전.
-
스택 페이지에서 오른쪽 상단의 스택 생성을 선택하고 새 리소스 사용(표준)을 선택합니다.
-
Prepare template(템플릿 준비)에서 Template is ready(템플릿 준비가 완료되었습니다)를 선택합니다.
-
템플릿 지정에서 템플릿 파일 업로드를 선택합니다.
-
파일 선택을 선택하고
ServiceCatalog-CodeRepo폴더로 이동한 다음 ServiceCatalog-Pipeline.yml을 선택합니다. -
계속하여 템플릿을 검증하려면 다음을 선택합니다.
-
스택 이름에 스택의 이름을 입력합니다.
-
파라미터 섹션에서 기본값을 변경하지 마십시오.
-
다음을 선택합니다.
-
스택 옵션 구성 페이지에서 기본값을 변경하지 말고 다음을 선택합니다.
-
검토 및 생성 페이지에서 템플릿 및 스택 세부 정보를 확인한 다음 제출을 선택합니다.
-
스택 배포 진행 상황을 모니터링합니다. 자세한 내용은 CloudFormation 설명서를 참조하세요.
-
상태가 로 변경될 때까지 기다립니다
CREATE_COMPLETE.
배포를 검증하려면
-
AWS Service Catalog 콘솔
을 엽니다. -
탐색 창에서 제품을 선택합니다.
-
제품 목록에서 ServiceCatalog-Pipeline을 사용할 수 있는지 확인합니다.
-
AWS CodePipeline 콘솔
을 엽니다. -
이름에서 구성 파이프라인을 선택합니다. 기본적으로 파이프라인 이름은 입니다
ServiceCatalog-Pipeline. -
내역 보기를 선택합니다.
-
파이프라인 및 단계 실행의 상태를 봅니다. 상태에 대한 자세한 내용은 CodePipeline 설명서의 실행 상태 보기를 참조하세요.
-
구성 파이프라인 상태가가 될 때까지 기다립니다
Succeeded. -
Service Catalog 콘솔
을 엽니다. -
탐색 창에서 제품을 선택합니다.
-
BP-S3-Product 및 BP-SNS-Product 제품을 사용할 수 있는지 확인합니다. 이는 샘플 블루프린트에 대한 제품 릴리스 파이프라인이 성공적으로 완료되었음을 나타냅니다.
-
Enterprise Blueprint Factory를 설정할 때 배포한 샘플 블루프린트를 삭제하려면 블루프린트 삭제의 지침을 따르세요.
Enterprise Blueprint Factory 삭제
Enterprise Blueprint Factory를 사용하지 않는 경우 이를 삭제하여 AWS 리소스와 관련된 비용 발생을 중지할 수 있습니다.
리소스를 삭제하려면
-
다음 명령을 입력하여 Enterprise Blueprint Factory 관리 계정에 배포된 IAM 역할을 삭제합니다.
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 -
Enterprise Blueprint Factory의 CloudFormation 스택을 삭제합니다. 지침은 CloudFormation 콘솔에서 스택 삭제 또는 에서 스택 삭제를 참조하세요 AWS CLI.
-
CodePipeline 아티팩트를 저장하는 데 사용되는 Amazon S3 버킷을 삭제합니다. 지침은 Amazon S3 설명서의 버킷 삭제를 참조하세요.
-
파라미터 스토어에서 다음 Systems Manager 파라미터를 삭제합니다.
-
/blueprints/resources/vpc_id -
/blueprints/resources/subnets -
/blueprints/resources/securitygroups -
/blueprints/resources/artifacts-bucket-name -
/blueprints/resources/BlueprintRepo -
/blueprints/resources/CodeRepo -
/blueprints/resources/ConfigRepo
지침은 Systems Manager 설명서의 Parameter Store에서 파라미터 삭제를 참조하세요.
-