DockerでCloudGoat環境を構築し秒速でAWSセキュリティに入門する
AWSを愛する皆さま、こんにちは。コンサルティング部の西野(@xiyegen)です。
CloudGoatを使用するためにはTerraformやAWS CLIの実行環境が必要なので、
「AWSセキュリティに今すぐ入門したい!」
とお考えの皆さまは環境構築を手間に感じるかもしれません。
そんな皆さまの願望を満たすよくばりセットDockerイメージが公式から提供されています。
こちらを使用し、秒速でCloudGoat環境を構築しましょう。
目次
おさらい CloudGoatとは
https://github.com/RhinoSecurityLabs/cloudgoat
CloudGoatはRhino Security Labs社によって開発されたAWSセキュリティ学習環境構築ツールです。
概要を下記のブログで紹介しておりますのでこちらもご参照ください。
環境構築
IAM user作成
CloudGoatからAWSリソースを作成するためのIAM userを作成します。
今回はcloudgoat
という名称のIAM userを作成し、AdministratorAccess(AWS管理ポリシー)権限を付与します。
コンテナを動かす
公式が提供しているDockerイメージからコンテナを起動します。
$ docker run -it rhinosecuritylabs/cloudgoat:latest
ディレクトリ・ファイルの構成を見てみます。
bash-5.0# pwd /usr/src/cloudgoat bash-5.0# ls -la total 84 drwxr-xr-x 1 root root 4096 Feb 18 07:46 . drwxr-xr-x 1 root root 4096 Jul 30 2019 .. drwxr-xr-x 8 root root 4096 Nov 18 16:18 .git -rw-r--r-- 1 root root 205 Nov 18 16:18 .gitignore -rw-r--r-- 1 root root 690 Nov 18 16:18 Dockerfile -rw-r--r-- 1 root root 1519 Nov 18 16:18 LICENSE -rw-r--r-- 1 root root 19607 Nov 18 16:18 README.md -rw-r--r-- 1 root root 3552 Nov 18 16:18 cloudgoat.py -rw-r--r-- 1 root root 29 Feb 18 07:00 config.yml drwxr-xr-x 1 root root 4096 Nov 18 16:18 core -rw-r--r-- 1 root root 170 Nov 18 16:18 docker_stack.yml drwxr-xr-x 8 root root 4096 Nov 18 16:18 scenarios drwxr-xr-x 3 root root 4096 Feb 18 07:46 trash -rw-r--r-- 1 root root 14 Feb 18 07:01 whitelist.txt
Python・AWS CLI・Terraformがインストール済みです。
bash-5.0# python --version Python 3.8.0b2 bash-5.0# aws --version aws-cli/1.16.208 Python/3.8.0b2 Linux/4.19.76-linuxkit botocore/1.12.198 bash-5.0# terraform --version Terraform v0.12.3
CloudGoat初期設定(コンテナ内)
CloudGoat用にAWS CLIの名前付きプロファイルを設定します。
bash-5.0# aws configure --profile cloudgoat AWS Access Key ID [None]: <Your Access Key ID> AWS Secret Access Key [None]: <Your Secret Access Key ID> Default region name [None]: Default output format [None]:
cloudgoat.pyへ実行権限を付与します。
bash-5.0# chmod +x cloudgoat.py
cloudgoat.pyを実行し、profileを設定します。
bash-5.0# ./cloudgoat.py config profile No configuration file was found at /Users/nishino.wataru/CloudGoat/config.yml Would you like to create this file with a default profile name now? [y/n]: y ★yと入力 Enter the name of your default AWS profile: cloudgoat ★先に設定したAWS CLIのプロファイルと同じものを入力 A default profile name of "cloudgoat" has been saved.
cloudgoat.pyを実行し、IPアドレスのホワイトリストを設定します。
bash-5.0# ./cloudgoat.py config whitelist --auto No whitelist.txt file was found at /Users/nishino.wataru/CloudGoat/whitelist.txt CloudGoat can automatically make a network request, using curl, to ifconfig.co to find your IP address, and then create the whitelist file with the result. Would you like to continue? [y/n]: y ★yと入力 whitelist.txt created with IP address XXX.XXX.XXX.XXX/32
これでCloudGoatの初期設定が完了しました。
この先の流れについては冒頭でご紹介した私のブログの一節(シナリオ iam_privesc_by_rollbackをやってみた)をご参照ください。
終わりに
このブログがほんの少しでも世界を良くできれば嬉しいです。
いままで羊(?)だと思い込みたべていた羊肉串が実は山羊(?)だったかもしれないと知り、少し動揺したコンサルティング部の西野(@xiyegen)がお送りしました。