4.2. Helm チャートを使用してカスタマイズしてインストールする


インストールフローの概要:

  1. Red Hat Advanced Cluster Security for Kubernetes Helm チャートリポジトリーを追加します。
  2. central-services Helm チャートを設定します。
  3. central-services Helm チャートをインストールして、集約コンポーネント (Central および Scanner) をインストールします。
  4. init バンドルを生成します。
  5. secure-cluster-services Helm チャートを設定します。
  6. secured-cluster-services Helm チャートをインストールし、クラスターごと および ノードごと のコンポーネント (Sensor、Admission Controller、および Collector) をインストールします。

インストールする前に:

4.2.1. Helm チャートリポジトリーの追加

手順

  • Red Hat Advanced Cluster Security for Kubernetes チャートリポジトリーを追加します。

    $ helm repo add rhacs https://mirror.openshift.com/pub/rhacs/charts/

    Red Hat Advanced Cluster Security for Kubernetes の Helm リポジトリーには、異なるコンポーネントをインストールするための 2 つの Helm チャートが含まれています。

    • 集中型コンポーネント (Central および Scanner) をインストールするためのセントラルサービス Helm チャート (central-services)。

      注記

      一元化されたコンポーネントを 1 回だけデプロイし、同じインストールを使用して複数の個別のクラスターをモニターできます。

    • クラスターごと (Sensor および Admission Controller) およびノードごと (Collector) のコンポーネントをインストールするための Secured Cluster Services Helm チャート (secured-cluster-services)。

      注記

      モニターする各クラスターにクラスターごとのコンポーネントをデプロイし、モニターするすべてのノードにノードごとのコンポーネントをデプロイします。

検証

  • 次のコマンドを実行して、追加されたチャートリポジトリーを確認します。

    $ helm search repo -l rhacs/

4.2.2. セントラルサービス Helm チャートの設定

このセクションでは、helm install および helm upgrade コマンドで使用できる Helm チャート設定パラメーターについて説明します。これらのパラメーターは、--set オプションを使用するか、YAML 設定ファイルを作成することで指定できます。

以下のファイルを作成して、Red Hat Advanced Cluster Security for Kubernetes をインストールするための Helm チャートを設定します。

  • パブリック設定ファイル values-public.yaml: このファイルを使用して、機密性の低いすべての設定オプションを保存します。
  • プライベート設定ファイル values-private.yaml: このファイルを使用して、機密性の高いすべての設定オプションを保存します。このファイルを安全に保管してください。

4.2.2.1. プライベート設定ファイル

このセクションでは、values-private.yaml ファイルの設定可能なパラメーターをリストします。これらのパラメーターのデフォルト値はありません。

4.2.2.1.1. イメージプルのシークレット

レジストリーからイメージをプルするために必要な認証情報は、以下の要素によって異なります。

  • カスタムレジストリーを使用している場合、以下のパラメーターを指定する必要があります。

    • imagePullSecrets.username
    • imagePullSecrets.password
    • image.registry
  • カスタムレジストリーへのログインにユーザー名とパスワードを使用しない場合は、以下のいずれかのパラメーターを指定する必要があります。

    • imagePullSecrets.allowNone
    • imagePullSecrets.useExisting
    • imagePullSecrets.useFromDefaultServiceAccount
パラメーター説明

imagePullSecrets.username

レジストリーへのログインに使用されるアカウントのユーザー名。

imagePullSecrets.password

レジストリーへのログインに使用されるアカウントのパスワード

imagePullSecrets.allowNone

カスタムレジストリーを使用していて、クレデンシャルなしでイメージをプルできる場合は、true を使用します。

imagePullSecrets.useExisting

値としてのシークレットのコンマ区切りリスト。たとえば、secret1, secret2, secretN です。ターゲット namespace に指定された名前で既存のイメージプルシークレットを既に作成している場合は、このオプションを使用します。

imagePullSecrets.useFromDefaultServiceAccount

十分なスコープのイメージプルシークレットを使用してターゲット namespace にデフォルトのサービスアカウントをすでに設定している場合は、true を使用します。

4.2.2.1.2. プロキシー設定

外部サービスに接続するためにプロキシーが必要なクラスターに Red Hat Cluster Security for Kubernetes をインストールする場合は、proxyConfig パラメーターを使用してプロキシー設定を指定する必要があります。以下に例を示します。

env:
  proxyConfig: |
    url: http://proxy.name:port
    username: username
    password: password
    excludes:
    - some.domain
パラメーター説明

env.proxyConfig

プロキシー設定。

4.2.2.1.3. Central

Central の設定可能なパラメーター。

新規インストールの場合、次のパラメーターをスキップできます。

  • central.jwtSigner.key
  • central.serviceTLS.cert
  • central.serviceTLS.key
  • central.adminPassword.value
  • central.adminPassword.htpasswd
  • これらのパラメーターの値を指定しない場合、Helm チャートはそれらの値を自動生成します。
  • これらの値を変更する場合は、helm upgrade コマンドを使用し、--set オプションを使用して値を指定できます。
重要

管理者パスワードの設定には、central.adminPassword.value または central.adminPassword.htpasswd のいずれかのみを使用できますが、両方を使用することはできません。

パラメーター説明

central.jwtSigner.key

