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=TOKEN --server=SERVER_URL_AND_PORT
Copy to Clipboard Copied! 例
oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
$ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
Copy to Clipboard Copied! 注記OpenShift Web コンソールからコマンドラインで使用するログイントークンと URL を確認できます。OpenShift Web コンソールにログインします。ユーザー名をクリックし、Copy login command をクリックします。ユーザー名とパスワードをもう一度入力し、Display Token をクリックしてコマンドを表示します。
RHTPA デプロイメントの新規プロジェクトを作成します。
構文
oc new-project PROJECT_NAME
oc new-project PROJECT_NAME
Copy to Clipboard Copied! 例
oc new-project trusted-profile-analyzer
$ oc new-project trusted-profile-analyzer
Copy to Clipboard Copied! 新規ファイルを開いて編集します。
例
vi values-rhtpa-aws.yaml
$ vi values-rhtpa-aws.yaml
Copy to Clipboard Copied! -
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
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
Copy to Clipboard Copied! 例
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
$ 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
Copy to Clipboard Copied! 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
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
Copy to Clipboard Copied! 例
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
$ 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
Copy to Clipboard Copied! OpenID Connect (OIDC) ウォーカークライアントシークレットリソースを作成します。
構文
apiVersion: v1 kind: Secret metadata: name: oidc-walker namespace: PROJECT_NAME type: Opaque data: client-secret: SECRET
apiVersion: v1 kind: Secret metadata: name: oidc-walker namespace: PROJECT_NAME type: Opaque data: client-secret: SECRET
Copy to Clipboard Copied! 例
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
$ 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
Copy to Clipboard Copied! 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
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
Copy to Clipboard Copied! 例
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
$ 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
Copy to Clipboard Copied! 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
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
Copy to Clipboard Copied! 例
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
$ 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
Copy to Clipboard Copied! - 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=PROJECT_NAME export APP_DOMAIN_URL=-$NAMESPACE.$(oc -n openshift-ingress-operator get ingresscontrollers.operator.openshift.io default -o jsonpath='{.status.domain}')
Copy to Clipboard Copied! 例
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}')
$ 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}')
Copy to Clipboard Copied! OpenShift Helm チャートリポジトリーを追加します。
例
helm repo add openshift-helm-charts https://charts.openshift.io/
$ helm repo add openshift-helm-charts https://charts.openshift.io/
Copy to Clipboard Copied! Helm チャートリポジトリーから最新のチャート情報を取得します。
例
helm repo update
$ helm repo update
Copy to Clipboard Copied! 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 PATH_TO_VALUES_FILE --set-string appDomain=$APP_DOMAIN_URL
Copy to Clipboard Copied! 例
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 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
Copy to Clipboard Copied! 注記この 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"}'
$ oc -n $NAMESPACE get route --selector app.kubernetes.io/name=spog-ui -o jsonpath='https://{.items[0].status.ingress[0].host}{"\n"}'
Copy to Clipboard Copied! スケジュールされた Cron ジョブが毎日実行され、RHTPA の最新の Common Vulnerabilities and Exposures (CVE) データを収集します。スケジュールされたジョブが実行されるまで待つのではなく、以下のコマンドを実行してこの Cron ジョブを手動で開始できます。
例
oc -n $NAMESPACE create job --from=cronjob/v11y-walker v11y-walker-now
$ oc -n $NAMESPACE create job --from=cronjob/v11y-walker v11y-walker-now
Copy to Clipboard Copied! Cron ジョブが完了したら、この Cron ジョブを削除します。
例
oc -n $NAMESPACE delete job v11y-walker-now
$ oc -n $NAMESPACE delete job v11y-walker-now
Copy to Clipboard Copied!