AWS Control Tower Account Factory for Terraform(AFT) 배포
이 섹션은 기존 환경에서 Account Factory for Terraform(AFT)을 설정하려는 AWS Control Tower 환경의 관리자를 위한 것입니다. 여기에서는 새로운 전용 AFT 관리 계정을 사용하여 Account Factory for Terraform(AFT) 환경을 설정하는 방법을 설명합니다.
참고
Terraform 모듈은 AFT를 배포합니다. 이 모듈은 GitHub의 AFT 리포지토리
AFT 리포지토리를 복제하는 대신 GitHub의 AFT 모듈을 참조하는 것이 좋습니다. 이렇게 하면 사용 가능한 대로 모듈에 대한 업데이트를 제어하고 사용할 수 있습니다.
AWS Control Tower Account Factory for Terraform(AFT) 기능의 최신 릴리스에 대한 자세한 내용은 이 GitHub 리포지토리릴리스 파일
배포 사전 조건
AFT 환경을 구성하고 시작하기 전에 다음이 있어야 합니다.
-
AWS Control Tower 랜딩 존. 자세한 내용은 AWS Control Tower 랜딩 존 계획을 참조하세요.
-
AWS Control Tower 랜딩 존의 홈 리전. 자세한 내용은 AWS 리전이 AWS Control Tower에서 작동하는 방식을 참조하세요.
-
Terraform 버전 및 배포. 자세한 내용은 Terraform 및 AFT 버전을 참조하세요.
-
코드 및 기타 파일의 변경 사항을 추적하고 관리하기 위한 VCS 공급자. 기본적으로 AFT는 AWS CodeCommit를 사용합니다. 자세한 내용은 AWS CodeCommit 사용 설명서의 AWS CodeCommit이란 무엇입니까? 섹션을 참조하십시오.
AFT를 처음 배포하고 기존 CodeCommit 리포지토리가 없는 경우 GitHub 또는 BitBucket과 같은 외부 VCS 공급자를 선택해야 합니다. 자세한 내용은 AFT에서 소스 코드의 버전 관리를 위한 대안을 참조하세요.
-
AFT를 설치하는 Terraform 모듈을 실행할 수 있는 런타임 환경.
-
AFT 기능 옵션. 자세한 내용은 기능 옵션 활성화를 참조하세요.
AWS Control Tower Account Factory for Terraform 구성 및 시작
다음 단계는 사용자가 Terraform 워크플로를 잘 알고 있다고 가정합니다. 또한 AWS Web Workshop Studio 웹 사이트의 Introduction to AFT
1단계: AWS Control Tower 랜딩 존 시작
AWS Control Tower 시작하기
참고
AdministratorAccess 자격 증명이 있는 AWS Control Tower 관리 계정에 대한 역할을 생성해야 합니다. 자세한 내용은 다음 자료를 참조하세요.
-
AWS Identity and Access Management 사용 설명서의 IAM ID(사용자, 사용자 그룹 및 역할)
-
AWS 관리형 정책 참조 가이드의 AdministratorAccess
2단계: AFT에 대한 새 조직 단위 생성(권장)
AWS Organizations에서 별도의 OU를 만드는 것이 좋습니다. 여기에서 AFT 관리 계정을 배포합니다. AWS Control Tower 관리 계정으로 새 OU를 생성합니다. 자세한 내용은 새 OU 생성을 참조하세요.
3단계: AFT 관리 계정 프로비저닝
AFT를 사용하려면 AFT 관리 작업 전용 AWS 계정을 프로비저닝해야 합니다. AWS Control Tower 랜딩 존과 연결된 AWS Control Tower 관리 계정은 AFT 관리 계정을 제공합니다. 자세한 내용은 AWS Service Catalog Account Factory로 계정 프로비저닝을 참조하세요.
참고
AFT용 OU를 별도로 생성한 경우 AFT 관리 계정을 생성할 때 이 OU를 선택해야 합니다.
AFT 관리 계정을 완전히 프로비저닝하는 데 최대 30분이 걸릴 수 있습니다.
4단계: Terraform 환경을 배포할 수 있는지 확인
이 단계는 사용자가 Terraform에 대한 경험이 있고 Terraform을 실행하기 위한 절차가 마련되어 있다고 가정합니다. 자세한 내용은 HashiCorp 개발자 웹 사이트에서 Command: init
참고
AFT는 Terraform 버전 1.6.0
이상을 지원합니다.
5단계: Account Factory for Terraform 모듈을 직접 호출하여 AFT 배포
AdministratorAccess 자격 증명이 있는 AWS Control Tower 관리 계정에 대해 생성한 역할로 AFT 모듈을 직접 호출합니다. AWS Control Tower는 AWS Control Tower Account Factory 요청을 오케스트레이션하는 데 필요한 모든 인프라를 설정하는 AWS Control Tower 관리 계정을 통해 Terraform 모듈을 프로비저닝합니다.
GitHub의 AFT 리포지토리
AFT 모듈에는 AWS Control Tower가 중앙 AFT 관리 계정의 가상 프라이빗 클라우드(VPC) 내에서 계정 리소스를 프로비저닝할지 여부를 지정하는 aft_enable_vpc
파라미터가 포함되어 있습니다. 기본적으로 이 파라미터는 true
로 설정됩니다. 이 파라미터를 false
로 설정하는 경우 AWS Control Tower는 VPC 및 NAT 게이트웨이 또는 VPC 엔드포인트와 같은 프라이빗 네트워킹 리소스를 사용하지 않고 AFT를 배포합니다. aft_enable_vpc
를 비활성화하면 일부 사용 패턴에 대한 AFT 운영 비용을 줄이는 데 도움이 될 수 있습니다.
참고
aft_enable_vpc
파라미터를 다시 활성화(값을 false
에서 true
로 전환)하려면 terraform apply
명령을 연속으로 두 번 실행해야 할 수 있습니다.
환경에 Terraform 관리를 위해 설정된 파이프라인이 있는 경우 AFT 모듈을 기존 워크플로에 통합할 수 있습니다. 그렇지 않으면 필요한 자격 증명으로 인증된 모든 환경에서 AFT 모듈을 실행합니다.
제한 시간을 초과하면 배포가 실패합니다. AWS Security Token Service(STS) 자격 증명을 사용하여 전체 배포에 충분한 제한 시간이 있는지 확인하는 것이 좋습니다. AWS STS 자격 증명의 최소 제한 시간은 60분입니다. 자세한 내용은 AWS Identity and Access Management 사용 설명서의 IAM의 임시 보안 자격 증명을 참조하세요.
참고
AFT가 Terraform 모듈을 통해 배포를 완료할 때까지 최대 30분까지 기다릴 수 있습니다.
6단계: Terraform 상태 파일 관리
AFT를 배포할 때 Terraform 상태 파일이 생성됩니다. 이 아티팩트는 Terraform이 생성한 리소스의 상태를 설명합니다. AFT 버전을 업데이트하려는 경우 Terraform 상태 파일을 미리 설치하거나 Amazon S3 및 DynamoDB를 사용하여 Terraform 백엔드를 설정해야 합니다. AFT 모듈은 백엔드 Terraform 상태를 관리하지 않습니다.
참고
Terraform 상태 파일을 보호할 책임은 사용자에게 있습니다. 일부 입력 변수에는 프라이빗 ssh
키 또는 Terraform 토큰과 같은 민감한 값이 포함될 수 있습니다. 배포 방법에 따라 이러한 값은 Terraform 상태 파일에서 일반 텍스트로 볼 수 있습니다. 자세한 내용은 HashiCorp 웹 사이트에서 Sensitive data in State