Red Hat Advanced Cluster Security for Kubernetes が認証用の JSON Web トークン (JWT) に署名するために使用する必要がある秘密鍵。

central.serviceTLS.cert

セントラルサービスが Central をデプロイするために使用する必要がある内部証明書。

central.serviceTLS.key

セントラルサービスが使用する必要がある内部証明書の秘密鍵。

central.defaultTLS.cert

Central が使用する必要のあるユーザー向けの証明書。Red Hat Advanced Cluster Security for Kubernetes は、RHACS ポータルにこの証明書を使用します。

  • 新規インストールの場合は、証明書を提供する必要があります。提供しない場合、Red Hat Advanced Cluster Security for Kubernetes は自己署名証明書を使用して Central をインストールします。
  • アップグレードする場合、Red Hat Advanced Cluster Security for Kubernetes は既存の証明書とそのキーを使用します。

central.defaultTLS.key

Central が使用する必要のあるユーザー向け証明書の秘密鍵。

  • 新規インストールの場合は、秘密鍵を指定する必要があります。指定しない場合、Red Hat Advanced Cluster Security for Kubernetes は自己署名証明書を使用して Central をインストールします。
  • アップグレードする場合、Red Hat Advanced Cluster Security for Kubernetes は既存の証明書とそのキーを使用します。

central.adminPassword.value

Red Hat Advanced Cluster Security for Kubernetes にログインするための管理者パスワード。

central.adminPassword.htpasswd

Red Hat Advanced Cluster Security for Kubernetes にログインするための管理者パスワード。このパスワードは、bcrypt を使用してハッシュ形式で保存されます。

注記

Central.adminPassword.htpasswd パラメーターを使用している場合は、bcrypt でエンコードされたパスワードハッシュを使用する必要があります。コマンド htpasswd -nB admin を実行して、パスワードハッシュを生成できます。以下に例を示します。

htpasswd: |
  admin:<bcrypt-hash>
4.2.2.1.4. Scanner

Scanner の設定可能なパラメーター。

新規インストールの場合、次のパラメーターをスキップでき、Helm チャートがそれらの値を自動生成します。それ以外の場合、新しいバージョンにアップグレードする場合は、以下のパラメーターの値を指定してください。

  • scanner.dbPassword.value
  • scanner.serviceTLS.cert
  • scanner.serviceTLS.key
  • scanner.dbServiceTLS.cert
  • scanner.dbServiceTLS.key
パラメーター説明

scanner.dbPassword.value

Scanner データベースでの認証に使用するパスワード。Red Hat Advanced Cluster Security for Kubernetes はその値を内部で自動的に作成して使用するため、このパラメーターは変更しないでください。

scanner.serviceTLS.cert

Scanner サービスが Scanner のデプロイに使用する必要がある内部証明書。

scanner.serviceTLS.key

Scanner サービスが使用する必要がある内部証明書の秘密鍵。

scanner.dbServiceTLS.cert

Scanner-db サービスが Scanner データベースをデプロイするために使用する必要がある内部証明書。

scanner.dbServiceTLS.key

Scanner-db サービスが使用する必要がある内部証明書の秘密鍵。

4.2.2.2. パブリック設定ファイル

このセクションでは、values-public.yaml ファイルの設定可能なパラメーターをリストします。

4.2.2.2.1. イメージプルのシークレット

イメージプルシークレットは、レジストリーからイメージをプルするために必要なクレデンシャルです。

パラメーター説明

imagePullSecrets.allowNone

カスタムレジストリーを使用していて、クレデンシャルなしでイメージをプルできる場合は、true を使用します。

imagePullSecrets.useExisting

値としてのシークレットのコンマ区切りリスト。たとえば、secret1, secret2。ターゲット namespace に指定された名前で既存のイメージプルシークレットを既に作成している場合は、このオプションを使用します。

imagePullSecrets.useFromDefaultServiceAccount

十分なスコープのイメージプルシークレットを使用してターゲット namespace にデフォルトのサービスアカウントをすでに設定している場合は、true を使用します。

4.2.2.2.2. Image

Image は、Helm チャートが central.imagescanner.image、および scanner.dbImage パラメーターのイメージを解決するために使用するメインレジストリーをセットアップするための設定を宣言します。

パラメーター説明

image.registry

イメージレジストリーのアドレス。Registry.redhat.io などのホスト名、または us.gcr.io/stackrox-mirror などのリモートレジストリーホスト名のいずれかを使用します。

4.2.2.2.3. 環境変数

Red Hat Advanced Cluster Security for Kubernetes は、クラスター環境を自動的に検出し、env.openshiftenv.istio、および env.platform の値を設定します。クラスター環境の自動検出をオーバーライドするには、これらの値のみを設定してください。

パラメーター説明

env.openshift

OpenShift Container Platform クラスターにインストールし、クラスター環境の自動検出をオーバーライドする場合は、true を使用します。

env.istio

true を使用して、Istio が有効化されたクラスターにインストールし、クラスター環境の自動検出をオーバーライドします。

env.platform

Red Hat Advanced Cluster Security for Kubernetes をインストールするプラットフォーム。その値を default または gke に設定して、クラスタープラットフォームを指定し、クラスター環境の自動検出をオーバーライドします。

env.offlineMode

オフラインモードで Red Hat Advanced Cluster Security for Kubernetes を使用するには、true を使用します。

