Управление доступом
Панель управления
В Servercore вы можете управлять доступом пользователей к инфраструктуре. Для этого используется система управления идентификацией и контролем доступа (Identity and Access Management, IAM), которая проверяет каждый запрос и гарантирует, что операции с ресурсами выполняют только пользователи с соответствующими правами.
Права доступа пользователей к ресурсам устанавливаются на уровне типов и ролей пользователей. Только пользователи с ролью Владелец аккаунта или Администратор пользователей могут добавлять пользователей и изменять их данные и роли. Чтобы упростить управление пользователями, можно объединить их в группы.
По умолчанию для всех пользователей после регистрации и заполнения профиля подключается двухфакторная аутентификация. При двухфакторной аутентификации для входа в аккаунт нужно ввести пароль и одноразовый код подтверждения. Код подтверждения можно получать через приложение-аутенитификатор или в СМС на номер телефона, который вы указали в профиле. Двухфакторную аутентификацию может отключить только Владелец аккаунта. Мы не рекомендуем отключать двухфакторную аутентификацию, чтобы избежать рисков, связанных с компрометацией учетной записи.
Также можно настроить аутентификацию в панели управления с помощью технологии единого входа — Single Sign-On (SSO). Для этого используйте федерации удостоверений — централизованный сервис для управления организационной структурой, настройки интеграции с каталогом сотрудников и контроля доступа пользователей к ресурсам компании. При использовании федерации данные пользователей хранятся у вашего поставщика удостоверений — Identity Provider (например, Keycloak, ADFS и другие SAML-совместимые поставщики).
По умолчанию доступ к панели управления разрешен с любых IP-адресов. Однако Владелец аккаунта и Администратор пользователей могут установить ограничения — пользователи смогут входить в аккаунт только с IP-адресов и подсетей, которые добавили в список разрешенных.
Если необходимо с кем-то поделиться доступом к панели управления или к ресурсам, не передавайте свои данные. Владелец аккаунта и Администратор пользователей могут создать дополнительного пользователя для доступа к панели управления или сервисного пользователя для программного доступа, подробнее в инструкции Типы и роли пользователей.
Облачные и выделенные серверы
К облачным серверам можно подключиться через консоль в панели управления, а к выделенным серверам — через KVM-консоль. Если вы подключаетесь к серверу через другие CLI, чтобы обеспечить безопасный удаленный доступ к инфраструктуре, подключайтесь к серверу:
- по протоколу SSH — если у вас сервер с ОС Linux;
- или по протоколу RDP — если у вас сервер с ОС Windows.
Настроить подключение по SSH
Для безопасного подключения к облачному или выделенному серверу с ОС Linux вместо логина и пароля используйте SSH-ключи. Это пара ключей: приватный ключ и публичный ключ. Приватный ключ хранится на локальном компьютере, а публичный размещается на сервере. После настройки подключения по SSH и отключения доступа по паролю к серверу смогут подключиться только устройства, на которых хранится приватный ключ, и сервер будет защищен от атак методом прямого перебора пароля (bruteforce).
Для каждого администратора нужно создать пару SSH-ключей и разместить публичный ключ на облачном или выделенном сервере. При создании ключа для дополнительной защиты укажите кодовую фразу (passphrase).
После создания SSH-ключей создайте пользователя и настройте SSH-подключение — при создании сервера с помощью user data или для созданного сервера через CLI. Если вы используете серверы с публичным IP-адресом, наиболее безопасная стратегия — настройка параметров безопасности на этапе создания сервера с помощью user data.
- User data
- CLI
Вы можете указать user data для облачного и выделенного сервера.
Пример создания пользователя и настройки SSH-подключения с помощью user data для Ubuntu 24.04 LTS 64-bit.
#cloud-config
users:
- name: admin
sudo: ['ALL=(ALL) NOPASSWD:ALL']
groups: sudo
shell: /bin/bash
lock_passwd: true
ssh_authorized_keys:
- <<public_ssh_key> admin@test
ssh_pwauth: false
package_update: true
packages:
- ufw
runcmd:
- sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
- sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
- sed -i 's/^PermitRootLogin prohibit-password/PermitRootLogin no/' /etc/ssh/sshd_config
- sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config
- systemctl restart ssh
- ufw allow 2222/tcp
- ufw --force enable
- reboot
Здесь:
name: admin
— создается пользовательadmin
;sudo: ['ALL=(ALL) NOPASSWD:ALL']
— позволяет пользователю выполнять команды черезsudo
без запроса пароля;groups: sudo
— добавляет пользователя в группуsudo
;lock_passwd: true
— блокирует вход по паролю для пользователяadmin
;<public_ssh_key> admin@test
в разделеssh_authorized_keys
— добавляет публичный SSH-ключ, который вы создали ранее. Начинается сssh-rsa
.ssh_pwauth: false
— отключает возможность входа по паролю для всех пользователей. Доступ к серверу будет возможен только через SSH-ключ, а вход по паролю будет полностью отключен;package_update: true
— обновляет apt-библиотеку;packages: ufw
— устанавливает файрвол UFW (Uncomplicated Firewall), который нужен для ограничения доступа к SSH-порту;- команды с
sed -i
в разделеruncmd
— изменяют стандартный порт22
на2222
, запрещают вход по паролю и подключение root-пользователя, включают аутентификацию по ключу.
Пример настройки для ОС Linux c устано вленным файрволом Uncomplicated Firewall (UFW).
-
Откройте CLI.
-
Создайте пользователя
admin
:sudo useradd -m -G sudo -s /bin/bash admin
-
Создайте каталог
.ssh
в домашнем каталоге созданного пользователя и перейдите в него:mkdir /home/admin/.ssh
cd /home/admin/.ssh -
Создайте файл
authorized_keys
:touch authorized_keys
-
Добавьте в файл
authorized_keys
публичный SSH-ключ:echo <public_ssh_key> >> /home/admin/.ssh/authorized_keys
У кажите
<public_ssh_key>
— публичный SSH-ключ, который вы создали ранее. Начинается сssh-rsa
. -
Настройте права доступа:
chown admin:admin /home/admin/.ssh
chown admin:admin /home/admin/.ssh/authorized_keys
chmod 700 /home/admin/.ssh
chmod 600 /home/admin/.ssh/authorized_keys -
В файле
/etc/ssh/sshd_config
настройте SSH-подключение и отключите доступ по паролю:vi /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
Port 2222Здесь:
PasswordAuthentication no
— отключает возможность аутентификации по паролю;PubkeyAuthentication yes
— разрешает аутентификацию по ключам;PermitRootLogin no
— запрещает доступ по SSH для root-пользователя;Port 2222
— изменяет стандартный SSH-порт22
на порт2222
.
-
Чтобы изменения вступили в силу, перезапустите службу SSH:
systemctl restart ssh
-
Для файрвола Uncomplicated Firewall (UFW) добавьте правило, которое разрешает использование нового порта для SSH-подключения:
ufw allow 2222/tcp
-
Запустите файрвол, включите автоматический запуск файрвола и примените все правила — например, для файрвола UFW:
ufw --force enable
-
Перезапустите сервер.
Рекомендации по использованию RDP-подключения
Чтобы безопасно подключаться по RDP к облачному или выделенному серверу с ОС Windows, не используйте публичный IP-адрес. Мы рекомендуем использовать для доступа к таким серверам VPN — например, OpenVPN, WireGuard или IKEv2/IPsec. Для этого размещайте серверы в приватных подсетях, которые доступны через отдельный VPN-шлюз, или разверните VPN-шлюз на этом же сервере.
Используйте отдельную учетную запись для каждого администратора сервера.
Дополнительные инструменты безопасности
Чтобы защитить серверы от несанкционированного доступа, мы рекомендуем использовать дополнительные инструменты безопасности. Примеры бесплатных инструментов:
Managed Kubernetes
В кластере Managed Kubernetes можно управлять доступом к виртуальным ресурсам с помощью механизма RBAC Authorization (RBAC). RBAC позволяет распределить роли пользователей — создать разные пространства имен для разных приложений и настроить доступ пользователей к подам в соответствующем пространстве имен.
Облачные базы данных
Во в сех СУБД, кроме Redis, можно управлять пользователями баз данных и их привилегиями. Подробнее в инструкциях PostgreSQL, PostgreSQL для 1C, PostgreSQL TimescaleDB, MySQL semi-sync, MySQL sync и Kafka.
Для СУБД Redis автоматически создается один пользователь. Пароль для этого пользователя задается при создании кластера, после создания кластера его можно изменить.
Объектное хранилище
Доступ к ресурсам объектного хранилища регулируется:
- ролевой моделью — определяет доступ в рамках аккаунта и проекта;
- политикой доступа — определяет доступ в рамках контейнера.
При получении запроса на действие в объектном хранилище сначала проверяется доступ по ролевой модели. Если ролевая модель разрешает доступ, проверяется политика доступа, если нет — доступ запрещается. С политикой доступа запрещено все, что не разрешено правилами политики.
Для доступа через API или по FTP выдайте ключи.
Для обращения к объектам в контейнере через собственный домен по HTTPS нужно добавить сертификат TLS (SSL). Выпустить сертификат можно у любого провайдера. Управлять сертификатами можно через панель управления.