---
title: 'Управление доступом'
sidebar_position: 4
description: 'Как управлять доступом к продуктам, услугам и сервисам облачной платформы'
toc_max_heading_level: 3
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import { TabItemLabel } from '@selectel/docux/components'
import Formbricks from '@theme/MDXComponents/Formbricks'

# Управление доступом

## Панель управления \{#access-to-control-panel}

В Selectel вы можете управлять доступом пользователей к инфраструктуре.
Для этого используется система управления идентификацией и контролем доступа (Identity and Access Management, IAM), которая проверяет каждый запрос и гарантирует, что операции с ресурсами выполняют только пользователи с соответствующими правами.

Права доступа пользователей к ресурсам устанавливаются на уровне [типов и ролей пользователей](/access-control/access-management.mdx).
Только [Владелец аккаунта](/access-control/user-types.mdx#account-owner) или пользователи с ролью [`iam_admin`](/access-control/role-reference.mdx#iam-admin) могут [добавлять пользователей](/access-control/manage/add-user.mdx) и [изменять их данные и роли](/access-control/manage/edit-user-data-or-role.mdx). Чтобы упростить управление пользователями, можно объединить их в [группы](/access-control/groups/).

По умолчанию для всех пользователей после регистрации и заполнения профиля подключается [двухфакторная аутентификация](/account/two-step-authentication.mdx).
При двухфакторной аутентификации для входа в аккаунт нужно ввести пароль и одноразовый код подтверждения.
Код подтверждения можно получать через приложение-аутентификатор или на электронную почту, которую вы указали в профиле. Двухфакторную аутентификацию может отключить только Владелец аккаунта.
Мы не рекомендуем отключать двухфакторную аутентификацию, чтобы избежать рисков, связанных с компрометацией учетной записи.

Также можно настроить аутентификацию в панели управления с помощью технологии единого входа — Single Sign-On (SSO).
Для этого используйте [федерации удостоверений](/access-control/federations/about-federations.mdx) — централизованный сервис для управления организационной структурой, настройки интеграции с каталогом сотрудников и контроля доступа пользователей к ресурсам компании.
При использовании федерации данные пользователей хранятся у вашего поставщика удостоверений — Identity Provider (например, Keycloak, ADFS и другие SAML-совместимые поставщики).

По умолчанию доступ к панели управления разрешен с любых IP-адресов.
Однако Владелец аккаунта и пользователь с ролью [`iam.admin`](/access-control/role-reference.mdx#iam-admin) могут установить ограничения — пользователи смогут входить в аккаунт только с IP-адресов и подсетей, которые [добавили в список разрешенных](/account/limit-access-to-account.mdx#add-address).

Если необходимо с кем-то поделиться доступом к панели управления или к ресурсам, не передавайте свои данные.
Владелец аккаунта и пользователь с ролью [`iam.admin`](/access-control/role-reference.mdx#iam-admin) могут создать дополнительного пользователя для доступа к панели управления или сервисного пользователя для программного доступа, подробнее в инструкции [Управление доступом в продуктах Selectel](/access-control/access-management.mdx).

## Облачные и выделенные серверы \{#cloud-and-dedicated-servers}

К облачным серверам можно [подключиться через консоль в панели управления](/cloud-servers/manage/connect-to-server.mdx), а к выделенным серверам — через [KVM-консоль](/dedicated/manage/kvm-console.mdx).
Если вы подключаетесь к серверу через другие CLI, чтобы обеспечить безопасный удаленный доступ к инфраструктуре, подключайтесь к серверу:

* по [протоколу SSH](#configure-ssh-connection) — если у вас сервер с ОС Linux;
* или по [протоколу RDP](#recommendations-for-rdp) — если у вас сервер с ОС Windows.

### Настроить подключение по SSH \{#configure-ssh-connection}

Для безопасного [подключения к облачному](/cloud-servers/manage/connect-to-server.mdx) или [выделенному](/dedicated/manage/connect-to-server.mdx) серверу с ОС Linux вместо логина и пароля используйте SSH-ключи.
Это пара ключей: приватный ключ и публичный ключ. Приватный ключ хранится на локальном компьютере, а публичный размещается на сервере.
После настройки подключения по SSH и отключения доступа по паролю к серверу смогут подключиться только устройства, на которых хранится приватный ключ, и сервер будет защищен от атак методом прямого перебора пароля (bruteforce).

Для каждого администратора нужно [создать пару SSH-ключей и разместить публичный ключ на облачном](/cloud-servers/manage/create-and-place-ssh-key.mdx) или [выделенном сервере](/dedicated/manage/create-and-place-ssh-key.mdx).
При создании ключа для дополнительной защиты укажите кодовую фразу (passphrase).

После создания SSH-ключей создайте пользователя и настройте SSH-подключение — при создании сервера с помощью [user data](/cloud-servers/manage/user-data.mdx) или для созданного сервера через CLI.
Если вы используете серверы с публичным IP-адресом, наиболее безопасная стратегия — настройка параметров безопасности на этапе создания сервера с помощью user data.

<Tabs>
  <TabItem value="userdata" default>
    <TabItemLabel>User data</TabItemLabel>

    Вы можете [указать user data для облачного](/cloud-servers/manage/user-data.mdx) и [выделенного сервера](/dedicated/manage/user-data.mdx#enter-user-data).

    Пример создания пользователя и настройки SSH-подключения с помощью user data для Ubuntu 24.04 LTS 64-bit.

    ```bash
    #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-пользователя, включают аутентификацию по ключу.
  </TabItem>

  <TabItem value="cli">
    <TabItemLabel>CLI</TabItemLabel>

    Пример настройки для ОС Linux c установленным файрволом Uncomplicated Firewall (UFW).

    1. Откройте CLI.

    2. Создайте пользователя `admin`:

       ```bash
       sudo useradd -m -G sudo -s /bin/bash admin
       ```

    3. Создайте каталог `.ssh` в домашнем каталоге созданного пользователя и перейдите в него:

       ```bash
       mkdir /home/admin/.ssh
       cd /home/admin/.ssh
       ```

    4. Создайте файл `authorized_keys`:

       ```bash
       touch authorized_keys
       ```

    5. Добавьте в файл `authorized_keys` публичный SSH-ключ:

       ```bash
       echo <public_ssh_key> >> /home/admin/.ssh/authorized_keys
       ```

       Укажите `<public_ssh_key>` — публичный SSH-ключ, который вы создали ранее. Начинается с `ssh-rsa`.

    6. Настройте права доступа:

       ```bash
       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
       ```

    7. В файле `/etc/ssh/sshd_config` настройте SSH-подключение и отключите доступ по паролю:

       ```bash
       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`.

    8. Чтобы изменения вступили в силу, перезапустите службу SSH:

       ```bash
       systemctl restart ssh
       ```

    9. Для файрвола Uncomplicated Firewall (UFW) добавьте правило, которое разрешает использование нового порта для SSH-подключения:

       ```bash
       ufw allow 2222/tcp
       ```

    10. Запустите файрвол, включите автоматический запуск файрвола и примените все правила — например, для файрвола UFW:

        ```bash
        ufw --force enable
        ```

    11. Перезапустите сервер.
  </TabItem>
</Tabs>

### Рекомендации по использованию RDP-подключения \{#recommendations-for-rdp}

Чтобы безопасно [подключаться по RDP к облачному](/cloud-servers/manage/connect-to-server.mdx#connect-via-rdp) или [выделенному серверу](/dedicated/manage/connect-to-server.mdx#connect-via-rdp) с ОС Windows, не используйте публичный IP-адрес.
Мы рекомендуем использовать для доступа к таким серверам VPN — например, OpenVPN, WireGuard или IKEv2/IPsec.
Для этого размещайте в приватных подсетях [облачные](/cloud-servers/cloud-networks/private-networks-and-subnets.mdx) и [выделенные серверы](/dedicated/networks/about-networks.mdx), которые доступны через отдельный VPN-шлюз, или разверните VPN-шлюз на этом же сервере.

Используйте отдельную учетную запись для каждого администратора сервера.

### Дополнительные инструменты безопасности \{#additional-security-tools}

Чтобы защитить серверы от несанкционированного доступа, мы рекомендуем использовать дополнительные инструменты безопасности. Примеры бесплатных инструментов:

* [Fail2Ban](https://github.com/fail2ban/fail2ban);
* [Penalties в OpenSSH](https://man.openbsd.org/sshd_config#PerSourcePenalties);
* [CrowdSec](https://github.com/crowdsecurity/crowdsec).

### Сертифицированные средства защиты \{#certified-security-features}

Чтобы дополнительно защитить серверы, а также при необходимости выполнить требования законодательства, вы можете использовать дополнительные сертифицированные средства защиты от несанкционированного доступа, предоставляемые в рамках отдельной услуги:

* [Secret Net LSP (Linux)](/certified-security-features/secret-net-lsp.mdx);
* [Secret Net Studio (Windows)](/certified-security-features/secret-net-studio.mdx);
* [Средство доверенной загрузки Dallas Lock](/certified-security-features/dallas-lock.mdx).

### Двухфакторная аутентификация \{#2fa}

Чтобы защитить ваши сервисы от несанкционированного доступа, мы рекомендуем использовать [двухфакторную аутентификацию](/2fa/about-2fa.mdx) для дополнительной проверки личности пользователя.
Услуга предоставляется в виде лицензий на использование решения [Мультифактор](https://multifactor.ru/).

Решение Мультифактор соответствует требованиям регуляторов:

* находится в реестре российского ПО (№ 7046);
* соответствует международному стандарту PCI DSS;
* имеет сертификат ФСТЭК (№ 5039).

## Managed Kubernetes \{#managed-kubernetes}

В кластере Managed Kubernetes можно управлять доступом к виртуальным ресурсам с помощью механизма RBAC Authorization (RBAC).
RBAC позволяет [распределить роли пользователей](/managed-kubernetes/clusters/rbac-authorization.mdx#assign-user-roles) — создать разные пространства имен для разных приложений и настроить доступ пользователей к подам в соответствующем пространстве имен.

## Облачные базы данных \{#managed-databases}

Во всех СУБД, кроме Redis, можно управлять пользователями баз данных и их привилегиями.
Подробнее об управлении пользователями в инструкциях для [PostgreSQL](/managed-databases/postgresql/manage-users.mdx), [PostgreSQL для 1C](/managed-databases/postgresql-for-1c/manage-users-1c.mdx), [PostgreSQL TimescaleDB](/managed-databases/timescaledb/manage-users.mdx), [MySQL semi-sync](/managed-databases/mysql-semi-sync/manage-users.mdx), [MySQL sync](/managed-databases/mysql-sync/manage-users.mdx) и [Kafka](/managed-databases/kafka/manage-users.mdx).

Для СУБД Redis автоматически создается один пользователь.
Пароль для этого пользователя задается при создании кластера, после создания кластера его можно [изменить](/managed-databases/redis/change-password.mdx).

## S3 \{#access-to-s3}

Доступ к ресурсам S3 регулируется:

* [ролевой моделью](/s3/about/manage-access.mdx#access-within-roles) — определяет доступ в рамках аккаунта и [проекта](/access-control/projects/about-projects.mdx);
* [политикой доступа](/s3/buckets/bucket-policy/) — определяет доступ в рамках бакета.

При получении запроса на действие в S3 сначала проверяется доступ по ролевой модели.
Если ролевая модель разрешает доступ, проверяется политика доступа, если нет — доступ запрещается.
С политикой доступа запрещено все, что не разрешено правилами политики.

Для доступа через API или по FTP [выдайте ключи](/s3/about/manage-access.mdx#keys-for-api-access).

Для обращения к объектам в бакете через собственный домен по HTTPS нужно [добавить сертификат TLS (SSL)](/s3/manage/tls-ssl-certificates.mdx#add-certificate).
Выпустить сертификат можно у любого провайдера.
Управлять сертификатами можно через [панель управления](https://my.selectel.ru/) или [Object Storage API](/api/object-storage/).

<Formbricks />