4.2.2.2.4. 追加の信頼された認証局

Red Hat Advanced Cluster Security for Kubernetes は、信頼するシステムルート証明書を自動的に参照します。Central または Scanner が、組織内の機関またはグローバルに信頼されているパートナー組織によって発行された証明書を使用するサービスに到達する必要がある場合、次のパラメーターを使用して信頼するルート認証局を指定することにより、これらのサービスの信頼を追加できます。

パラメーター説明

additionalCAs.<certificate_name>

信頼するルート認証局の PEM エンコード証明書を指定します。

4.2.2.2.5. Central

Central の設定可能なパラメーター。

  • hostPath または PersistentVolumeClaim のいずれかとして永続ストレージオプションを指定する必要があります。
  • 外部アクセス用の Central のデプロイメントを公開するため。1 つのパラメーター、central.exposure.loadBalancercentral.exposure.nodePort、または central.exposure.route のいずれかを指定する必要があります。これらのパラメーターに値を指定しない場合は、手動で Central を公開するか、ポート転送を使用して Central にアクセスする必要があります。
パラメーター説明

central.disableTelemetry

true を使用して、オンライン Telemetry データコレクションを無効にします。

central.endpointsConfig

Central のエンドポイント設定オプションです。

central.nodeSelector

ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Central の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。

central.tolerations

ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Central の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。

central.exposeMonitoring

ポート番号 9090 で Central の Prometheus メトリックエンドポイントを公開するには、true を指定します。

central.image.registry

Central イメージのグローバル image.registry パラメーターをオーバーライドするカスタムレジストリーです。

central.image.name

デフォルトの Central イメージ名 (main) をオーバーライドするカスタムイメージ名。

central.image.tag

Central イメージのデフォルトタグをオーバーライドするカスタムイメージタグです。新規インストール時に独自のイメージタグを指定した場合、helm upgrade コマンドを実行して新しいバージョンにアップグレードするときに、このタグを手動でインクリメントする必要があります。独自のレジストリーで Central イメージをミラーリングする場合は、元のイメージタグを変更しないでください。

central.image.fullRef

Central イメージのレジストリーアドレス、イメージ名、およびイメージタグを含む完全なリファレンスです。このパラメーターの値を設定すると、central.image.registrycentral.image.name、および central.image.tag パラメーターがオーバーライドされます。

central.resources.requests.memory

Central がデフォルト値をオーバーライドするためのメモリーリクエストです。

central.resources.requests.cpu

Central がデフォルト値をオーバーライドするための CPU リクエストです。

central.resources.limits.memory

Central がデフォルト値をオーバーライドためのメモリー制限です。

central.resources.limits.cpu

Central がデフォルト値をオーバーライドための CPU 制限です。

central.persistence.hostPath

Red Hat Advanced Cluster Security for Kubernetes がデータベースボリュームを作成する必要があるノード上のパスです。Red Hat はこのオプションの使用を推奨していません。

central.persistence.persistentVolumeClaim.claimName

使用している永続ボリューム要求 (PVC) の名前です。

central.persistence.persistentVolumeClaim.createClaim

true を使用して新しい永続ボリューム要求を作成するか、false を使用して既存の要求を使用します。

central.persistence.persistentVolumeClaim.size

指定された要求による管理対象の永続ボリュームのサイズ (GiB 単位) です。

central.exposure.loadBalancer.enabled

ロードバランサーを使用して Central を公開するには、true を使用します。

central.exposure.loadBalancer.port

Central を公開するポート番号です。デフォルトのポート番号は 443 です。

central.exposure.nodePort.enabled

true を使用して、ノードポートサービスを使用して Central を公開します。

central.exposure.nodePort.port

Central を公開するポート番号です。このパラメーターをスキップすると、OpenShift Container Platform は自動的にポート番号を割り当てます。Red Hat では、ノードポートを使用して Red Hat Advanced Cluster Security for Kubernetes を公開する場合、ポート番号を指定しないことを推奨しています。

central.exposure.route.enabled

ルートを使用して Central を公開するには、true を使用します。このパラメーターは、OpenShift Container Platform クラスターでのみ使用できます。

4.2.2.2.6. Scanner

Scanner の設定可能なパラメーター。

パラメーター説明

scanner.disable

Scanner を使用せずに Red Hat Advanced Cluster Security for Kubernetes をインストールする場合は true を使用します。helm upgrade コマンドで使用すると、Helm は既存の Scanner のデプロイメントを削除します。

scanner.replicas

Scanner のデプロイメント用に作成するレプリカの数です。Scanner.autoscaling パラメーターと一緒に使用する場合、この値はレプリカの初期数を設定します。

scanner.logLevel

Scanner のログレベルを設定します。Red Hat では、ログレベルのデフォルト値 (INFO) を変更しないことをお勧めしています。

scanner.nodeSelector

ノードセレクターラベルを label-key:label-value として指定して、指定されたラベルを持つノードでのみ Scanner をスケジュールするように強制します。

scanner.tolerations

ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。

scanner.autoscaling.disable

true を使用した Scanner のデプロイメントの自動スケーリングを無効にします。自動スケーリングを無効にすると、minReplicas パラメーターと maxReplicas パラメーターは効果がありません。

scanner.autoscaling.minReplicas

自動スケーリングのレプリカの最小数です。

