ACS CS (ACS Cloud Service) を試して見る

# はじめに

Red Hat の Container 用のセキュリティソリューションで、`ACS (Advanced Cluster Secruity)` という製品があります。機能の概要紹介が、Red Hatのブログにあるので、そのリンクを[こちら](https://rheb.hatenablog.com/entry/2022/03/23/RHACS_%28Red_Hat_Advanced_Cluster_Security_for_Kubernetes%29_%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%94%E7%B4%B9%E4%BB%8B)に置いておきます。

ACS は、全体を管理する `Central` と呼ばれるサーバーと、管理対象となる `Secured Cluster` (セキュリティを守る対象のCluster) から構成されます。

管理対象となる `Secured Cluster` は、Red Hat の Kubernetes である `OpenShift` の他、`EKS`、`AKS`、`GKE`にも対応しています。

ACSは単体で導入するソフトウェアとしての提供もありますが、`ACS CS(Cloud Service)` という名前でSaaSサービスとしても提供されています。

`ACS CS`のメリットは、Kubernetes クラスタをセキュアに守るための管理サーバー(`Central`)を自分で構築する必要が無いという点です。数クリックの操作で自分用の管理サーバー(`Central`)のインスタンスを立ちあげる事ができ、そこに守りたいKubernetes 追加していくだけです。

ACS CS は、60日の評価版が用意されているので、この記事ではそれを試して見ます。

# ACS CS の Central インスタンスのデプロイ

[console.redhat.com](https://console.redhat.com/) にログインし、"Advanced Cluster Security" のタイルの "RHACS Cloud Service" をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/41ef75b9-e22d-f434-4094-aef472d83043.png)

`Activate your 60-day trial now` をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/c01ba106-ea29-dfd7-26cc-d8f674c30003.png)


`Start your tiral` をクリックします。60日間使用できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/e83bb2e8-a432-9694-b681-63e7957c427d.png)

右下から誰かがチャットで話しかけて来ますが、英語で怖いので無視して `Create Instance` のボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/6ba681bc-e1f0-5a6b-287c-d95555fce984.png)


`ACS` の `Central` (ACSの管理サーバー) デプロイする AWSリージョンを選びます。記事作成時点で、`Europe (Iredland)` と `US East (N. Virginia)` の AWS リージョンが選べます。この記事では、`US East`に `ACS`の `Central`を作成して、日本にある OpenShiftのクラスターを管理対象(Secured Cluster)にしてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/bc60522c-1f44-e829-9150-1523c2e98247.png)

大体、デプロイには 10分かかるそうです。

デプロイが完了したら、名前の部分のリンクをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/802a6615-85bd-a8e5-261a-a9843d6bed17.png)



さらに`Open ACS Console` をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/5b04fa51-fcb6-7c76-faea-d97a22ccd012.png)


`Login` をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/c563de73-9903-4a0a-c185-d23d162c0197.png)


ログイン後、`Create init bundle`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/1526d1cc-ef8a-603c-82f1-464a9bcffc2a.png)


`Name`に好きな名前を入れて、`Platform of secured clusters` を選びます。
この手順では `Secured Cluster`として OpenShift の Managed Service である ROSA を登録するので`OpenShift` を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/f4830f6a-8da9-0997-fc5c-327eec11b527.png)

YAMLファイルをダウンロードして保存しておきます。後で使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/41972e47-6d06-37f5-787b-ee0e8ef85223.png)


# Secured Cluster 側の作業

この例では、既に作成済みの `ROSA HCP` クラスターを使用します。

`Operator Hub` から `Advanced Cluster Secruity for Kubernetes` を選びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/f728b910-e52b-4e81-9989-52aee0ebc983.png)

`インストール`をクリックします。細かな設定は、デフォルトで大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/9bfe1ee0-f5fe-fed5-e239-1ed4ae8231e3.png)

もう一度、`インストール`をクリックします。設定はデフォルトで大丈夫です。(デフォルトでは、`rhascs-operator` という `namespace` に各種コンポーネントがインストールされます。以降はその前提で手順を進めていきます。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/63e5f74c-1da0-438c-02a2-767974106abf.png)

