Управление доступом
Панель управления
В Selectel вы можете управлять доступом пользователей к инфраструктуре. Для этого используется система управления идентификацией и контролем доступа (Identity and Access Management, IAM), которая проверяет кажды й запрос и гарантирует, что операции с ресурсами выполняют только пользователи с соответствующими правами.
Права доступа пользователей к ресурсам устанавливаются на уровне типов и ролей пользователей.
Только Владелец аккаунта или пользователи с ролью iam_admin
могут добавлять пользователей и изменять их данные и роли. Чтобы упростить управление пользователями, можно объединить их в группы.
По умолчанию для всех пользователей после регистрации и заполнения профиля подключается двухфакторная аутентификация. При двухфакторной аутентификации для входа в аккаунт нужно ввести пароль и одноразовый код подтверждения. Код подтверждения можно получать через приложение-аутенитификатор или в СМС на номер телефона, который вы указали в профиле. Двухфакторную аутентификацию может отключить только Владелец аккаунта. Мы не рекомендуем отключать двухфакторную аутентификацию, чтобы избежать рисков, связанных с компрометацией учетной записи.
Также можно настроить аутентификацию в панели управления с помощью технологии единого входа — Single Sign-On (SSO). Для этого используйте федерации удостоверений — централизованный сервис для управления организационной структурой, настройки интеграции с каталогом сотрудников и контроля доступа пользователей к ресурсам компании. При использовании федерации данные пользователей хранятся у вашего поставщика удостоверений — Identity Provider (например, Keycloak, ADFS и другие SAML-совместимые поставщики).
По умолчанию доступ к панели управления разрешен с любых IP-адресов.
Однако Владелец аккаунта и пользователь с ролью iam_admin
могут установить ограничения — пользователи смогут входить в аккаунт только с IP-адресов и подсетей, которые добавили в список разрешенных.
Если необходимо с кем-то поделиться доступом к панели управления или к ресурсам, не передавайте свои данные.
Владелец аккаунта и пользователь с ролью iam_admin
могут создать дополнительного пользователя для доступа к панели управления или сервисного пользователя для программного доступа, подробнее в инструкции Управление доступом в продуктах Selectel.
Облачные и выделенные серверы
К облачным серверам можно подключиться через консоль в панели управления, а к выделенным серверам — через 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 автоматически создается один пользователь. Пароль для этого пользователя задается при создании кластера, после создания кластера его можно изменить.
S3
Доступ к ресурсам S3 регулируется:
- ролевой моделью — определяет доступ в рамках аккаунта и проекта;
- политикой доступа — определяет доступ в рамках бакета.
При получении запроса на действие в S3 сначала проверяется доступ по ролевой модели. Если ролевая модель разрешает доступ, проверяется политика доступа, если нет — доступ запрещается. С по литикой доступа запрещено все, что не разрешено правилами политики.
Для доступа через API или по FTP выдайте ключи.
Для обращения к объектам в бакете через собственный домен по HTTPS нужно добавить сертификат TLS (SSL). Выпустить сертификат можно у любого провайдера. Управлять сертификатами можно через панель управления или Object Storage API.