chon

CloudGoat 실습 환경 구축 본문

AWS/CloudGoat

CloudGoat 실습 환경 구축

chon29 2026. 3. 7. 16:19

 

CloudGoat 설계 단계부터 취약하게 만들어진 클라우드 배포 도구로, Terraform 기반의 코드형 인프라(IaC)를 활용하여 AWS 환경에 의도적으로 취약한 인프라를 생성합니다. 이를 통해 다양한 클라우드 보안 취약점과 실제 공격 시나리오를 직접 실습할 수 있는 환경을 제공합니다.


 

GitHub - RhinoSecurityLabs/cloudgoat: CloudGoat is Rhino Security Labs' "Vulnerable by Design" AWS deployment tool

CloudGoat is Rhino Security Labs' "Vulnerable by Design" AWS deployment tool - RhinoSecurityLabs/cloudgoat

github.com


 

테라폼은 코드를 통해 인프라를 생성하고 관리하는 코드형 인프라(IaC) 도구로, CloudGoat에서는 복잡한 AWS 취약점 환경을 자동으로 구축하고 실습 후 생성된 모든 리소스를 일괄 삭제하여 효율적으로 관리하기 위해 사용합니다.

 

wget -O - https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(grep -oP '(?<=UBUNTU_CODENAME=).*' /etc/os-release || lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

 

Terraform을 설치하는 방법에는 바이너리 파일을 직접 다운로드하여 압축을 푸는 방식도 있지만, 저는 관리의 편의성과 보안을 위해 HashiCorp 공식 APT 레포지토리를 등록하여 설치하는 방식을 선택했습니다.

 

terraform -version

위의 명령어를 한번에 붙여넣고 버전을 확인하는 명령어로 terraform이 잘 설치되었는지 확인했습니다.


CloudGoat은 AWS API를 통해 리소스를 생성하기 때문에 AWS CLI 설치와 자격 증명 설정이 필요합니다. 

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

해당 명령어로 cli를 설치하고 자격증명을 설정해주면 됩니다.

 

버전을 확인하여 설치가 잘 되었는지 확인했습니다. 이어서 자격 증명을 설정하도록 하겠습니다.

 

aws configure --profile cloudgoat

 

 

  • AWS Access Key ID: (내 액세스 키 입력)
  • AWS Secret Access Key: (내 비밀 키 입력)
  • Default region name: us-east-1
  • Default output format: json

 

cloudGoat에서 사용할 AWS 계정을 구분하기 위해 cloudgoat라는 이름의 프로필을 생성했습니다.


pipx install cloudgoat

 

cloudgoat config aws

CloudGoat에 사용할 AWS 프로필을 지정합니다.

 

git clone https://github.com/RhinoSecurityLabs/cloudgoat.git
cd cloudgoat
pip3 install -e . --break-system-packages

# 어디서든 실행 가능하도록 경로 등록
echo 'export PATH=$PATH:~/.local/bin' >> ~/.bashrc
source ~/.bashrc

소스코드를 다운로드하고 파이썬 환경에 설치한 뒤, AWS 계정과 연결해 보겠습니다.

 

화이트리스트 구성

echo "aws: {profile: cloudgoat}" > ~/.cloudgoat/config.yml
cloudgoat config whitelist --auto

앞에서 생성한 cloudgoat AWS 프로필을 CloudGoat에서 사용하도록 지정하고, 실습 환경에 접근할 수 있도록 현재 IP를 화이트리스트에 등록합니다. IP가 달라질 때마다 이 명령을 사용해야 합니다.

 

cloudgoat config aws list

연결된 AWS 설정을 확인합니다. 


cloudgoat list aws

모든 설정이 끝났다면, 이제 CloudGoat가 AWS 시나리오 목록을 제대로 불러오는지 확인해 볼 차례입니다.

 

시나리오 목록이 정상적으로 출력된다면 CloudGoat 실습 환경 구축이 완료된 것입니다.
다음 글에서는 실제 CloudGoat 시나리오를 실행하고 취약점을 분석하는 과정을 정리해 보겠습니다!