インストールが完了したら以下の画面になるので `Operatorの表示`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/52079d14-2d26-d2ef-2229-2283f70dae05.png)


`プロジェクト`が `rhacs-operator`になっているのを確認して（デフォルトでインストールしているとこの設定になっているはずです）、右上の「+」アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/fb7b7c5a-7fce-9c68-c70a-45f9571a2ec5.png)


この画面に、先ほどダウンロードした `YAML`ファイルの中身を貼り付けます。貼り付けたら`作成`をクリックします。必要なリソースが作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/d3fa9a48-a09c-b208-1c02-f8fcb6d9cb69.png)

リソースの作成はすぐに完了するはずです。これらは `Secured Cluster`の登録に必要な`Secret`達です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/8ec8e829-1959-631f-39eb-b91d2aabc893.png)

ここで一旦 ACS CS のコンソールの画面に戻って、コンソールの URL をコピーしてとっておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/dc42f2c4-2dbd-5bde-cc5c-eadcb48dd257.png)

再び `Secured Cluster`の OpenShift コンソールに戻って、`インストール済みのOperator`から `Advanced Cluster Security for Kubernetes`を選択して、`Secured Cluster`のタブをクリックします。`Secured Clusterの作成`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/529fdb88-39a0-650a-8e73-8308a12294a9.png)

コピーしておいた、ACS CS のコンソールの URLのドメイン名を切り取って `Central Endpoint`のボックスに貼り付けます。
`https://acs-csialga7m405k28qe4eg.acs.rhcloud.com:443` のようなフォーマットになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/82a00248-fd52-bf2d-12d5-aa651df04f5a.png)

`Central Endpoint`の項目を埋めたら「作成」をクリックします。必要な `Pod`のデプロイが開始されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/67020e26-2aef-b87a-956a-35ffaaae881b.png)


以下のコマンドで `Pod`のデプロイ状況が確認できます。
```
oc get pods -n rhacs-operator
```
`collector-` は、Node の本数分作られます。Worker Node だけでなく、Master Node / Infra Node にもデフォルトでインストールされます。この例の場合は、Master Node / Infra Node が存在しない ROSA HCP Cluster にインストールしているので、Worker Node の数 (3本）分の Collectorが見えています。

```
$ oc get pods -n rhacs-operator 
NAME                                                 READY   STATUS    RESTARTS      AGE
admission-control-7464c8ffbf-6c999                   1/1     Running   0             2m7s
admission-control-7464c8ffbf-bsz8h                   1/1     Running   0             2m6s
admission-control-7464c8ffbf-nxhhq                   1/1     Running   0             2m6s
collector-7hg5v                                      3/3     Running   1 (89s ago)   2m6s
collector-j8f5p                                      3/3     Running   1 (88s ago)   2m7s
collector-l8qsh                                      3/3     Running   1 (90s ago)   2m6s
rhacs-operator-controller-manager-5dccb5d885-v4g7v   1/1     Running   0             16m
scanner-9dcf88c75-468zp                              1/1     Running   0             2m6s
scanner-9dcf88c75-gjmgg                              1/1     Running   0             2m6s
scanner-9dcf88c75-rcpzm                              1/1     Running   0             2m6s
scanner-db-758fdbb744-nrvc6                          1/1     Running   0             2m6s
sensor-5659647cd9-29kxr                              1/1     Running   0             2m7s
$
```

上記のように全て `Running` になったら `Secured Cluster`の登録は完了しているはずです。

# ACS CS コンソールでの確認

ACS CS の画面に戻ると、以下のように先ほど登録した Cluster がリストされているはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/a06358e9-de9c-d6eb-49f2-f9dbd63df7aa.png)

`Dashboard`をクリックすると以下のように各種情報が見えるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99425/9c64b25c-d646-090c-f2c9-818a4a97ca50.png)

以上で完了です。

今回は、`ACS CS` の `Central`インスタンスが `U.S. Virginia` で管理対象となる `Secured Cluster` の `OpenShift` (`ROSA HCP`クラスター) を東京リージョンに設置して実験してみましたが、特に目立った遅延などの影響は感じられなかったです。