Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
terragoat — 의도적으로 취약하게 만든 Terraform 인프라로, AWS, Azure, GCP 전반의 클라우드 설정 오류 탐지 및 DevSecOps 실무를 학습하기 위한 것입니다. | Kitploit
도구/GitHubGitHub/bridgecrewio/terragoat
Cloud SecurityDevSecOpsMisconfigurationLearning & EducationLabs & Practice
GitHubbridgecrewio/terragoat

terragoat

의도적으로 취약하게 만든 Terraform 인프라로, AWS, Azure, GCP 전반의 클라우드 설정 오류 탐지 및 DevSecOps 실무를 학습하기 위한 것입니다.

저장소 보기
1.3k5.8k463년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

TerraGoat - 취약한 Terraform 인프라

Maintained by Bridgecrew.io Infrastructure Tests CIS Azure CIS GCP CIS AWS PCI Terraform Version slack-community

TerraGoat는 Bridgecrew의 "취약하도록 설계된" Terraform 저장소입니다. Terragoat

TerraGoat는 Bridgecrew의 "취약하도록 설계된" Terraform 저장소입니다. TerraGoat는 일반적인 구성 오류가 프로덕션 클라우드 환경에 어떻게 유입될 수 있는지 보여주는 학습 및 교육 프로젝트입니다.

목차

  • 소개
  • 시작하기
    • AWS
    • Azure
    • GCP
  • 기여하기
  • 지원

소개

TerraGoat는 DevSecOps가 지속 가능한 잘못된 구성 방지 전략을 설계하고 구현할 수 있도록 구축되었습니다. 이는 정책-코드 프레임워크(예: Bridgecrew 및 Checkov), 인라인 린터, pre-commit 훅 또는 기타 코드 스캐닝 방법을 테스트하는 데 사용할 수 있습니다.

TerraGoat는 클라우드 인프라에 대한 안전한 개발 모범 사례를 구현하는 연습을 위한 기본 교육 환경을 제공하는 기존 *Goat 프로젝트의 전통을 따릅니다.

중요 참고 사항

  • 도움을 받을 수 있는 곳: Bridgecrew Community Slack

진행하기 전에 다음 경고를 숙지하세요:

⚠️ TerraGoat는 사용자 계정에 의도적으로 취약한 AWS 리소스를 생성합니다. 프로덕션 환경이나 민감한 AWS 리소스와 함께 TerraGoat를 배포하지 마십시오.

요구 사항

  • Terraform 0.12
  • aws cli
  • azure cli

취약한 인프라가 프로덕션에 도달하는 것을 방지하려면: Bridgecrew 및 checkov, 인프라 코드를 위한 오픈 소스 정적 분석 도구를 참조하세요.

시작하기

AWS 설정

설치 (AWS)

TF_VAR_environment 매개변수를 사용하여 단일 AWS 계정에 여러 TerraGoat 스택을 배포할 수 있습니다.

Terraform 상태를 유지하기 위한 S3 버킷 백엔드 생성```bash

export TERRAGOAT_STATE_BUCKET="mydevsecops-bucket" export TF_VAR_company_name=acme export TF_VAR_environment=mydevsecops export TF_VAR_region="us-west-2"

aws s3api create-bucket --bucket $TERRAGOAT_STATE_BUCKET
--region $TF_VAR_region --create-bucket-configuration LocationConstraint=$TF_VAR_region

Enable versioning

aws s3api put-bucket-versioning --bucket $TERRAGOAT_STATE_BUCKET --versioning-configuration Status=Enabled

Enable encryption

aws s3api put-bucket-encryption --bucket $TERRAGOAT_STATE_BUCKET --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms" } } ] }'

#### TerraGoat (AWS) 적용```bash
cd terraform/aws/
terraform init \
-backend-config="bucket=$TERRAGOAT_STATE_BUCKET" \
-backend-config="key=$TF_VAR_company_name-$TF_VAR_environment.tfstate" \
-backend-config="region=$TF_VAR_region"

terraform apply

TerraGoat 제거 (AWS)```bash

terraform destroy

#### 여러 TerraGoat AWS 스택 생성하기```bash
cd terraform/aws/
export TERRAGOAT_ENV=$TF_VAR_environment
export TERRAGOAT_STACKS_NUM=5
for i in $(seq 1 $TERRAGOAT_STACKS_NUM)
do
    export TF_VAR_environment=$TERRAGOAT_ENV$i
    terraform init \
    -backend-config="bucket=$TERRAGOAT_STATE_BUCKET" \
    -backend-config="key=$TF_VAR_company_name-$TF_VAR_environment.tfstate" \
    -backend-config="region=$TF_VAR_region"

    terraform apply -auto-approve
