Aqua Platform を試すためDockerを利用してセットアップしてみた

2021.10.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、コンサル部@大阪オフィスの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)が提供されます。
ポータル画面からセットアップに必要な[ライセンストークン]を取得します。

ライセンストークンの取得1

ライセンストークンの取得2

ライセンストークンの取得3

ライセンストークンは最後の方で利用いたしますのでメモに残します。

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文字以上の設定が必要になります。

aqua 初期アカウントの登録

"alive"と表示される場合は、コンテナで利用している3622, 8443, 5432のポート通信がセキュリティグループ等で遮断されている場合がございます。
上記が発生する場合は、セキュリティグループのインバウンドルールを調整いただき自身のホストに対してIP許可を設定ください。

aqua ライセンストークンの登録

ライセンストークンの登録をおこないます。
[ライセンストークン]は上記で取得したものを利用します。

aqua ライセンストークンの登録

aqua ダッシュボードのアクセス

設定が完了するとaquaのダッシュボードが表示されます。

aqua コンソールのアクセス

さいごに

今回はAqua Platformのセットアップを試してみました。
次からは各機能について検証をしていきたいと思います。