はじめに
Red Hatは、Kubernetes環境で動作しているコンテナのセキュリティ対策状況を管理する Red Hat Advanced Cluster Security for Kubernetes(RHACS) という製品を展開しています。
今回は2回の記事に分けて、RHACSのインストールから、RHACSを使ったサンプルアプリのセキュリティ対策方法についてまとめていこうと思います。
この記事では、RHACSのインストール手順についてまとめていきます。
- 前編:Red Hat Advanced Cluster Security for Kubernetes(RHACS)のインストール手順(当記事)
- 後編:サンプルアプリで始めるRed Hat Advanced Cluster Security for Kubernetes(RHACS)入門
RHACSの概要については、赤帽エンジニアブログの以下のページにて詳しく書かれていますので、一読いただくと作業のイメージがしやすいかと思います。
RHACS (Red Hat Advanced Cluster Security for Kubernetes) のご紹介
前提条件
今回はひとつのOpenShiftクラスター上にRHACSの管理コンポーネント(Central)のデプロイと、管理されるための設定(SecuredCluster化)を行います。クラスター情報は以下の通りです。
- OpenShift Container Platform v4.10
- AWSにIPIインストール
- Worker3台(m6i.xlarge)
RHACS環境の構築
基本的にRHACSのインストールは公式ドキュメントの手順を参照いただく形になります。ただドキュメントはテキストベースなので、ここでは画面キャプチャを貼ってもう少しわかりやすく記載していきます。
RHACS Operatorのインストール
まずはOpenShift webコンソールにログインします。Operatorインストールの操作があるため、cluster-adminの権限を持つユーザーにてログインを実施下さい。
"Operator"→"OpeartorHub"に移動して、検索バーに"cluster security"と入力すると、RHACSのOperatorが表示されますので、選択してください。
基本的にはデフォルトのままでOKです。今回は執筆時の最新バージョンということでrhacs-3.70を選択しています。
しばらく待つとOperatorのインストールが終わるので"Operatorの表示"をクリックすると、Operatorの詳細画面に遷移します。
RHACS Centralのデプロイ
まずはCentralコンポーネントのデプロイから始めます。
その前にCentralをデプロイするProjectを作成します。
左上のProject選択画面から"プロジェクトの作成"を選択します。
今回は公式ドキュメントにならってstackrox
というProjectにします。
するとstackrox
Projectのインストール済みOperatorとしてRHACSが表示されるので、クリックします。
先ほどの画面と一緒のようですが。Projectがstackrox
に変わっています。この状態で"提供されるAPI"→"Central"→"インスタンスの作成"を選択します。
こちらも基本的にデフォルトでOKです。そのまま"作成"を選択します。
実際にRHACSのコンソールにアクセスしてみましょう。
まずはRHACSコンソールのログイン情報を取得します。
先の画面で"stackrox-central-services"を選択するとCentral概要に遷移します。その画面の右側にAdmin Password Secret Referenceという記載があり、下にcentral-htpasswd
というSecretがあるので、クリックします。
Secret画面の下の"データ"内にpasswordがあるので、右側の"クリップボードにコピー"をクリックします。
次にコンソールのURLを取得します。
画面左側の"ルート"を選択するとcentral
というリソースの"場所"にコンソールのURLがあるので、こちらをクリックしてアクセスします。
するとRHACSのログイン画面が表示されるので、ユーザー名にadmin
、パスワードに先ほどコピーしたpasswordをペーストしてログインします。
RHACSのダッシュボードが表示されました。ちなみにまだCentralのデプロイしかしておらず、RHACSが管理するクラスターの登録(SecuredClusterの設定)をしていないので、CLUSTERSは0の状態です。
SecuredClusterの設定
さて、次はRHACSで管理するための設定として、SecuredClusterリソースを作成します。
今回はCentralと同じクラスター上にSecuredClusterを作成し、自身のクラスターを管理対象とします。
まずはSecuredClusterデプロイの前に、Centralとの連携に必要な認証情報を取得します。
RHACSのコンソールから"Integrations"→"Authentication Tokens"→"Cluster Init Bundle"をクリックします。
Init Bundle名を入力して"Generate"をクリックします。
Init Bundleが生成されました。 最後に"Download Kubernetes secrets file"を選択してSecret yamlファイルを取得します。
この認証情報をこれからデプロイするSecuredClusterコンポーネントに渡すことで、クラスターをCentralの管理下に置くことができます。
次にこのInit BundleのSecretをデプロイします。
今回はCentralと同様のstackrox
ProjectにSecuredClusterをデプロイするので、以下のコマンドで先ほど取得したyamlファイルをデプロイします。
oc create -f init-bundle-cluster-init-secrets.yaml -n stackrox
secret/sensor-tls created
secret/admission-control-tls created
secret/collector-tls created
これでSecuredClusterをデプロイする準備が整ったので、Operatorをつかってデプロイします。
OpenShiftコンソールで"Operator"→"インストール済みの Operator"からRHACSを選択し、Secured Clusterの"インスタンスの作成"をクリックします。
今回はいくつかの設定を修正します。
-
Cluster Name : RHACS上に表示されるSecured Cluster名になります。今回は
aws-cluster01
としました。 -
Central Endpoint : Centralのエンドポイントになります。今回は同じクラスター上のため、クラスター内部の名前解決
<centralのservice名>.<Namespace名>.svc:443
が可能です。そのためデフォルト設定ではcentral.stackrox.svc:443
となります。
その他はデフォルト設定のまま"作成"をクリックすると、SecuredClusterがデプロイされます。
RHACSの確認
これでRHACSの設定が完了したので、ダッシュボードにアクセスしてみます。
おわりに
ここではRHACS環境のインストールを実施しました。
後編の記事では、実際にサンプルアプリを使ってRHACSの基本的な機能を確認します。