done

여러 TerraGoat 스택 (AWS) 삭제```bash

cd terraform/aws/ export TF_VAR_environment = $TERRAGOAT_ENV for i in $(seq 1 $TERRAGOAT_STACKS_NUM) do export TF_VAR_environment=$TERRAGOAT_ENV$i terraform init
-backend-config="bucket=$TERRAGOAT_STATE_BUCKET"
-backend-config="key=$TF_VAR_company_name-$TF_VAR_environment.tfstate"
-backend-config="region=$TF_VAR_region"

terraform destroy -auto-approve

done

### Azure 설정

#### 설치 (Azure)

단일 Azure 구독에서 `TF_VAR_environment` 매개변수를 사용하여 여러 TerraGoat 스택을 배포할 수 있습니다.

#### Terraform 상태를 유지하기 위한 Azure Storage Account 백엔드 생성```bash
export TERRAGOAT_RESOURCE_GROUP="TerraGoatRG"
export TERRAGOAT_STATE_STORAGE_ACCOUNT="mydevsecopssa"
export TERRAGOAT_STATE_CONTAINER="mydevsecops"
export TF_VAR_environment="dev"
export TF_VAR_region="westus"

# Create resource group
az group create --location $TF_VAR_region --name $TERRAGOAT_RESOURCE_GROUP

# Create storage account
az storage account create --name $TERRAGOAT_STATE_STORAGE_ACCOUNT --resource-group $TERRAGOAT_RESOURCE_GROUP --location $TF_VAR_region --sku Standard_LRS --kind StorageV2 --https-only true --encryption-services blob

# Get storage account key
ACCOUNT_KEY=$(az storage account keys list --resource-group $TERRAGOAT_RESOURCE_GROUP --account-name $TERRAGOAT_STATE_STORAGE_ACCOUNT --query [0].value -o tsv)

# Create blob container
az storage container create --name $TERRAGOAT_STATE_CONTAINER --account-name $TERRAGOAT_STATE_STORAGE_ACCOUNT --account-key $ACCOUNT_KEY

TerraGoat (Azure) 적용```bash

cd terraform/azure/ terraform init -reconfigure -backend-config="resource_group_name=$TERRAGOAT_RESOURCE_GROUP"
-backend-config "storage_account_name=$TERRAGOAT_STATE_STORAGE_ACCOUNT"
-backend-config="container_name=$TERRAGOAT_STATE_CONTAINER"
-backend-config "key=$TF_VAR_environment.terraform.tfstate"

terraform apply

#### TerraGoat (Azure) 제거```bash
terraform destroy

GCP 설정

설치 (GCP)

단일 GCP 프로젝트에서 TF_VAR_environment 파라미터를 사용하여 여러 TerraGoat 스택을 배포할 수 있습니다.

Terraform 상태를 유지하기 위한 GCS 백엔드 생성

Terraform을 사용하려면 서비스 계정과 이에 맞는 자격 증명 세트가 필요합니다. 존재하지 않는 경우 해당 프로젝트에 대해 수동으로 생성해야 합니다. 서비스 계정을 생성하려면:

  1. GCP 프로젝트에 로그인하여 IAM > Service Accounts로 이동합니다.
  2. CREATE SERVICE ACCOUNT를 클릭합니다.
  3. 서비스 계정에 이름을 지정하고(예: terragoat) CREATE를 클릭합니다.
  4. 서비스 계정에 Project > Editor 역할을 부여하고 CONTINUE를 클릭합니다.
  5. DONE을 클릭합니다.

자격 증명을 생성하려면:

  1. GCP 프로젝트에 로그인하여 IAM > Service Accounts로 이동하고 해당 서비스 계정을 클릭합니다.
  2. ADD KEY > Create new key > JSON을 클릭하고 CREATE를 클릭합니다. 이렇게 하면 .json 파일이 생성되어 컴퓨터에 다운로드됩니다.

자동 생성된 이름보다 더 나은 이름(예: terragoat_credentials.json)으로 키를 저장하고 결과 JSON 파일을 terragoat의 terraform/gcp 디렉터리 안에 저장하는 것을 권장합니다. 자격 증명이 설정되면 다음과 같이 BE 구성을 생성합니다:```bash export TF_VAR_environment="dev" export TF_TERRAGOAT_STATE_BUCKET=remote-state-bucket-terragoat export TF_VAR_credentials_path=<PATH_TO_CREDNETIALS_FILE> # example: export TF_VAR_credentials_path=terragoat_credentials.json export TF_VAR_project=<YOUR_PROJECT_NAME_HERE>

도구 다운로드