• Русский
  • Установка Alauda Security Service для StackRox

    В этом руководстве приведены пошаговые инструкции по установке Alauda Security Service для StackRox.

    Требования к установке

    • Архитектура: amd64
    • Версия ядра: >=5.8
    • Требования к ресурсам:
      • CPU: >=4
      • Память: >=8GB
    • PostgreSQL: >=13
    • TLS-сертификат

    Загрузка и импорт

    1. Скачайте Alauda Security Service для StackRox с портала Custom.

    2. Используйте инструмент Violet для загрузки плагина на платформу.

      violet push stackrox-operator.vx.x.x.tgz --platform-address https://192.168.0.1 --platform-username <user> --platform-password <password>

    Установка StackRox Operator

    1. Войдите на платформу и перейдите на страницу Administrator.

    2. В левой навигационной панели выберите Marketplace -> OperatorHub, чтобы перейти на страницу OperatorHub.

    3. Найдите Alauda Security Service для StackRox, нажмите Install для перехода на страницу установки.

    Параметры конфигурации:

    ПараметрРекомендуемая конфигурация
    ChannelКанал по умолчанию — alpha.
    VersionВыберите желаемую версию для установки.
    Installation ModeCluster: Все пространства имён в кластере используют одного Operator для создания и управления экземплярами, что снижает использование ресурсов.
    Installation LocationВыберите Recommended: если его нет, он будет создан автоматически.
    Upgrade StrategyManual: при наличии новой версии в OperatorHub требуется ручное подтверждение для обновления Operator до последней версии.
    1. На странице Install Operator выберите Default Configuration, затем нажмите Install для завершения установки Alauda Security Service для StackRox.

    Установка Central Service

    INFO

    Некоторые компоненты сервиса StackRox Central требуют значительных ресурсов. Рекомендуется запускать их на infra-нодах и настраивать nodeSelector и tolerations, чтобы они запускались только на этих нодах. Если вы оцениваете продукт и не настроили infra-ноды, вы можете убрать эти настройки, чтобы компоненты запускались на всех нодах.

    Для рекомендаций по планированию infra-нод смотрите Cluster Node Planning.

    Процедура перед установкой

    1. Создайте секрет central-db-password:
      Сохраните пароль в элементе данных password.

      kubectl create secret generic central-db-password \
        --from-literal=password=<central db password> \
        -n stackrox-operator
    2. Включите Ingress и настройте доменный сертификат:
      Создайте TLS-секрет с вашим сертификатом и ключом.

      kubectl create secret tls central-ingress-tls \
        --cert=<path/to/tls.crt> \
        --key=<path/to/tls.key> \
        -n stackrox-operator

    Установка через UI

    1. Войдите на платформу и перейдите на страницу Administrator.

    2. В левой навигационной панели выберите Marketplace -> OperatorHub, чтобы перейти на страницу OperatorHub.

    3. Найдите Alauda Security Service для StackRox, нажмите на карточку для перехода на страницу Details.

    4. Перейдите на вкладку All Instances, нажмите Create и выберите Central для перехода на страницу Create Central.

    5. Заполните параметры конфигурации согласно подсказкам.

    6. Нажмите Create для завершения установки Central Service.


    Установка через YAML

    Примените следующий YAML в целевом кластере:

    # YAML Deployment Method for StackRox Operator
    # Create a StackRox Central Services instance
    ---
    apiVersion: platform.stackrox.io/v1alpha1
    kind: Central
    metadata:
      name: stackrox-central-services
      namespace: stackrox-operator
      labels: {}
      annotations:
        cpaas.io/display-name: ""
    spec:
      egress:
        connectivityPolicy: Online  # Supported: Online/Offline. Offline mode requires manual upload of the vulnerability database.
      central:
        exposure:
          ingress:
            enabled: true
            host: example.com
            tls:
              secretName: central-ingress-tls
          nodePort:
            enabled: true
          loadBalancer:
            enabled: false
        db:
          passwordSecret:
            name: central-db-password
          connectionString: host=central-db.stackrox port=5432 user=postgres sslmode=require  # Specify the database connection string
    
        # Tolerations Optional
        # If you want this component to only run on specific nodes, you can configure tolerations of tainted nodes.
        tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/infra
          value: reserved
          operator: Equal
        nodeSelector:
          node-role.kubernetes.io/infra: ""
      
    
      # scannerV4 Optional
      scannerV4:
        db:
          tolerations:
          - effect: NoSchedule
            key: node-role.kubernetes.io/infra
            value: reserved
            operator: Equal
    
          nodeSelector:
            node-role.kubernetes.io/infra: ""
    
        indexer:
          scaling:
            autoScaling: Enabled
            maxReplicas: 5
            minReplicas: 2
            replicas: 3
          tolerations:
            - effect: NoSchedule
            key: node-role.kubernetes.io/infra
            value: reserved
            operator: Equal
          nodeSelector:
            node-role.kubernetes.io/infra: ""
    
        matcher:
          scaling:
            autoScaling: Enabled
            maxReplicas: 5
            minReplicas: 1
            replicas: 3
          tolerations:
          - effect: NoSchedule
            key: node-role.kubernetes.io/infra
            value: reserved
            operator: Equal
          nodeSelector:
            node-role.kubernetes.io/infra: ""
    
      # Ingress domain certificate CA or cert. If ingress is not enabled, no configuration is needed.
      tls:
        additionalCAs:
          - content: |-
              -----BEGIN CERTIFICATE-----
              MIIB0TCCAXigAwIBAgIUXvN2ovk16V6+7jUAJpYdEXo1K4UwCgYIKoZIzj0EAwIw
              RzEnMCUGA1UEAxMeU3RhY2tSb3ggQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRwwGgYD
              VQQFExM2MDYyNzAwMjg3MTkxNjM0NDY4MB4XDTI1MDkyNTA2MjQwMFoXDTMwMDky
              NDA2MjQwMFowRzEnMCUGA1UEAxMeU3RhY2tSb3ggQ2VydGlmaWNhdGUgQXV0aG9y
              aXR5MRwwGgYDVQQFExM2MDYyNzAwMjg3MTkxNjM0NDY4MFkwEwYHKoZIzj0CAQYI
              KoZIzj0DAQcDQgAE57RYqus1/v3VcJ/fP+vG4flQ8uunyx2lguQ9cT0VYOZJnKDh
              FQ/58jgEPeHGgu+wU2Mvjumc7qFe1gP/jSuW66NCMEAwDgYDVR0PAQH/BAQDAgEG
              MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKxLpgvy2HnDYZTQw2nIiLdR3fxh
              MAoGCCqGSM49BAMCA0cAMEQCID2uapFJnsdM4BGmnRCx7HqUrwrpBEjXZ98atcKO
              IDCXAiAwuYzXAIMLNfLRakIz+hXxvvGY3+A5ZeRARZQVPatTaQ==
              -----END CERTIFICATE-----
            name: additional-ca

    Настройки Central

    ПараметрОписание
    central.nodeSelectorЕсли nodeSelector выбирает помеченные (tainted) ноды, используйте этот параметр для указания toleration с ключом, значением и эффектом для Central. Этот параметр в основном используется для инфраструктурных нод.
    central.tolerationsЕсли nodeSelector выбирает помеченные (tainted) ноды, используйте этот параметр для указания toleration с ключом, значением и эффектом для Central. Этот параметр в основном используется для инфраструктурных нод.
    central.exposeMonitoringУкажите true, чтобы открыть endpoint метрик Prometheus для Central на порту 9090.
    central.image.registryПользовательский реестр, который переопределяет глобальный параметр image.registry для образа Central.
    central.image.nameПользовательское имя образа, которое переопределяет имя образа Central по умолчанию (main).
    central.image.tagПользовательский тег образа, который переопределяет тег по умолчанию для образа Central. Если вы указываете собственный тег образа при новой установке, при обновлении до новой версии необходимо вручную увеличить этот тег, выполнив команду helm upgrade. Если вы зеркалите образы Central в собственном реестре, не изменяйте оригинальные теги образов.
    central.image.fullRefПолная ссылка, включая адрес реестра, имя образа и тег образа для Central. Установка этого параметра переопределяет параметры central.image.registry, central.image.name и central.image.tag.
    central.resources.requests.memoryЗапрос памяти для Central.
    central.resources.requests.cpuЗапрос CPU для Central.
    central.resources.limits.memoryЛимит памяти для Central.
    central.resources.limits.cpuЛимит CPU для Central.
    central.exposure.loadBalancer.enabledУкажите true, чтобы открыть Central через load balancer.
    central.exposure.loadBalancer.portНомер порта для открытия Central. Порт по умолчанию — 443.
    central.exposure.nodePort.enabledУкажите true, чтобы открыть Central через node port сервис.
    central.exposure.nodePort.portНомер порта для открытия Central. Если этот параметр пропущен, Alauda Container Platform автоматически назначит номер порта. Red Hat рекомендует не указывать номер порта, если вы открываете StackRox через node port.
    central.exposure.ingress.enabledУкажите true, чтобы открыть Central через ingress. Если установлено false, все настройки ingress отключаются. Этот параметр доступен только для кластеров Alauda Container Platform.
    central.exposure.ingress.hostИспользуйте этот параметр для указания пользовательского hostname для маршрута passthrough Central. Оставьте пустым, чтобы принять значение по умолчанию, предоставляемое Alauda Container Platform. Этот параметр доступен только для кластеров Alauda Container Platform.
    central.exposure.ingress.ingressClassNameУкажите пользовательское имя ingress-класса для ingress Central.
    central.exposure.ingress.tls.secretNameНастройте ingress Central с TLS-секретом.
    central.db.passwordSecret.nameУкажите секрет, содержащий пароль в элементе данных "password".
    central.db.connectionStringУкажите строку подключения, соответствующую базе данных, управляемой в другом месте.
    scannerV4.db.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить tolerations для помеченных нод.
    scannerV4.db.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить nodeSelector здесь.
    scannerV4.indexer.scaling.autoScalingПри включении количество реплик компонента управляется динамически в зависимости от нагрузки в пределах указанных ниже ограничений.
    scannerV4.indexer.scaling.maxReplicas
    scannerV4.indexer.scaling.minReplicas
    scannerV4.indexer.scaling.replicasПри отключённом автоскейлинге количество реплик всегда будет настроено в соответствии с этим значением.
    scannerV4.indexer.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить tolerations для помеченных нод.
    scannerV4.indexer.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить nodeSelector здесь.
    scannerV4.matcher.scaling.autoScalingПри включении количество реплик компонента управляется динамически в зависимости от нагрузки в пределах указанных ниже ограничений.
    scannerV4.matcher.scaling.maxReplicas
    scannerV4.matcher.scaling.minReplicas
    scannerV4.matcher.scaling.replicasПри отключённом автоскейлинге количество реплик всегда будет настроено в соответствии с этим значением.
    scannerV4.matcher.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить tolerations для помеченных нод.
    scannerV4.matcher.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить nodeSelector здесь.
    tls.additionalCAsПозволяет указать дополнительные доверенные корневые CA.

    Доступ к консоли Central

    • Адрес: https://example.com (адрес хоста ingress Central)

    • Начальная учётная запись: admin

    • Начальный пароль: Начальный пароль хранится в секрете stackrox central-htpasswd.

      kubectl -n stackrox-operator get secret central-htpasswd -o go-template='{{index .data "password" | base64decode}}'

    Установка Cluster Service

    Процедура перед установкой кластера

    1. Скачайте CLI-инструмент согласно руководству Download CLI с платформы.

    2. Выполните команду для генерации сертификата доступа к кластеру:

      roxctl central crs generate <cluster name> --output crs.yaml --endpoint <stackrox central address> --password <central admin password>

      Пароль можно получить из секрета central-htpasswd.

    3. Создайте CR YAML для Secured Cluster

      kubectl apply -f crs.yaml -n stackrox-operator

    Установка кластера через UI

    1. Войдите на платформу и перейдите на страницу Administrator.

    2. В левой навигационной панели выберите Marketplace -> OperatorHub, чтобы перейти на страницу OperatorHub.

    3. Найдите Alauda Security Service для StackRox, нажмите на карточку для перехода на страницу Details.

    4. Перейдите на вкладку All Instances, нажмите Create и выберите Central для перехода на страницу Create Cluster Service.

    5. Заполните параметры конфигурации согласно подсказкам.

    6. Нажмите Create для завершения установки Cluster Service.


    Установка кластера через YAML

    Примените следующий YAML в целевом кластере:

    ---
    # Create a StackRox Secured Cluster Services instance
    ---
    apiVersion: platform.stackrox.io/v1alpha1
    kind: SecuredCluster
    metadata:
      name: stackrox-secured-cluster-services
      namespace: stackrox-operator
      labels: {}
      annotations:
        cpaas.io/display-name: ""
    spec:
      clusterName: business-1
      centralEndpoint: wss://example.com:443  # Specify the address of StackRox Central Services. If it is in the same cluster as Central, configuration may not be necessary.
    
      # AdmissionControl Optional
      admissionControl:
        replicas: 3
        tolerations:
          - effect: NoSchedule
            key: node-role.kubernetes.io/infra
            value: reserved
            operator: Equal
        nodeSelector:
          node-role.kubernetes.io/infra: ""
    
      # Sensor Optional
      sensor:
        tolerations:
          - effect: NoSchedule
            key: node-role.kubernetes.io/infra
            value: reserved
            operator: Equal
        nodeSelector:
          node-role.kubernetes.io/infra: ""
    
      # Ingress domain certificate CA or cert. If ingress is not enabled, no configuration is needed.
      tls: 
        additionalCAs:
          content: |-
            -----BEGIN CERTIFICATE-----
            MIIB0TCCAXigAwIBAgIUXvN2ovk16V6+7jUAJpYdEXo1K4UwCgYIKoZIzj0EAwIw
            RzEnMCUGA1UEAxMeU3RhY2tSb3ggQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRwwGgYD
            VQQFExM2MDYyNzAwMjg3MTkxNjM0NDY4MB4XDTI1MDkyNTA2MjQwMFoXDTMwMDky
            NDA2MjQwMFowRzEnMCUGA1UEAxMeU3RhY2tSb3ggQ2VydGlmaWNhdGUgQXV0aG9y
            aXR5MRwwGgYDVQQFExM2MDYyNzAwMjg3MTkxNjM0NDY4MFkwEwYHKoZIzj0CAQYI
            KoZIzj0DAQcDQgAE57RYqus1/v3VcJ/fP+vG4flQ8uunyx2lguQ9cT0VYOZJnKDh
            FQ/58jgEPeHGgu+wU2Mvjumc7qFe1gP/jSuW66NCMEAwDgYDVR0PAQH/BAQDAgEG
            MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKxLpgvy2HnDYZTQw2nIiLdR3fxh
            MAoGCCqGSM49BAMCA0cAMEQCID2uapFJnsdM4BGmnRCx7HqUrwrpBEjXZ98atcKO
            IDCXAiAwuYzXAIMLNfLRakIz+hXxvvGY3+A5ZeRARZQVPatTaQ==
            -----END CERTIFICATE-----
          name: additional-ca
     

    Настройки Secured Cluster

    ПараметрОписание
    clusterNameУникальное имя этого кластера, которое будет отображаться в UI StackRox. Внимание: после установки имени изменить его нельзя. Для регистрации кластера с новым именем необходимо удалить и создать объект заново.
    centralEndpointАдрес подключения к экземпляру StackRox Central, включая номер порта. Если порт не указан и в endpoint указан протокол https://, то по умолчанию используется порт 443. Если используется load balancer без поддержки gRPC, используйте протокол WebSocket, добавив префикс wss:// к адресу endpoint. Внимание: если оставить пустым, Sensor попытается подключиться к Central в том же namespace.
    admissionControl.replicasКоличество реплик пода admission control.
    admissionControl.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить tolerations для помеченных нод.
    admissionControl.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить nodeSelector здесь.
    sensor.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить tolerations для помеченных нод.
    sensor.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определённых нодах, можно настроить nodeSelector здесь.
    tls.additionalCAsПозволяет указать дополнительные доверенные корневые CA.