2.2. Amazon Web Services で Helm を使用した Trusted Profile Analyzer のインストール
Red Hat の Helm チャートを使用して、Red Hat の Trusted Profile Analyzer (RHTPA) サービスを OpenShift にインストールできます。この手順では、Helm のカスタマイズされた値ファイルを使用して Amazon Web Services (AWS) を RHTPA と統合する方法を説明します。
インストール後にシークレット値が変更されると、OpenShift は RHTPA を再デプロイします。
前提条件
バージョン 4.14 以降を実行している Red Hat OpenShift Container Platform クラスター。
- HTTPS を使用する公的に信頼された証明書を提供するための Ingress リソースのサポート。
- Helm の Transport Layer Security (TLS) 証明書のプロビジョニング 機能。
次のサービスにアクセスできる AWS アカウント:
- Simple Storage Service (S3)
- Simple Queue Service (SQS)
- PostgreSQL データベースインスタンスを使用するリレーショナルデータベースサービス (RDS)。
- 既存の Cognito ドメインを使用する Cognito。
-
bombastic-UNIQUE_ID
-
vexination-UNIQUE_ID
v11y-UNIQUE_ID
重要これらのバケット名は、同じパーティション内のすべての AWS リージョンのすべての AWS アカウントで一意である必要があります。バケットの命名規則 の詳細は、Amazon の S3 ドキュメントを参照してください。
-
次の標準の SQS キュー名を 作成 している。
-
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
-
-
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-aws.yaml
-
RHTPA 値ファイルテンプレート をコピーして、新しい
value-rhtpa-aws.yaml
ファイルに貼り付けます。 values-rhtpa-aws.yaml
ファイルを関連する AWS 情報で更新します。- REGIONAL_ENDPOINT は、Amazon S3 ストレージおよび Amazon SQS エンドポイント URL に置き換えます。
- COGNITO_DOMAIN_URL は Amazon Cognito URL に置き換えます。この情報は、AWS Cognito Console の App Integration タブにあります。
- REGION、USER_POOL_ID、および FRONTEND_CLIENT_ID および WALKER_CLIENT_ID は、関連する Amazon Cognito 情報に置き換えます。この情報は、AWS Cognito Console、User pool overview セクション、および App Integration タブの App clients and analytics セクションで確認できます。
-
UNIQUE_ID を
bombastic-
、vexination-
、v11y-
の一意のバケット名に置き換えます。 - ファイルを保存して、エディターを終了します。
AWS 認証情報を使用して S3 ストレージシークレットリソースを作成します。
構文
apiVersion: v1 kind: Secret metadata: name: storage-credentials namespace: PROJECT_NAME type: Opaque data: aws_access_key_id: AWS_ACCESS_KEY aws_secret_access_key: AWS_SECRET_KEY
例
$ cat <<EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: storage-credentials namespace: trusted-profile-analyzer type: Opaque data: aws_access_key_id: RHTPASTORAGE1EXAMPLE aws_secret_access_key: xBalrKUtnFEMI/K7RDENG/aPxRfzCYEXAMPLEKEY EOF
AWS 認証情報を使用して SQS イベントバスシークレットリソースを作成します。
構文
apiVersion: v1 kind: Secret metadata: name: event-bus-credentials namespace: PROJECT_NAME type: Opaque data: aws_access_key_id: AWS_ACCESS_KEY aws_secret_access_key: AWS_SECRET_KEY
例
$ cat <<EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: event-bus-credentials namespace: trusted-profile-analyzer type: Opaque data: aws_access_key_id: RHTPAEVENTBS1EXAMPLE aws_secret_access_key: mBaliKUtnFEMI/K6RDENG/aPxRfzCYEXAMPLEKEY EOF
OpenID Connect (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
Amazon RDS 認証情報を使用して、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: rds.us-east-1.amazonaws.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: rds.us-east-1.amazonaws.com db.name: rhtpadb db.user: admin db.password: example1234 db.port: 5432 EOF
- AWS マネジメントコンソールから、ポート 5432 を許可するように Amazon Virtual Private Cloud (VPC) security group を設定します。
シェル環境を設定します。
構文
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-aws.yaml --set-string appDomain=$APP_DOMAIN_URL
注記この Helm チャートを何度も実行して、値ファイルから現在設定されている状態を適用できます。
インストールが完了すると、Cognito ユーザープールからのユーザーの認証情報を使用して 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
関連情報
- Amazon Simple Storage Service (S3) エンドポイントとクォータの ドキュメント。
- Amazon Simple Queue Service (SQS) ドキュメント。
- Amazon Cognito ドキュメント.
- Amazon Relational Database Service (RDS) ドキュメント。
- Amazon S3 バケットを作成している。
- 標準の Amazon SQS キューを作成している。