scanner.autoscaling.maxReplicas

自動スケーリングのレプリカの最大数です。

scanner.resources.requests.memory

Scanner がデフォルト値をオーバーライドするためのメモリーリクエストです。

scanner.resources.requests.cpu

Scanner がデフォルト値をオーバーライドするための CPU リクエストです。

scanner.resources.limits.memory

Scanner がデフォルト値をオーバーライドするためのメモリー制限です。

scanner.resources.limits.cpu

Scanner がデフォルト値をオーバーライドするための CPU 制限です。

scanner.dbResources.requests.memory

Scanner データベースのデプロイメントがデフォルト値をオーバーライドするためのメモリーリクエストです。

scanner.dbResources.requests.cpu

Scanner データベースのデプロイメントがデフォルト値をオーバーライドするための CPU リクエストです。

scanner.dbResources.limits.memory

Scanner データベースのデプロイメントがデフォルト値をオーバーライドするためのメモリー制限です。

scanner.dbResources.limits.cpu

Scanner データベースのデプロイメントがデフォルト値をオーバーライドするための CPU 制限です。

scanner.image.registry

Scanner イメージのカスタムレジストリーです。

scanner.image.name

デフォルトの Scanner イメージ名 (scanner) をオーバーライドするカスタムイメージ名です。

scanner.dbImage.registry

Scanner DB イメージのカスタムレジストリーです。

scanner.dbImage.name

デフォルトの Scanner DB イメージ名 (scanner-db) をオーバーライドするカスタムイメージ名です。

scanner.dbNodeSelector

ノードセレクターラベルを label-key:label-value として指定して、Scanner DB が指定されたラベルを持つノードでのみスケジュールするように強制します。

scanner.dbTolerations

ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。

4.2.2.2.7. カスタマイズ

これらのパラメーターを使用して、Red Hat Advanced Cluster Security for Kubernetes が作成するすべてのオブジェクトの追加の属性を指定します。

パラメーター説明

customize.labels

すべてのオブジェクトにアタッチするカスタムラベルです。

customize.annotations

すべてのオブジェクトにアタッチするカスタムアノテーションです。

customize.podLabels

すべてのデプロイメントにアタッチするカスタムラベルです。

customize.podAnnotations

すべてのデプロイメントにアタッチするカスタムアノテーションです。

customize.envVars

すべてのオブジェクトのすべてのコンテナーのカスタム環境変数です。

customize.central.labels

Central が作成するすべてのオブジェクトにアタッチするカスタムラベルです。

customize.central.annotations

Central が作成するすべてのオブジェクトにアタッチするカスタムアノテーションです。

customize.central.podLabels

すべての Central のデプロイメントにアタッチするカスタムラベルです。

customize.central.podAnnotations

すべての Central のデプロイメントにアタッチするカスタムアノテーションです。

customize.central.envVars

すべての Central コンテナーのカスタム環境変数です。

customize.scanner.labels

Scanner が作成するすべてのオブジェクトにアタッチするカスタムラベルです。

customize.scanner.annotations

Scanner が作成するすべてのオブジェクトにアタッチするカスタムアノテーションです。

customize.scanner.podLabels

すべての Scanner のデプロイメントにアタッチするカスタムラベルです。

customize.scanner.podAnnotations

すべての Scanner のデプロイメントにアタッチするカスタムアノテーションです。

customize.scanner.envVars

すべての Scanner コンテナーのカスタム環境変数です。

customize.scanner-db.labels

Scanner DB が作成するすべてのオブジェクトにアタッチするカスタムラベルです。

customize.scanner-db.annotations

Scanner DB が作成するすべてのオブジェクトにアタッチするカスタムアノテーションです。

customize.scanner-db.podLabels

すべての Scanner DB のデプロイメントにアタッチするカスタムラベルです。

customize.scanner-db.podAnnotations

すべての Scanner DB のデプロイメントにアタッチするカスタムアノテーションです。

customize.scanner-db.envVars

すべての Scanner DB コンテナーのカスタム環境変数です。

