Подтвердить что ты не робот

Безопасность цветка сельдерея в производстве

Я хочу использовать Flower (https://github.com/mher/flower), чтобы контролировать мои задачи Celery вместо django-admin, как это рекомендовано в их документах (http://docs.celeryproject.org/en/latest/userguide/monitoring.html#flower-real-time-celery-web-monitor). Однако, поскольку я новичок в этом, я немного смущен тем, как Цветочная страница основана только на HTTP, а не на HTTPS. Как включить защиту для моих задач Celery, чтобы любой старый пользователь не мог просто посетить веб-сайт без необходимости входа http://flowerserver.com:5555 и изменить что-то?

Я рассмотрел Celery собственную документацию об этом, но, к сожалению, нет упоминаний о том, как защитить Flower api или web ui. Все это говорит: [Need more text here]

Спасибо!

Обновление: Мой вопрос частично является дубликатом здесь: Как добавить аутентификацию и конечную точку к мониторингу цветов цветка Django?

Тем не менее, я разъясняю его вопрос здесь, спросив, как запустить его, используя среду, которая включает nginx, gunicorn и сельдерей на одной и той же удаленной машине. Мне тоже интересно, как настроить Flower вне доступного URL-адреса, но также предпочтет что-то вроде https вместо http, если это возможно (или каким-то образом обеспечить безопасность и доступ к нему удаленно). Мне также нужно знать, является ли уход за цветными цветами значительным риском для всех, кто может получить доступ к внутреннему API-интерфейсу Flower, и что может быть лучшим способом для его обеспечения, или если он просто должен быть полностью отключен и использоваться как раз для того, необходимой основой.

4b9b3361

Ответ 1

Вы можете запускать цветок с флагом --auth, который будет проходить проверку подлинности с помощью определенного электронного письма google:

celery flower [email protected]

Изменить 1:

В новой версии Flower требуется еще несколько флагов и зарегистрированный клиент OAuth2 с Google Developer Console:

celery flower [email protected] --oauth2_key="client_id" --oauth2_secret="client_secret" --oauth2_redirect_uri="http://example.com:5555/login"

oauth2_redirect_uri должен быть фактическим URL-адресом для входа в систему, и его также необходимо добавить к авторизованному URL-адресу перенаправления в Google Development Console.

К сожалению, эта функция не работает должным образом в текущей стабильной версии 0.7.2, но теперь она исправлена ​​в версии разработки 0.8.0-dev с этим commit.

Изменить 2:

Вы можете настроить цвет с помощью базовой проверки подлинности:

celery flower --basic_auth=user1:password1,user2:password2

Затем заблокируйте порт 5555 для всех, кроме localhost, и настройте обратный прокси для nginx или для apache:

ProxyRequests off
ProxyPreserveHost On
ProxyPass / http://localhost:5555

Затем убедитесь, что включен прокси-модем:

sudo a2enmod proxy
sudo a2enmod proxy_http

Если вы не можете установить его в отдельном субдомене, ex: flower.example.com (конфигурация выше), вы можете установить его для example.com/flower:

запустите цветок с помощью url_prefix:

celery flower --url_prefix=flower --basic_auth=user1:password1,user2:password2

в конфигурации apache:

ProxyPass /flower http://localhost:5555

Конечно, убедитесь, что SSL настроен, в противном случае нет смысла:)

Ответ 2

Мне нужен цветок в подкаталоге моего веб-сервера, поэтому моя конфигурация обратного прокси nginx выглядела так:

location /flower/ {
    proxy_pass http://localhost:5555/;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Protocol $scheme;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_http_version 1.1;

    auth_basic  "Restricted";
    auth_basic_user_file  /etc/nginx/.htpasswd;
}

Теперь я могу получить цветок (защищенный паролем) через www.example.com/flower

В большинстве случаев это происходит на странице документации по цвету о настройке обратного прокси-сервера nginx:

http://flower.readthedocs.org/en/latest/reverse-proxy.html

Ответ 3

Да, там нет auth на цветке, так как он просто разговаривает с брокером, но если вы запускаете его через SSL, то базовый auth должен быть достаточно хорошим.

Ответ 4

Как бы HTTP и HTTPS повлияли на безопасность сельдерея? На каких пользователях вы ссылаетесь?

Цветочные мониторы в очередь на сельдерей, прикрепляя к работникам. При настройке Flower вам необходимо указать строку соединения [broker]://[имя_пользователя]: [пароль] @[база данных_адрес]: [порт]/[экземпляр]. Имя пользователя и пароль - это учетные данные для входа в базу данных по вашему выбору.

Если вы ссылаетесь на этот логин, не будет просто отключить/удалить их логины?