초집중.
  • Home
  • About
Sign in Subscribe
By ByeongJu Choi in controltower — 16 Mar 2025

Control Tower를 활용하여 프로그래밍 방식으로 AWS Account 빠르게 생성하기

Control Tower를 사용하여 여러 계정을 빠르게 생성하는 방법을 확인합니다.

Control Tower를 활용하여 프로그래밍 방식으로 AWS Account 빠르게 생성하기
Photo by Deniz Fuchidzhiev / Unsplash

개요

많은 AWS 계정들이 필요하게 되어 계정 생성을 자동화하는 방안을 고민하였습니다.

Service Catalog의 Account Factory를 활용하여 Terraform, CloudFormation으로 Git 업로드시 자동화하는 방법도 있었으나 초기 설정하는 과정이 까다롭고 추가적인 비용이 발생하여 최대한 간단하게 실행할 수 있는 방안을 작성하였습니다.

  • https://tech.cloud.nongshim.co.kr/blog/aws/2346/
  • AFT Workshop
    • https://catalog.workshops.aws/control-tower/en-US/customization/aft/repositories
  • https://aws.amazon.com/ko/blogs/mt/how-to-automate-the-creation-of-multiple-accounts-in-aws-control-tower/

Process

Identity Center를 활용하기 때문에 SSO 인증이 필요할 수 있습니다.

aws sso login --profile [profile]
export $(aws configure export-credentials --profile [profile]

계정 초기화를 설정합니다

MasterAcct=$(aws sts get-caller-identity --query 'Account' --output text)
AdminArn=”arn:aws:iam::${MasterAcct}:role/service-role/AWSControlTowerStackSetRole”

Service Catalog를 통해 portfolio 정보 가져옵니다.

pa_id=$(aws servicecatalog describe-product --id $prod_id --region ap-northeast-2 --query "ProvisioningArtifacts[-1].Id" --output text)
prod_id=$(aws servicecatalog search-products --filters FullTextSearch='AWS Control Tower Account Factory' --region ap-northeast-2 --query "ProductViewSummaries[*].ProductId" --output text)

사용할 카탈로그 및 param에서 데이터를 추출합니다.

export CatalogName=$(jq -r '.[4].Value' param.json)
export EmailId=$(jq -r '.[0].Value' param.json)

Service Catalog를 활용하여 provision-product를 수행합니다.

aws servicecatalog provision-product --product-id $prod_id --provisioning-artifact-id $pa_id --provisioned-product-name $CatalogName --provisioning-parameters file://param.json --region ap-northeast-2

Service Catalog를 통해 생성된 것을 확인할 수 있습니다.

Notion Image

주의점

계정 생성 요청은 병렬적으로 최대 5개까지만 수행될 수 있으며 삭제에는 최대 30분이 소요될 수 있습니다.

Notion Image
  • https://docs.aws.amazon.com/ko_kr/controltower/latest/userguide/account-factory.html
  • https://docs.aws.amazon.com/ko_kr/controltower/latest/userguide/provision-as-end-user.html

Reference

  • https://medium.com/globant/a-programmatic-way-to-create-an-account-in-aws-control-tower-784486b8cd4a
Previous

AWS App2Container를 사용하여 손쉽게 ECS로 전환하는 방법

Next

OpenSearch Access Control

You might also like...

Amazon S3로 DB 스냅샷 데이터 내보내기
RDS

Amazon S3로 DB 스냅샷 데이터 내보내기

RDS 스냅샷을 S3에 저장하는 옵션은 분석용으로 활용 가능합니다. 이를 확인하기위해 테스트를 진행하였습니다.
Read More
RDS Cross-Region Replication & Failover 테스트
AWS

RDS Cross-Region Replication & Failover 테스트

AWS RDS와 Aurora Global Database를 활용한 리전 간 재해 복구 솔루션 테스트입니다. 읽기 전용 복제본 기반 Failover와 글로벌 데이터베이스 클러스터 구성을 확인합니다.
Read More
ArgoCD Rollout Blue/Green, Canary
DevOps

ArgoCD Rollout Blue/Green, Canary

Blue/Green 및 Canary 배포 전략으로 무중단 배포, 롤백을 통해 서비스 안정성을 높일 수 있습니다.
Read More
Kustomize 개념과 helm 비교
Kubernetes

Kustomize 개념과 helm 비교

Kustomize는 YAML 리소스의 재사용과 효율적인 환경별 관리를 가능하게 합니다.
Read More
초집중. © 2025
  • Sign up
Powered by Ghost