Kubernetesのセキュリティの悩みを解決するStackRoxの導入

★★★ Live配信告知 ★★★ぜひお申込みください!
◆◇世界一わかりみの深いクラウドネイティブ on Azure◆◇
7/7(木) 19:00~ 第15回:クラウド上でのライブ配信環境〜OBS on Azureで高速・堅牢なライブ配信環境を作る〜 今回は、クラウドなライブ配信環境の構築方法をお届けします。
◆◇PS Live◆◇
7/15(金) 17:00~ 第18回:アウトプットはイイぞ 〜サイオステクノロジーLT大会〜 エンジニア初級者向けから、個人ネタまで、エンジニア脳を体感できるプログラムです。

こんにちは、サイオステクノロジーの前田です。アプリケーションのコンテナリリースが増えてきました。アプリケーションを運用するときにはセキュリティ要素が気になることも多いのではないでしょうか。本記事ではKubernetesネイティブなセキュリティのStackRoxについて説明していきます。

StackRoxとは

StackRoxはKubernetesネイティブなセキュリティのOSSです。Kubernetesの脆弱性管理や構成管理、コンプライアンスチェック、ネットワークセグメントの可視化、驚異の検出等を行えます。

StackRox の有償なものとしては、Red Hat Advanced Cluster Security for Kubernete(RHACS)が存在します。関係性としてはRHACS(他のOSSプロジェクトを含む)を強化する主要なアップストリームプロジェクトになります。

Kubernetes等のセキュリティについて

コンテナのセキュリティでよく話されるのはNIST 800-190になります。StackRoxは他のいろいろな内容を確認します。詳細に関しましては各種参照先をご覧ください。

  • Kubernets等のセキュリティ観点

    • CIS Docker, CIS Kubernetes
      • CIS(Center for Internet Security)が発行したベンチマーク
    • PCI DSS
      • カード情報セキュリティの国際統一基準
    • HIPAA
      • 医療情報のプライバシーとセキュリティに関する法律。それを満たすためのデータのプライバシーとセキュリティ要件
    • NIST SP 800-190
      • NIST(National Institute of Standards and Technology)の『アプリケーション・コンテナのセキュリティガイド』
    •  NIST SP 800 53 
      • NISTの『組織と情報システムのためのセキュリティおよびプライバシー管理策』

 

IP制限に関して

サーバのセキュリティで一般有名なのがファイヤーウォールやIP制限ではないでしょうか、KubernetesもNetworkPolicyというリソースを設定することで制限が可能です。

Kubernetesのネットワークポリシー

KuberetesやOKDに関するセキュリティリソースやセキュリティアプリに関しては、他にもたくさんあります。例を挙げるとOKDはSCCという管理者等の特定ユーザで実行しないようにする規則設定のリソースがあります。

StackRox導入

StackRoxを導入していきます。StackRoxはLocal、KubernetesやOpenShift環境にデプロイすることができます。今回は下記に記載の条件でインストールしていきます。

環境条件

  • Kubernetese基盤 OKD4.10
  • 基盤: AWS
  • クライアントOS: CentOS Stream
  • 永続ストレージ設定あり

本環境はOKDのワーカーノードのスペックをクイックインストールのリソースより増やしております。クイックインストールではワーカーノード1台はCPU 2, メモリ 8GBです。その状態ではリソースが足りなくStackRoxはデプロイできないです。そのためCPU 4, メモリ 16GBのワーカーノードを3台作成してください。

StackRoxドキュメント

導入手順概要

  • Gitからソース取得
  • 環境変数設定
  • スクリプトを利用したデプロイ
  • ※デプロイが最後まで行かない場合のみ SCCの設定
  • 正常性確認

導入手順

■Gitからソース取得

 

OKDクラスターへのアクセス確認

■環境変数設定

環境変数を設定することによって、いろいろな設定ができます。上記環境変数でルートを利用したURLアクセスと永続ストレージの設定をします。

■スクリプトを利用したデプロイ

デプロイを行います。インストールするのに必要なコマンドが存在しない場合はエラーが表示されます。その場合はmake等のクライアントをインストールしてから再実行してください。

結果が上記のように表示されます。自動的に完全構築されるまでお待ちください。OKDの画面やpodの動作を見て確認を起動を待ちます。余裕をもって10分程度ぐらいかかると考えてください。

エラーが出ているものや起動していないものがあれば設定を見直します。

 

※デプロイが最後まで行かない場合のみ SCCの設定

OpenShiftとKubernetsの違いでデプロイに関してよく起きる問題がSCCのセキュリティ制限です。この設定のためKubernetsやDockerではデプロイしたけどOpenShiftではコンテナが作成されないという状態になる場合があります。OpenShiftのほうがセキュリティ設定が多くあるためです。

monitringがデプロイされない場合はSCCで問題が発生している場合があります。下記を設定して下さい。設定するとmonitoringが再デプロイされます。

■正常性確認

デプロイ時に表示されているURLではDNSの設定がないためアクセスできません。そのため下記コマンドでURLの情報を確認します。

StackRoxのURLにアクセスします。パスワードとユーザ情報を入力します。ユーザ名は admin パスワードはクライアント端末に生成されるためコマンドを実行して確認します。

ログインしてStackRoxのトップページを表示します。

コンプライアンススキャンを実施すると上記のように多くの情報が表示されます。

StackRox画面説明

StackRoxの画面を記載します。

  • Dashboard
  • Network Graph
  • Violations
  • Compliance
  • Vulnerability Management
  • Configuration Management
  • Risk

最後に

セキュリティというのは、言葉一つで片付ければ簡単なものです。しかし実際は費用や運用稼働等でどのように対応するか大きく変わる項目です。Kubernetesのセキュリティはコンテナのため、サーバで動かしたときと観点が違います。StackRoxはオープンソースです。一度導入して、項目を確認してみて実際に触ってください。全機能を使うのは大変ですが、Network Graphの箇所はkubenretesの理解しにくかったネットワークセキュリティを理解する助けになるはずです。本記事が読まれた方のKubernetsの悩みの一つを解決できたら幸いです。





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

Be the first to comment

Leave a Reply

Your email address will not be published.


*