Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
terragoat — 意図的に脆弱なTerraformインフラストラクチャで、AWS、Azure、GCPにおけるクラウドの誤設定検出とDevSecOpsプラクティスを学習するためのものです。 | Kitploit
ツール/GitHubGitHub/bridgecrewio/terragoat
クラウドセキュリティDevSecOps設定ミス学習と教育ラボと実践
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 と、Infrastructure as Code向けのオープンソース静的解析ツールである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)

パラメータ `TF_VAR_environment` を使用して、単一の Azure サブスクリプションに複数の TerraGoat スタックをデプロイできます。

#### Terraform の状態を保持する Azure ストレージアカウントバックエンドを作成する```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)

パラメータ TF_VAR_environment を使用して、単一の GCP プロジェクトに複数の TerraGoat スタックをデプロイできます。

Terraform 状態を保持するための GCS バックエンドの作成

terraform を使用するには、サービスアカウントとそれに対応する認証情報のセットが必要です。 それらが存在しない場合は、該当プロジェクトに対して手動で作成する必要があります。 サービスアカウントを作成するには:

  1. GCP プロジェクトにサインインし、IAM > サービスアカウント に移動します。
  2. サービスアカウントを作成 をクリックします。
  3. サービスアカウントに名前を付け(例: terragoat)、作成 をクリックします。
  4. サービスアカウントに プロジェクト > 編集者 のロールを付与し、続行 をクリックします。
  5. 完了 をクリックします。

認証情報を作成するには:

  1. GCP プロジェクトにサインインし、IAM > サービスアカウント に移動し、該当のサービスアカウントをクリックします。
  2. キーを追加 > 新しいキーを作成 > JSON をクリックし、作成 をクリックします。これにより .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>

ツールをダウンロード