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

    Это руководство содержит пошаговые инструкции по установке Alauda Security Service for StackRox.

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

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

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

    1. Скачайте Alauda Security Service for StackRox из портала.

    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 for StackRox и нажмите Install, чтобы перейти на страницу установки.

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

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

    Установка Central Service

    INFO

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

    Рекомендации по планированию infra-узлов см. в Планирование узлов кластера.

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

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

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

      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 for 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 are 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 Settings

    ПараметрОписание
    central.nodeSelectorЕсли selector узлов выбирает узлы с taint, используйте этот параметр, чтобы указать для Central key, value и effect toleration для taint. Этот параметр в основном используется для infrastructure-узлов.
    central.tolerationsЕсли selector узлов выбирает узлы с taint, используйте этот параметр, чтобы указать для Central key, value и effect toleration для taint. Этот параметр в основном используется для infrastructure-узлов.
    central.exposeMonitoringУкажите true, чтобы открыть endpoint метрик Prometheus для Central на порту 9090.
    central.image.registryПользовательский registry, который переопределяет глобальный параметр image.registry для образа Central.
    central.image.nameПользовательское имя образа, которое переопределяет стандартное имя образа Central (main).
    central.image.tagПользовательский тег образа, который переопределяет стандартный тег для образа Central. Если вы указываете собственный тег образа при новой установке, при обновлении до новой версии с помощью команды helm upgrade этот тег нужно увеличивать вручную. Если вы зеркалируете образы Central в собственном registry, не изменяйте исходные теги образов.
    central.image.fullRefПолная ссылка, включая адрес registry, имя образа и тег образа для 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. Если не задавать этот параметр, платформа автоматически назначит номер порта.
    central.exposure.ingress.enabledИспользуйте true, чтобы открыть Central с помощью ingress. Если установлено значение false, все настройки ingress отключаются.
    central.exposure.ingress.hostИспользуйте этот параметр, чтобы указать собственное имя хоста для ingress Central. Оставьте значение пустым, чтобы принять значение по умолчанию, предоставленное платформой.
    central.exposure.ingress.ingressClassNameУкажите собственное имя класса ingress для ingress Central.
    central.exposure.ingress.tls.secretNameНастройте ingress Central с TLS secret.
    central.db.passwordSecret.nameУкажите secret, который содержит пароль в элементе данных "password".
    central.db.connectionStringУкажите строку подключения, соответствующую базе данных, управляемой извне.
    scannerV4.db.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно настроить tolerations для узлов с taint.
    scannerV4.db.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно задать здесь selector узлов.
    scannerV4.indexer.scaling.autoScalingЕсли включено, количество реплик компонента динамически управляется на основе нагрузки в пределах указанных ниже ограничений.
    scannerV4.indexer.scaling.maxReplicas
    scannerV4.indexer.scaling.minReplicas
    scannerV4.indexer.scaling.replicasКогда автомасштабирование отключено, количество реплик всегда настраивается в соответствии с этим значением.
    scannerV4.indexer.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно настроить tolerations для узлов с taint.
    scannerV4.indexer.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно задать здесь selector узлов.
    scannerV4.matcher.scaling.autoScalingЕсли включено, количество реплик компонента динамически управляется на основе нагрузки в пределах указанных ниже ограничений.
    scannerV4.matcher.scaling.maxReplicas
    scannerV4.matcher.scaling.minReplicas
    scannerV4.matcher.scaling.replicasКогда автомасштабирование отключено, количество реплик всегда настраивается в соответствии с этим значением.
    scannerV4.matcher.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно настроить tolerations для узлов с taint.
    scannerV4.matcher.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно задать здесь selector узлов.
    tls.additionalCAsПозволяет указать дополнительные доверенные Root CA.

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

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

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

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

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

    Установка Cluster Service

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

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

    2. Выполните следующую команду, чтобы сгенерировать сертификат доступа к кластеру:

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

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

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

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

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

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

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

    3. Найдите Alauda Security Service for StackRox и нажмите на карточку, чтобы открыть страницу Details.

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

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

    6. Нажмите Create, чтобы завершить установку Cluster Service.


    Установка Cluster через 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 is optional.
      admissionControl:
        replicas: 3
        tolerations:
          - effect: NoSchedule
            key: node-role.kubernetes.io/infra
            value: reserved
            operator: Equal
        nodeSelector:
          node-role.kubernetes.io/infra: ""
    
      # Sensor is 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Уникальное имя этого кластера, как оно будет отображаться в Central UI. После задания имени изменить его позже нельзя. Чтобы зарегистрировать кластер с другим именем, удалите этот объект и создайте его заново.
    centralEndpointEndpoint экземпляра Central, к которому нужно подключиться, включая номер порта. Если порт не указан и в endpoint присутствует протокол https://, предполагается порт 443. Если вы используете load balancer без поддержки gRPC, используйте протокол WebSocket, указав префикс wss:// перед адресом endpoint. Если оставить значение пустым, Sensor попытается подключиться к экземпляру Central, работающему в том же namespace.
    admissionControl.replicasКоличество реплик pod компонента admission control.
    admissionControl.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно настроить tolerations для узлов с taint.
    admissionControl.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно задать здесь selector узлов.
    sensor.tolerationsЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно настроить tolerations для узлов с taint.
    sensor.nodeSelectorЕсли вы хотите, чтобы этот компонент запускался только на определенных узлах, можно задать здесь selector узлов.
    tls.additionalCAsПозволяет указать дополнительные доверенные Root CA.