Aqua Platform を試すためDockerを利用してセットアップしてみた
こんにちは、コンサル部@大阪オフィスのTodaです。
aqua社が提供しているAqua Platform の Enterprise版 を試す機会がありましたので検証環境向けのセットアップをおこない手順をまとめました。
Aqua Platformとは?
Aqua Platformはaqua社が提供するソリューションでコンテナとクラウドネイティブアプリのために開発された、 フルライフサイクルなセキュリティソリューションになります。
■ aqua コンテナ・クラウドネイティブアプリのためのセキュリティソリューション
https://www.creationline.com/aqua
製品の内容については下記記事をご覧ください。
記事の前提について
今回の記事は、Aqua社と交渉の上、検証用のトライアルアカウントを利用しています。
コンテナイメージや、セットアップ用のドキュメントなどは、公式ドキュメントアクセス用のアカウントが必要となりますのでご留意ください。
検証環境について
Aqua のセットアップは[Kubernetesクラスター]や、[ECS][D2iQ-DC]など複数の種類がございます。 今回は検証環境になるため[Docker]で導入する方法を試します。
利用するサーバはEC2インスタンスで、下記スペックにておこないます。
AMI:AmazonLinux2 x86 (ami-0701e21c502689c31)
インスタンスタイプ:t3.small
EBS容量:30GB
セットアップ
aquaのガイドページに掲載されている手順に沿って導入を進めていきます。
※ガイドページはログインが必要なページとなっております。
■ Docker-only Deployment - DEPLOY AQUA ENTERPRISE
https://docs.aquasec.com/docs/docker-only
ライセンストークンの取得
Aquaをご利用いただきますとポータル画面(aqua success)が提供されます。
ポータル画面からセットアップに必要な[ライセンストークン]を取得します。
ライセンストークンは最後の方で利用いたしますのでメモに残します。
EC2の準備
新規EC2の準備をおこない初期導入されているソフトを最新の状態に更新いたします。
$ sudo yum update
Dockerのインストール
sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker
インストール後にDockerのバージョンを確認して正常に動いていることを確認します。
$ docker --version Docker version 20.10.7, build f0df350
aqua社のリポジトリにログイン
aqua社にユーザ登録をしているユーザ名とパスワードでリポジトリにログインします。
$ docker login registry.aquasec.com Username: <username> Password: <password> WARNING! Your password will be stored unencrypted in /home/ec2-user/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
初期設定のDockerでは、入力したログイン情報は暗号化されない状態で記録されるため警告が表示されます。 今回は検証用途のため平文のままにしておきます。
イメージの取得
Dockerイメージの取得をおこないます。
コマンドを実行してconsole、database、gatewayの3点を取得します。
docker pull registry.aquasec.com/console:6.5 docker pull registry.aquasec.com/database:6.5 docker pull registry.aquasec.com/gateway:6.5
Got permission denied while trying to connect to the Docker daemon socket at unixという
エラーが出た場合、Dockerコマンドをroot権限なしで入力できないようになっていますので下記コマンドでec2-userをdockerグループに追加をおこないdocker.sockの所有グループをdockerに変更します。
変更後1度、SSHをログアウト・ログインしてください。
sudo gpasswd -a $(whoami) docker sudo chgrp docker /var/run/docker.sock
コンテナの実行
今回databaseのコンテナにはPostgreSQLが導入されています。
データの永続性を確保するためにDBデータ保管用のディレクトリをマウントするように対応します。
■ DBコンテナ
[DB_PASSWORD]:任意のパスワードを指定ください。
docker container run -d -p 5432:5432 --name aqua-db \ -e POSTGRES_PASSWORD=[DB_PASSWORD] \ -v /var/lib/aqua-db/data:/var/lib/postgresql/data \ registry.aquasec.com/database:6.5
■ WEBコンテナ
[DB_PASSWORD]:上記で入力したのパスワードを指定ください。
[DB_HOST]:サーバのプライベートIPアドレスを指定ください。
docker container run -d -p 8080:8080 -p 443:8443 \ --name aqua-web \ -e SCALOCK_DBHOST=[DB_HOST] \ -e SCALOCK_DBNAME=scalock \ -e SCALOCK_DBUSER=postgres \ -e SCALOCK_DBPASSWORD=[DB_PASSWORD] \ -e SCALOCK_AUDIT_DBHOST=[DB_HOST] \ -e SCALOCK_AUDIT_DBNAME=slk_audit \ -e SCALOCK_AUDIT_DBUSER=postgres \ -e SCALOCK_AUDIT_DBPASSWORD=[DB_PASSWORD] \ -v /var/run/docker.sock:/var/run/docker.sock \ registry.aquasec.com/console:6.5
■ GATEWAYコンテナ
[DB_PASSWORD]:上記で入力したのパスワードを指定ください。
[DB_HOST]:サーバのプライベートIPアドレスを指定ください。
[CONSOLE_HOST]:サーバのパブリックIPアドレスを指定ください。
docker container run -d -p 3622:3622 -p 8443:8443 --name aqua-gateway \ -e AQUA_CONSOLE_SECURE_ADDRESS=[CONSOLE_HOST]:443 \ -e SCALOCK_DBHOST=[DB_HOST] \ -e SCALOCK_DBNAME=scalock \ -e SCALOCK_DBUSER=postgres \ -e SCALOCK_DBPASSWORD=[DB_PASSWORD] \ -e SCALOCK_AUDIT_DBHOST=[DB_HOST] \ -e SCALOCK_AUDIT_DBNAME=slk_audit \ -e SCALOCK_AUDIT_DBUSER=postgres \ -e SCALOCK_AUDIT_DBPASSWORD=[DB_PASSWORD] \ registry.aquasec.com/gateway:6.5
aqua 初期アカウントの登録
コンテナの実行ができている状態で下記URLにアクセス頂く事で初期アカウントの作成の画面が表示されます。
http://[サーバのIPアドレス]:8080
ユーザー名とパスワードを入力頂きログインをおこないます。
パスワードは8文字以上の設定が必要になります。
"alive"と表示される場合は、コンテナで利用している3622, 8443, 5432のポート通信がセキュリティグループ等で遮断されている場合がございます。
上記が発生する場合は、セキュリティグループのインバウンドルールを調整いただき自身のホストに対してIP許可を設定ください。
aqua ライセンストークンの登録
ライセンストークンの登録をおこないます。
[ライセンストークン]は上記で取得したものを利用します。
aqua ダッシュボードのアクセス
設定が完了するとaquaのダッシュボードが表示されます。
さいごに
今回はAqua Platformのセットアップを試してみました。
次からは各機能について検証をしていきたいと思います。