デプロイメントガイド
Red Hat Enterprise Linux および Red Hat OpenShift への Trusted Profile Analyzer サービスのデプロイ
概要
はじめに
Red Hat Trusted Profile Analyzer (RHTPA) デプロイメントガイドへようこそ。
このガイドは、Red Hat OpenShift Container Platform または Red Hat Enterprise Linux に Red Hat Trusted Profile Analyzer (RHTPA) ソフトウェアスタックをデプロイする際に役立ちます。新しい RHTPA デプロイメントの場合は、まず ターゲットのインストールプラットフォーム を選択することから開始します。
第1章 インストールプラットフォームの選択
システム管理者は、Red Hat Trusted Profile Analyzer (RHTPA) を実行するために 2 つの異なるインストールプラットフォームを選択できます。Amazon Web Services (AWS) または Red Hat の Helm チャートを備えた他のサービスプロバイダーを使用して、RHTPA を Red Hat OpenShift Container Platform にデプロイできます。Ansible を使用して RHTPA を Red Hat Enterprise Linux にデプロイすることもできます。
AWS 以外のインフラストラクチャーサービスを使用する場合は、互換性のある他のプロバイダーとの統合に関する支援を要求する サポートチケット を作成してください。
対象のインストールプラットフォームを選択します。
1.1. Ansible を使用して Trusted Profile Analyzer をインストールする
Red Hat が提供する Ansible Playbook を使用して、Red Hat Enterprise Linux に Red Hat Trusted Profile Analyzer (RHTPA) をインストールできます。この RHTPA の Ansible デプロイメントでは、独自の PostgreSQL データベース、OpenID Connect (OIDC) プロバイダー、および Simple Storage Service (S3) プロバイダーを指定できます。
Ansible を使用した Red Hat Enterprise Linux への RHTPA のデプロイは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。これらの機能により、今後の製品機能への早期アクセスが可能になり、お客様は開発プロセス中に機能をテストし、フィードバックを提供できるようになります。詳細は、Red Hat テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- Red Hat Enterprise Linux バージョン 9.3 以降。
- Red Hat Hybrid Cloud Console にアクセスする Red Hat ユーザーアカウント。
手順
- Red Hat 認証情報を使用して Red Hat Hybrid Cloud コンソール にログインします。
- ホームページから、Services ドロップダウンメニューをクリックし、Red Hat Ansible Automation Platform をクリックします。
- ナビゲーションメニューから Automation Hub を展開し、Collections をクリックします。
- 検索フィールドに rhtpa と入力し、Enter キーを押します。
- Red Hat Trusted Profile Analyzer タイルの trusted_profile_analyzer リンクをクリックします。
Documentation タブをクリックし、そこに記載されている手順に従って、Red Hat Enterprise Linux への RHTPA のインストールを完了します。
注記すべての設定パラメーターの詳細な概要は、Roles セクションの tpa_single_node リンクをクリックしてください。
1.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 バージョン 3.17 以上。
- Helm の Transport Layer Security (TLS) 証明書のプロビジョニング 機能。
次のサービスにアクセスできる AWS アカウント:
- Simple Storage Service (S3)
- PostgreSQL データベースインスタンスを使用するリレーショナルデータベースサービス (RDS)。
- 既存の Cognito ドメインを使用する Cognito。
次の バージョンなし の S3 バケット名が 作成されている。
-
trustify-UNIQUE_ID
重要このバケット名は、同じパーティション内のすべての AWS リージョンのすべての AWS アカウント間で一意である必要があります。バケットの命名規則 の詳細は、Amazon の S3 ドキュメントを参照してください。
-
-
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 情報で更新します。- REGION、USER_POOL_ID、および FRONTEND_CLIENT_ID および WALKER_CLIENT_ID は、関連する Amazon Cognito 情報に置き換えます。この情報は、AWS Cognito Console の User pool overview セクションで確認できます。
-
UNIQUE_ID は、
trustify-
S3 バケットの一意のバケット名に置き換えます。 - ファイルを保存して、エディターを終了します。
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
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 を設定します。
新規ファイルを開いて編集します。
例
$ vi values-importers.yaml
-
RHTPA インポーター値ファイルテンプレート をコピーして、新しい
values-importers.yaml
ファイルに貼り付けます。 - ファイルを保存して、エディターを終了します。
シェル環境を設定します。
構文
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 upgrade redhat-trusted-profile-analyzer openshift-helm-charts/redhat-trusted-profile-analyzer -n $NAMESPACE --values PATH_TO_VALUES_FILE --values PATH_TO_IMPORTER_VALUES_FILE --set-string appDomain=$APP_DOMAIN_URL
例
$ helm upgrade redhat-trusted-profile-analyzer openshift-helm-charts/redhat-trusted-profile-analyzer -n $NAMESPACE --values values-rhtpa-aws.yaml --values values-importers.yaml --set-string appDomain=$APP_DOMAIN_URL
注記この Helm チャートを何度も実行して、値ファイルから現在設定されている状態を適用できます。
インストールが完了すると、Cognito ユーザープールからのユーザーの認証情報を使用して RHTPA コンソールにログインできます。次のコマンドを実行すると、RHTPA コンソール URL を見つけることができます。
例
$ oc -n $NAMESPACE get route --selector app.kubernetes.io/name=server -o jsonpath='https://{.items[0].status.ingress[0].host}{"\n"}'
関連情報
- Amazon Simple Storage Service (S3) エンドポイントとクォータの ドキュメント。
- Amazon Cognito ドキュメント.
- Amazon Relational Database Service (RDS) ドキュメント。
- Amazon S3 バケットを作成している。
- 標準の Amazon SQS キューを作成している。
付録A AWS 値ファイルテンプレートを使用した Red Hat Trusted Profile Analyzer
RHTPA Helm チャートで使用するための、Amazon Web Services (AWS) 値ファイルテンプレートを使用した Red Hat の Trusted Profile Analyzer (RHTPA)。
テンプレート
appDomain: $APP_DOMAIN_URL ingress: className: openshift-default additionalAnnotations: "haproxy.router.openshift.io/timeout": "5m" authenticator: type: cognito storage: type: s3 region: REGION bucket: trustify-UNIQUE_ID accessKey: valueFrom: secretKeyRef: name: storage-credentials key: aws_access_key_id secretKey: valueFrom: secretKeyRef: name: storage-credentials key: aws_secret_access_key database: sslMode: require host: valueFrom: secretKeyRef: name: postgresql-credentials key: db.host port: valueFrom: secretKeyRef: name: postgresql-credentials key: db.port name: valueFrom: secretKeyRef: name: postgresql-credentials key: db.name username: valueFrom: secretKeyRef: name: postgresql-credentials key: db.user password: valueFrom: secretKeyRef: name: postgresql-credentials key: db.password createDatabase: name: valueFrom: secretKeyRef: name: postgresql-admin-credentials key: db.name username: valueFrom: secretKeyRef: name: postgresql-admin-credentials key: db.user password: valueFrom: secretKeyRef: name: postgresql-admin-credentials key: db.password migrateDatabase: username: valueFrom: secretKeyRef: name: postgresql-admin-credentials key: db.user password: valueFrom: secretKeyRef: name: postgresql-admin-credentials key: db.password modules: createDatabase: enabled: true migrateDatabase: enabled: true oidc: issuerUrl: https://cognito-idp.REGION.amazonaws.com/USER_POOL_ID clients: frontend: clientId: FRONTEND_CLIENT_ID cli: clientId: WALKER_CLIENT_ID clientSecret: valueFrom: secretKeyRef: name: oidc-cli key: client-secret
付録B Red Hat Trusted Profile Analyzer インポーター値ファイルテンプレート
RHTPA Helm チャートによって使用されるデフォルトのインポーターを含む、Red Hat の Trusted Profile Analyzer (RHTPA) 値ファイルテンプレート。
テンプレート
$schema: "charts/trustify/values.schema.json" appDomain: asdf tracing: {} modules: createImporters: enabled: true importers: redhat-sboms: sbom: description: All Red Hat SBOMs period: 1d source: https://access.redhat.com/security/data/sbom/beta/ keys: - https://access.redhat.com/security/data/97f5eac4.txt#77E79ABE93673533ED09EBE2DCE3823597F5EAC4 disabled: true fetchRetries: 50 redhat-csaf: csaf: description: All Red Hat CSAF data period: 1d source: redhat.com disabled: true fetchRetries: 50 cve: cve: description: CVE list v5 period: 1d source: https://github.com/CVEProject/cvelistV5 disabled: false osv-github: osv: description: GitHub Advisory Database period: 1d source: https://github.com/github/advisory-database path: advisories disabled: false