以下のように使用することもできます。

  • すべてのオブジェクトのラベルとアノテーションを指定するための customize.other.service/*.labels および customize.other.service/*.annotations パラメーターです。
  • または、特定のサービス名を指定します。たとえば、customize.other.service/central-loadbalancer.labelscustomize.other.service/central-loadbalancer.annotations をパラメーターとして指定し、それらの値を設定します。
4.2.2.2.8. 高度なカスタマイズ
重要

このセクションで指定されているパラメーターは、情報提供のみを目的としています。Red Hat は、namespace とリリース名が変更された Red Hat Advanced Cluster Security for Kubernetes インスタンスをサポートしていません。

パラメーター説明

allowNonstandardNamespace

true を使用して、Red Hat Advanced Cluster Security for Kubernetes をデフォルトの namespace stackrox 以外の namespace にデプロイします。

allowNonstandardReleaseName

true を使用して、Red Hat Advanced Cluster Security for Kubernetes をデフォルトの stackrox-central-services 以外のリリース名でデプロイします。

4.2.3. セントラルサービス Helm チャートのインストール

values-public.yaml ファイルと values-private.yaml ファイルを設定した後、central-services Helm チャートをインストールして、集中型コンポーネント (Central と Scanner) をデプロイします。

手順

  • 以下のコマンドを実行します。

    $ helm install -n stackrox --create-namespace \
      stackrox-central-services rhacs/central-services \
      -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> 1
    1
    -f オプションを使用して、YAML 設定ファイルのパスを指定します。

4.2.3.1. central-services Helm チャートをデプロイした後の設定オプションの変更

central-services Helm チャートをデプロイした後、任意の設定オプションに変更を加えることができます。

手順

  1. values-public.yaml および values-private.yaml 設定ファイルを新しい値で更新します。
  2. helm upgrade コマンドを実行し、-f オプションを使用して設定ファイルを指定します。

    $ helm upgrade -n stackrox \
      stackrox-central-services rhacs/central-services \
      -f <path_to_values_public.yaml> \
      -f <path_to_values_private.yaml>
    注記

    --set または --set-file パラメーターを使用して設定値を指定することもできます。ただし、これらのオプションは保存されないため、変更を加えるたびにすべてのオプションを手動で再度指定する必要があります。

4.2.4. init バンドルの生成

SecuredCluster リソースをクラスターにインストールする前に、init バンドルを作成する必要があります。SecuredCluster がインストールおよび設定されているクラスターは、このバンドルを使用して Central で認証します。

roxctl CLI を使用するか、RHACS ポータルから init バンドルを作成できます。

4.2.4.1. roxctl CLI を使用した init バンドルの生成

roxctl CLI を使用して、シークレットを含む init バンドルを作成できます。

前提条件

ROX_API_TOKEN および ROX_CENTRAL_ADDRESS 環境変数を設定しました。

  • ROX_API_TOKEN および ROX_CENTRAL_ADDRESS 環境変数を設定します。

    $ export ROX_API_TOKEN=<api_token>
    $ export ROX_CENTRAL_ADDRESS=<address>:<port_number>

手順

  • 次のコマンドを実行して、シークレットを含むクラスター初期化バンドルを生成します。

    $ roxctl -e "$ROX_CENTRAL_ADDRESS" \
      central init-bundles generate <cluster_init_bundle_name> \
      --output cluster_init_bundle.yaml
$ roxctl -e "$ROX_CENTRAL_ADDRESS" \
  central init-bundles generate <cluster_init_bundle_name> \
  --output-secrets cluster_init_bundle.yaml
重要

このバンドルにはシークレットが含まれているため、安全に保管してください。同じバンドルを使用して、複数のセキュリティー保護されたクラスターを設定できます。

4.2.4.2. RHACS ポータルを使用した init バンドルの生成

RHACS ポータルを使用して、シークレットを含む init バンドルを作成できます。

手順

  1. 公開方法に基づいて RHACS ポータルのアドレスを見つけます。

    1. ルートの場合。

      $ oc get route central -n stackrox
    2. ロードバランサーの場合。

      $ oc get service central-loadbalancer -n stackrox
    3. port forward の場合:

      1. 以下のコマンドを実行します。

        $ oc port-forward svc/central 18443:443 -n stackrox
      2. https://localhost:18443/ に移動します。
  2. RHACS ポータルで、Platform Configuration Integrations に移動します。
  3. Authentication Tokens セクションに移動し、Cluster Init Bundle をクリックする。
  4. Generate bundle をクリックする。
  5. クラスター初期化バンドルの名前を入力し、Generate をクリックします。
  6. Download Helm Values File をクリックして、生成されたバンドルをダウンロードします。
  7. 生成されたバンドルをダウンロードするには、Download Kubernetes Secret File をクリックします。
重要

このバンドルにはシークレットが含まれているため、セキュアに保管してください。同じバンドルを使用して、複数のセキュリティー保護されたクラスターを作成できます。

次の手順

  1. OpenShift Container Platform CLI を使用して、init バンドルを使用してリソースを作成します。
  2. モニターするすべてのクラスターに Red Hat Cluster Security for Kubernetes をインストールします。

4.2.5. secure-cluster-services Helm チャートの設定

このセクションでは、helm install および helm upgrade コマンドで使用できる Helm チャート設定パラメーターについて説明します。これらのパラメーターは、--set オプションを使用するか、YAML 設定ファイルを作成することで指定できます。

以下のファイルを作成して、Red Hat Advanced Cluster Security for Kubernetes をインストールするための Helm チャートを設定します。

  • パブリック設定ファイル values-public.yaml: このファイルを使用して、機密性の低いすべての設定オプションを保存します。
  • プライベート設定ファイル values-private.yaml: このファイルを使用して、機密性の高いすべての設定オプションを保存します。このファイルを安全に保管してください。
重要

Download Helm Values File Helm チャートを使用している間は、チャートの一部である values.yaml ファイルを変更しないでください。

4.2.5.1. 設定パラメーター

パラメーター説明

clusterName

クラスターの名前です。

centralEndpoint

ポート番号を含む、Central エンドポイントのアドレス。gRPC に対応していないロードバランサーを使用している場合は、エンドポイントアドレスの前に wss:// を付けて、WebSocket プロトコルを使用します。

sensor.endpoint

ポート番号を含む Sensor エンドポイントのアドレスです。

sensor.imagePullPolicy

Sensor コンテナーのイメージプルポリシーです。

sensor.serviceTLS.cert

Sensor が使用する内部サービス間の TLS 証明書です。

sensor.serviceTLS.key

Sensor が使用する内部サービス間 TLS 証明書キーです。

sensor.resources.requests.memory

Sensor コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。

sensor.resources.requests.cpu

Sensor コンテナーの CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。

sensor.resources.limits.memory

Sensor コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。

sensor.resources.limits.cpu

センサーコンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。

sensor.nodeSelector

ノードセレクターラベルを label-key:label-value として指定して、Sensor が指定されたラベルを持つノードでのみスケジュールするように強制します。

sensor.tolerations

ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Sensor の taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。

image.main.name

main イメージの名前です。

image.collector.name

Collector イメージの名前です。

image.main.registry

main イメージに使用しているレジストリーのアドレスです。

image.collector.registry

Collector イメージに使用しているレジストリーのアドレスです。

image.main.pullPolicy

main イメージのイメージプルポリシーです。

image.collector.pullPolicy

Collector イメージのイメージプルポリシーです。

image.main.tag

使用する main イメージのタグです。

image.collector.tag

使用する collector イメージのタグです。

collector.collectionMethod

EBPFKERNEL_MODULE、または NO_COLLECTION のいずれかです。

collector.imagePullPolicy

Collector コンテナーのイメージプルポリシーです。

collector.complianceImagePullPolicy

Compliance コンテナーのイメージプルポリシーです。

collector.disableTaintTolerations

false を指定すると、許容値が Collector に適用され、Collector Pod は taint のあるすべてのノードにスケジュールできます。true として指定すると、許容値は適用されず、Collector Pod は taint のあるノードにスケジュールされません。

collector.resources.requests.memory

Collector コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。

collector.resources.requests.cpu

Collector コンテナーの CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。

collector.resources.limits.memory

Collector コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。

collector.resources.limits.cpu

Collector コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。

collector.complianceResources.requests.memory

Compliance コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。

collector.complianceResources.requests.cpu

Compliance の CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。

collector.complianceResources.limits.memory

Compliance コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。

collector.complianceResources.limits.cpu

Compliance コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。

collector.serviceTLS.cert

Collector が使用する内部サービス間 TLS 証明書です。

collector.serviceTLS.key

Collector が使用する内部サービス間 TLS 証明書キーです。

admissionControl.listenOnCreates

この設定は、Kubernetes がワークロード作成イベントの AdmissionReview リクエストで Red Hat Advanced Cluster Security for Kubernetes に接続するように設定されているかどうかを制御します。

admissionControl.listenOnUpdates

このパラメーターを false に設定すると、Red Hat Advanced Cluster Security for Kubernetes は、Kubernetes API サーバーがオブジェクト更新イベントを送信しないように ValidatingWebhookConfiguration を作成します。オブジェクトの更新ボリュームは通常、オブジェクトが作成するボリュームよりも多いため、これを false のままにしておくと、アドミッションコントロールサービスのロードが制限され、アドミッションコントロールサービスが誤動作する可能性が低くなります。

admissionControl.listenOnEvents

この設定は、クラスターが Kubernetes exec および portforward イベントの AdmissionReview リクエストで Red Hat Advanced Cluster Security for Kubernetes に接続するように設定されているかどうかを制御します。Red Hat Advanced Cluster Security for Kubernetes は、OpenShift Container Platform 3.11 でこの機能をサポートしていません。

admissionControl.dynamic.enforceOnCreates

この設定は、Red Hat Advanced Cluster Security for Kubernetes がポリシーを評価するかどうかを制御します。無効にすると、すべての AdmissionReview リクエストが自動的に受け入れられます。

admissionControl.dynamic.enforceOnUpdates

この設定は、アドミッションコントロールサービスの動作を制御します。これを機能させるには、listenOnUpdatestrue として指定する必要があります。

admissionControl.dynamic.scanInline

このオプションを true に設定すると、アドミッションコントロールサービスは、アドミッションデシジョンを行う前にイメージスキャンをリクエストします。イメージスキャンには数秒かかるため、このオプションを有効にするのは、クラスターで使用されるすべてのイメージがデプロイ前にスキャンされることを確認できる場合のみです (たとえば、イメージビルド中の CI 統合によって)。このオプションは、RHACS ポータルの Contact image scanners オプションに対応しています。

admissionControl.dynamic.disableBypass

アドミッションコントローラーのバイパスを無効にするには、true に設定します。

admissionControl.dynamic.timeout

アドミッションレビューリクエストを評価する間、Red Hat Advanced Cluster Security for Kubernetes が待機する最大時間 (秒単位) です。これを使用して、イメージスキャンを有効にするときにリクエストのタイムアウトを設定します。イメージスキャンが指定された時間より長く実行される場合、Red Hat Advanced Cluster Security for Kubernetes はリクエストを受け入れます。

admissionControl.resources.requests.memory

Admission Control コンテナーのメモリーリクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。

admissionControl.resources.requests.cpu

Admission Control コンテナーの CPU リクエストです。このパラメーターを使用して、デフォルト値をオーバーライドします。

admissionControl.resources.limits.memory

Admission Control コンテナーのメモリー制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。

admissionControl.resources.limits.cpu

Admission Control コンテナーの CPU 制限です。このパラメーターを使用して、デフォルト値をオーバーライドします。

admissionControl.nodeSelector

ノードセレクターラベルを label-key:label-value として指定して、指定されたラベルを持つノードでのみ Admission Control をスケジュールするように強制します。

admissionControl.tolerations

ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、アドミッションコントロールの taint toleration キー、値、および effect を指定します。このパラメーターは、主にインフラストラクチャーノードに使用されます。

admissionControl.serviceTLS.cert

Admission Control が使用する内部サービス間 TLS 証明書です。

admissionControl.serviceTLS.key

Admission Control が使用する内部サービス間 TLS 証明書キーです。

registryOverride

このパラメーターを使用して、デフォルトの docker.io レジストリーをオーバーライドします。他のレジストリーを使用している場合は、レジストリーの名前を指定してください。

collector.disableTaintTolerations

false を指定すると、許容値が Collector に適用され、Collector Pod は taint のあるすべてのノードにスケジュールできます。true として指定した場合、許容値は適用されず、Collector Pod は taint のあるノードにスケジュールされません。

createUpgraderServiceAccount

true を指定して、sensor-upgrader アカウントを作成します。デフォルトでは、Red Hat Advanced Cluster Security for Kubernetes は、セキュアな各クラスターに sensor-upgrader と呼ばれるサービスアカウントを作成します。このアカウントは高い権限を持ちますが、アップグレードの時のみ使用されます。このアカウントを作成しない場合、Sensor に十分な権限がない場合は、将来のアップグレードを手動で完了する必要があります。

createSecrets

false を指定すると、Sensor、Collector、および Admission Controller のオーケストレーターシークレットの作成がスキップされます。

collector.slimMode

Collector のデプロイにスリムな Collector イメージを使用する場合は、true を指定します。slim Collector イメージを使用するには、一致する eBPF プローブまたはカーネルモジュールを提供する必要があります。Red Hat Advanced Cluster Security for Kubernetes をオフラインモードで実行している場合、スリム Collector が機能するには、stackrox.io からカーネルサポートパッケージをダウンロードして Central にアップロードする必要があります。それ以外の場合は、Central が https://collector-modules.stackrox.io/ でホストされているオンラインプローブリポジトリーにアクセスできることを確認する必要があります。

sensor.resources

Sensor のリソース仕様です。

admissionControl.resources

Admission Controller のリソース仕様です。

collector.resources

Collector のリソース仕様です。

collector.complianceResources

Collector の Compliance コンテナーのリソース仕様です。

exposeMonitoring

このオプションを true に設定すると、Red Hat Advanced Cluster Security for Kubernetes は、Sensor、Collector,、および Admission Controller のポート番号 9090 で Prometheus メトリクスエンドポイントを公開します。

auditLogs.disableCollection

このオプションを true に設定すると、Red Hat Advanced Cluster Security for Kubernetes は、設定マップとシークレットへのアクセスと変更を検出するために使用される監査ログ検出機能を無効にします。

scanner.disable

このオプションを false に設定すると、Red Hat Advanced Cluster Security for Kubernetes は、セキュアなクラスターに軽量な Scanner と Scanner DB をデプロイして、OpenShift Container Registry でイメージをスキャンできるようにします。Scanner の有効化は、OpenShift でのみサポートされます。デフォルト値は true です。

scanner.dbTolerations

ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。

scanner.replicas

Collector の Compliance コンテナーのリソース仕様です。

scanner.logLevel

このパラメーターを設定すると、Scanner のログレベルを変更できます。このオプションは、トラブルシューティングの目的でのみ使用してください。

scanner.autoscaling.disable

このオプションを true に設定すると、Red Hat Advanced Cluster Security for Kubernetes は Scanner のデプロイメントでの自動スケーリングを無効にします。

scanner.autoscaling.minReplicas

自動スケーリングのレプリカの最小数です。デフォルトは 2 です。

scanner.autoscaling.maxReplicas

自動スケーリングのレプリカの最大数です。デフォルトは 5 です。

scanner.nodeSelector

ノードセレクターラベルを label-key:label-value として指定して、指定されたラベルを持つノードでのみ Scanner をスケジュールするように強制します。

scanner.tolerations

ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner の taint toleration キー、値、および effect を指定します。

scanner.dbNodeSelector

ノードセレクターラベルを label-key:label-value として指定して、Scanner DB が指定されたラベルを持つノードでのみスケジュールするように強制します。

scanner.dbTolerations

ノードセレクターが taint されたノードを選択する場合は、このパラメーターを使用して、Scanner DB の taint toleration キー、値、および effect を指定します。

scanner.resources.requests.memory

Scanner コンテナーのメモリーリクエスト。このパラメーターを使用して、デフォルト値をオーバーライドします。

scanner.resources.requests.cpu

Scanner コンテナーの CPU リクエスト。このパラメーターを使用して、デフォルト値をオーバーライドします。

scanner.resources.limits.memory

Scanner コンテナーのメモリー制限。このパラメーターを使用して、デフォルト値をオーバーライドします。

scanner.resources.limits.cpu

Scanner コンテナーの CPU 制限。このパラメーターを使用して、デフォルト値をオーバーライドします。

scanner.dbResources.requests.memory

Scanner DB コンテナーのメモリーリクエスト。このパラメーターを使用して、デフォルト値をオーバーライドします。

scanner.dbResources.requests.cpu

Scanner DB コンテナーの CPU リクエスト。このパラメーターを使用して、デフォルト値をオーバーライドします。

scanner.dbResources.limits.memory

Scanner DB コンテナーのメモリー制限。このパラメーターを使用して、デフォルト値をオーバーライドします。

scanner.dbResources.limits.cpu

Scanner DB コンテナーの CPU 制限。このパラメーターを使用して、デフォルト値をオーバーライドします。

4.2.5.1.1. 環境変数

Sensor と Admission Controller の環境変数は、次の形式で指定できます。

customize:
  envVars:
    ENV_VAR1: "value1"
    ENV_VAR2: "value2"

customize 設定を使用すると、この Helm チャートによって作成されたすべてのオブジェクトのカスタム Kubernetes メタデータ (ラベルとアノテーション) と、ワークロードの追加の Pod ラベル、Pod アノテーション、コンテナー環境変数を指定できます。

より一般的なスコープ (たとえば、すべてのオブジェクト) で定義されたメタデータを、より狭いスコープ (たとえば、Sensor デプロイメントのみ) で定義されたメタデータでオーバーライドできるという意味で、設定は階層的です。

4.2.6. secure-cluster-services Helm チャートのインストール

values-public.yaml ファイルと values-private.yaml ファイルを設定した後、secured-cluster-services Helm チャートをインストールして、クラスターごと、およびノードごとのコンポーネント (Sensor、Admission Controller、Collector) をデプロイします。

注意

Unified Extensible Firmware Interface (UEFI) があり、Secure Boot が有効になっているシステムに Collector をインストールするには、カーネルモジュールが署名されておらず、UEFI ファームウェアが署名されていないパッケージをロードできないため、eBPF プローブを使用する必要があります。Collector は、開始時に Secure Boot ステータスを識別し、必要に応じて eBPF プローブに切り替えます。

手順

  • 以下のコマンドを実行します。

    $ helm install -n stackrox --create-namespace \
      stackrox-secured-cluster-services rhacs/secured-cluster-services \
      -f <name_of_cluster_init_bundle.yaml> \
      -f <path_to_values_public.yaml> -f <path_to_values_private.yaml> 1
    1
    -f オプションを使用して、YAML 設定ファイルのパスを指定します。
注記

継続的インテグレーション (CI) システムを使用して secured-cluster-services Helm チャートをデプロイするには、init バンドル YAML ファイルを環境変数として helm install コマンドに渡します。

$ helm install ... -f <(echo "$INIT_BUNDLE_YAML_SECRET") 1
1
base64 でエンコードされた変数を使用している場合は、代わりに helm install …​ -f <(echo "$INIT_BUNDLE_YAML_SECRET" | base64 --decode) コマンドを使用してください。

4.2.6.1. secure-cluster-services Helm チャートをデプロイした後の設定オプションの変更

secure-cluster-services Helm チャートをデプロイした後、任意の設定オプションに変更を加えることができます。

手順

  1. values-public.yaml および values-private.yaml 設定ファイルを新しい値で更新します。
  2. helm upgrade コマンドを実行し、-f オプションを使用して設定ファイルを指定します。

    $ helm upgrade -n stackrox \
      stackrox-secured-cluster-services rhacs/secured-cluster-services \
      --reuse-values \ 1
      -f <path_to_values_public.yaml> \
      -f <path_to_values_private.yaml>
    1
    --reuse-values パラメーターを指定する必要があります。指定しない場合、Helm upgrade コマンドは以前に設定されたすべての設定をリセットします。
    注記

    --set または --set-file パラメーターを使用して設定値を指定することもできます。ただし、これらのオプションは保存されないため、変更を加えるたびにすべてのオプションを手動で再度指定する必要があります。

4.2.7. インストールの検証

インストールが完了したら、いくつかの脆弱なアプリケーションを実行し、RHACS ポータルに移動して、セキュリティー評価とポリシー違反の結果を評価します。

注記

次のセクションにリストされているサンプルアプリケーションには重大な脆弱性が含まれており、Red Hat Advanced Cluster Security for Kubernetes のビルドおよびデプロイ時の評価機能を検証するように特別に設計されています。

インストールの検証

  1. 公開方法に基づいて RHACS ポータルのアドレスを見つけます。

    1. ルートの場合。

      $ oc get route central -n stackrox
    2. ロードバランサーの場合。

      $ oc get service central-loadbalancer -n stackrox
    3. port forward の場合:

      1. 以下のコマンドを実行します。

        $ oc port-forward svc/central 18443:443 -n stackrox
      2. https://localhost:18443/ に移動します。
  2. OpenShift Container Platform CLI を使用して、新しいプロジェクトを作成します。

    $ oc new-project test
  3. 重大な脆弱性を持ついくつかのアプリケーションを開始します。

    $ oc run shell --labels=app=shellshock,team=test-team \
      --image=vulnerables/cve-2014-6271 -n test
    $ oc run samba --labels=app=rce \
      --image=vulnerables/cve-2017-7494 -n test

Red Hat Advanced Cluster Security for Kubernetes は、これらのデプロイメントがクラスターに送信されるとすぐに、これらのデプロイメントを自動的にスキャンしてセキュリティーリスクとポリシー違反を検出します。RHACS ポータルに移動して、違反を表示します。デフォルトのユーザー名 admin と生成されたパスワードを使用して RHACS ポータルにログインできます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.