DockerでCloudGoat環境を構築し秒速でAWSセキュリティに入門する
AWSを愛する皆さま、こんにちは。コンサルティング部の西野(@xiyegen)です。
CloudGoatを使用するためにはTerraformやAWS CLIの実行環境が必要なので、
「AWSセキュリティに今すぐ入門したい!」
とお考えの皆さまは環境構築を手間に感じるかもしれません。
そんな皆さまの願望を満たすよくばりセットDockerイメージが公式から提供されています。
こちらを使用し、秒速でCloudGoat環境を構築しましょう。
目次
おさらい CloudGoatとは
https://github.com/RhinoSecurityLabs/cloudgoat
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/cloudgoatbash-5.0# ls -latotal 84drwxr-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.ymldrwxr-xr-x 1 root root 4096 Nov 18 16:18 core-rw-r--r-- 1 root root 170 Nov 18 16:18 docker_stack.ymldrwxr-xr-x 8 root root 4096 Nov 18 16:18 scenariosdrwxr-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 --versionPython 3.8.0b2bash-5.0# aws --versionaws-cli/1.16.208 Python/3.8.0b2 Linux/4.19.76-linuxkit botocore/1.12.198bash-5.0# terraform --versionTerraform v0.12.3 |
CloudGoat初期設定(コンテナ内)
CloudGoat用にAWS CLIの名前付きプロファイルを設定します。
bash-5.0# aws configure --profile cloudgoatAWS 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 profileNo configuration file was found at /Users/nishino.wataru/CloudGoat/config.ymlWould 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 --autoNo whitelist.txt file was found at /Users/nishino.wataru/CloudGoat/whitelist.txtCloudGoat 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)がお送りしました。