2.2. 使用带有 Amazon Web Services 的 Helm 安装 Trusted Profile Analyzer


您可以使用红帽的 Helm chart 在 OpenShift 上安装红帽受信任的配置文件分析器(RHTPA)服务。此流程指导您使用 Helm 的自定义值文件将 Amazon Web Services (AWS)与 RHTPA 集成。

重要

如果机密值在安装后更改,OpenShift 会重新部署 RHTPA。

先决条件

  • 运行版本 4.14 或更高版本的 Red Hat OpenShift Container Platform 集群。

    • 支持 Ingress 资源来提供使用 HTTPS 的公开可信证书。
  • 为 Helm 置备传输层安全(TLS)证书 的功能。
  • 可访问以下服务的 AWS 帐户:

    • 简单存储服务(S3)
    • 简单队列服务(SQS)
    • 使用 PostgreSQL 数据库实例的关系数据库服务(RDS)
    • 带有现有 Cognito 域的 Cognito。
  • 创建了以下 未指定版本的 S3 存储桶名称: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html

    • 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 二进制文件。

流程

  1. 在工作站中打开一个终端,并使用命令行界面登录到 OpenShift:

    语法

    oc login --token=TOKEN --server=SERVER_URL_AND_PORT

    Example

    $ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443

    注意

    您可以从 OpenShift Web 控制台查找登录令牌和 URL,以在命令行中使用。登录 OpenShift Web 控制台。点您的用户名,然后点 Copy login 命令。再次提供您的用户名和密码,然后单击 Display Token 查看命令。

  2. 为 RHTPA 部署创建一个新项目:

    语法

    oc new-project PROJECT_NAME

    Example

    $ oc new-project trusted-profile-analyzer

  3. 打开新文件进行编辑:

    Example

    $ vi values-rhtpa-aws.yaml

  4. RHTPA 值文件模板 复制并粘贴到新 values-rhtpa-aws.yaml 文件中。
  5. 使用相关 AWS 信息更新 values-rhtpa-aws.yaml 文件。

    1. REGIONAL_ENDPOINT 替换为您的 Amazon S3 存储,以及 Amazon SQS 端点 URL。
    2. COGNITO_DOMAIN_URL 替换为您的 Amazon Cognito URL。您可以在 AWS Cognito 控制台 ( App Integration 选项卡)中找到此信息。
    3. REGIONUSER_POOL_IDFRONTEND_CLIENT_IDWALKER_CLIENT_ID 替换为您相关的 Amazon Cognito 信息。您可以在 AWS Cognito 控制台User pool overview 部分以及 App Integration 选项卡下的 App 客户端和分析 部分找到此信息。
    4. UNIQUE_ID 替换为您的 bombastic-vexination-v11y 的唯一存储桶名称。
    5. 保存文件并退出编辑器。
  6. 使用您的 AWS 凭证创建 S3 存储 secret 资源:

    语法

    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

    Example

    $ 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

  7. 使用 AWS 凭证创建 SQS 事件总线 secret 资源:

    语法

    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

    Example

    $ 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

  8. 创建 OpenID Connect (OIDC)指导客户端 secret 资源:

    语法

    apiVersion: v1
    kind: Secret
    metadata:
      name: oidc-walker
      namespace: PROJECT_NAME
    type: Opaque
    data:
      client-secret: SECRET

    Example

    $ 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

  9. 使用您的 Amazon RDS 凭据创建两个 PostgreSQL 数据库机密资源。

    1. PostgreSQL 标准用户 secret 资源:

      语法

      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

      Example

      $ 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

    2. PostgreSQL 管理员 secret 资源:

      语法

      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

      Example

      $ 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

    3. 在 AWS 管理控制台中配置 Amazon Virtual Private Cloud (VPC)安全组,以允许端口 5432。
  10. 设置 shell 环境:

    语法

    export NAMESPACE=PROJECT_NAME
    export APP_DOMAIN_URL=-$NAMESPACE.$(oc -n openshift-ingress-operator get ingresscontrollers.operator.openshift.io default -o jsonpath='{.status.domain}')

    Example

    $ 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}')

  11. 添加 OpenShift Helm Chart 仓库:

    Example

    $ helm repo add openshift-helm-charts https://charts.openshift.io/

  12. 从 Helm Chart 仓库获取最新的 chart 信息:

    Example

    $ helm repo update

  13. 运行 Helm Chart:

    语法

    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

    Example

    $ 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 Chart,以从值文件中应用当前配置的状态。

  14. 安装完成后,您可以使用来自 Cognito 用户池的用户凭据登录 RHTPA 控制台。您可以运行以下命令来查找 RHTPA 控制台 URL:

    Example

    $ oc -n $NAMESPACE get route --selector app.kubernetes.io/name=spog-ui -o jsonpath='https://{.items[0].status.ingress[0].host}{"\n"}'

  15. 调度的 Cron 作业每天都运行,为 RHTPA 收集最新的常见漏洞和风险(CVE)数据。您可以运行以下命令来手动启动这个 Cron 作业,而不是等待:

    Example

    $ oc -n $NAMESPACE create job --from=cronjob/v11y-walker v11y-walker-now

    Cron 作业完成后,删除此 Cron 作业:

    Example

    $ oc -n $NAMESPACE delete job v11y-walker-now

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.