2.3. 他のサービスで Helm を使用した Trusted Profile Analyzer のインストール
Red Hat の Helm チャートを使用して、Red Hat の Trusted Profile Analyzer (RHTPA) サービスを OpenShift にインストールできます。Simple Storage Service (S3) 互換のストレージインフラストラクチャー、OpenID Connect (OIDC) プロバイダー、PostgreSQL データベースが必要であり、Red Hat AMQ Streams for OpenShift を使用する必要があります。この手順では、Helm のカスタマイズされた値ファイルを使用して、さまざまなサービスを RHTPA と統合する方法について説明します。
インストール後にシークレット値が変更されると、OpenShift は RHTPA を再デプロイします。
前提条件
バージョン 4.14 以降を実行している Red Hat OpenShift Container Platform クラスター。
- HTTPS を使用する公的に信頼された証明書を提供するための Ingress リソースのサポート。
次のバージョンなしの S3 バケット名を作成します。
-
bombastic-default
-
vexination-default
-
v11y-default
-
次のトピック名を持つ AMQ Streams on OpenShift サービスが作成されている。
-
bombastic-failed-default
-
bombastic-indexed-default
-
bombastic-stored-default
-
vexination-failed-default
-
vexination-indexed-default
-
vexination-stored-default
-
v11y-failed-default
-
v11y-indexed-default
-
v11y-stored-default
-
- 認証用の OIDC プロバイダー。
- 新しい PostgreSQL データベース。
-
cluster-admin
ロールでの OpenShift Web コンソールへのアクセス。 -
oc
およびhelm
バイナリーがインストールされたワークステーションがある。
手順
ワークステーションでターミナルを開き、コマンドラインインターフェイスを使用して OpenShift にログインします。
構文
oc login --token=TOKEN --server=SERVER_URL_AND_PORT
例
$ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
注記OpenShift Web コンソールからコマンドラインで使用するログイントークンと URL を確認できます。OpenShift Web コンソールにログインします。ユーザー名をクリックし、Copy login command をクリックします。ユーザー名とパスワードをもう一度入力し、Display Token をクリックしてコマンドを表示します。
RHTPA デプロイメントの新規プロジェクトを作成します。
構文
oc new-project PROJECT_NAME
例
$ oc new-project trusted-profile-analyzer
新規ファイルを開いて編集します。
例
$ vi values-rhtpa.yaml
-
RHTPA 値ファイルテンプレート をコピーして、新しい
values-rhtpa.yaml
ファイルに貼り付けます。 使用予定の情報で
values-rhtpa.yaml
ファイルを更新します。- S3_ENDPOINT_URL は、関連する S3 ストレージ情報に置き換えます。
- AMQ_ENDPOINT_URL、および USER_NAME は、関連する AMQ Streams 情報に置き換えます。
- OIDC_ISSUER_URL、FRONTEND_CLIENT_ID、および WALKER_CLIENT_ID は、関連する OIDC 情報に置き換えます。
- ファイルを保存して、エディターを終了します。
認証情報を使用して S3 ストレージシークレットリソースを作成します。
構文
apiVersion: v1 kind: Secret metadata: name: s3-credentials namespace: PROJECT_NAME type: Opaque data: user: USER_NAME password: PASSWORD
例
$ cat <<EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: s3-credentials namespace: trusted-profile-analyzer type: Opaque data: user: root password: example123 EOF
認証情報を使用して AMQ Streams シークレットリソースを作成します。
構文
apiVersion: v1 kind: Secret metadata: name: kafka-credentials namespace: PROJECT_NAME type: Opaque data: client_password: PASSWORD
例
$ cat <<EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: kafka-credentials namespace: trusted-profile-analyzer type: Opaque data: client_password: example123 EOF
OIDC ウォーカークライアントシークレットリソースを作成します。
構文
apiVersion: v1 kind: Secret metadata: name: oidc-walker namespace: PROJECT_NAME type: Opaque data: client-secret: SECRET
例
$ cat <<EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: oidc-walker namespace: trusted-profile-analyzer type: Opaque data: client-secret: 5460cc91-4e20-4edd-881c-b15b169f8a79 EOF
データベース認証情報を使用して、2 つの PostgreSQL データベースシークレットリソースを作成します。
PostgreSQL 標準ユーザーシークレットリソース:
構文
apiVersion: v1 kind: Secret metadata: name: postgresql-credentials namespace: PROJECT_NAME type: Opaque data: db.host: DB_HOST db.name: DB_NAME db.user: USERNAME db.password: PASSWORD db.port: PORT
例
$ cat <<EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: postgresql-credentials namespace: trusted-profile-analyzer type: Opaque data: data: db.host: postgresql.example.com db.name: rhtpadb db.user: jdoe db.password: example1234 db.port: 5432 EOF
PostgreSQL 管理者のシークレットリソース:
構文
apiVersion: v1 kind: Secret metadata: name: postgresql-admin-credentials namespace: PROJECT_NAME type: Opaque data: db.host: DB_HOST db.name: DB_NAME db.user: USERNAME db.password: PASSWORD db.port: PORT
例
$ cat <<EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: postgresql-admin-credentials namespace: trusted-profile-analyzer type: Opaque data: data: db.host: postgresql.example.com db.name: rhtpadb db.user: admin db.password: example1234 db.port: 5432 EOF
シェル環境を設定します。
構文
export NAMESPACE=PROJECT_NAME export APP_DOMAIN_URL=-$NAMESPACE.$(oc -n openshift-ingress-operator get ingresscontrollers.operator.openshift.io default -o jsonpath='{.status.domain}')
例
$ export NAMESPACE=trusted-profile-analyzer $ export APP_DOMAIN_URL=-$NAMESPACE.$(oc -n openshift-ingress-operator get ingresscontrollers.operator.openshift.io default -o jsonpath='{.status.domain}')
OpenShift Helm チャートリポジトリーを追加します。
例
$ helm repo add openshift-helm-charts https://charts.openshift.io/
Helm チャートリポジトリーから最新のチャート情報を取得します。
例
$ helm repo update
Helm チャートを実行します。
構文
helm install redhat-trusted-profile-analyzer openshift-helm-charts/redhat-trusted-profile-analyzer -n $NAMESPACE --values PATH_TO_VALUES_FILE --set-string appDomain=$APP_DOMAIN_URL
例
$ helm install redhat-trusted-profile-analyzer openshift-helm-charts/redhat-trusted-profile-analyzer -n $NAMESPACE --values values-rhtpa.yaml --set-string appDomain=$APP_DOMAIN_URL
注記この Helm チャートを何度も実行して、値ファイルから現在設定されている状態を適用できます。
インストールが完了したら、OIDC プロバイダーからのユーザーの認証情報を使用して RHTPA コンソールにログインできます。次のコマンドを実行すると、RHTPA コンソール URL を見つけることができます。
例
$ oc -n $NAMESPACE get route --selector app.kubernetes.io/name=spog-ui -o jsonpath='https://{.items[0].status.ingress[0].host}{"\n"}'
スケジュールされた Cron ジョブが毎日実行され、RHTPA の最新の Common Vulnerabilities and Exposures (CVE) データを収集します。スケジュールされたジョブが実行されるまで待つのではなく、以下のコマンドを実行してこの Cron ジョブを手動で開始できます。
例
$ oc -n $NAMESPACE create job --from=cronjob/v11y-walker v11y-walker-now
Cron ジョブが完了したら、この Cron ジョブを削除します。
例
$ oc -n $NAMESPACE delete job v11y-walker-now