OS Login
OS Login упрощает процесс SSH-подключений к виртуальным машинам в Yandex Cloud. Под виртуальными машинами (или ВМ) здесь и ниже подразумеваются как собственно виртуальные машины сервиса Yandex Compute Cloud, так и отдельные узлы в группах узлов в составе кластеров Yandex Managed Service for Kubernetes, на которых запускаются пользовательские контейнеры.
С помощью OS Login можно управлять SSH-доступом к ВМ, полагаясь только на механизмы сервиса Yandex Identity and Access Management, без необходимости загружать SSH-ключи на каждую новую ВМ при ее создании. OS Login связывает учетную запись пользователя ВМ с аккаунтом в Yandex Cloud Organization — учетной записью пользователя организации или сервисным аккаунтом.
Преимущества OS Login:
- Моментальное обновление прав доступа для пользователя внутри ВМ в случае отзыва или назначения ролей. Если у пользователя отозвать роли, он потеряет доступ ко всем ВМ, для которых был включен доступ через OS Login.
- Возможность использовать разные способы доступа к ВМ: как по короткоживущим SSH-сертификатам, так и по SSH-ключам, в том числе добавленным в профиль пользователя организации.
Структура OS Login
В состав OS Login входят следующие элементы: агент OS Login, настройки режимов работы OS Login на уровне организации, а также профили OS Login и SSH-ключи пользователей и сервисных аккаунтов в организации.
Агент OS Login
Агент OS Login разработан на основе Guest Agent for Google Compute Engine
Агент OS Login интегрирован в ряд образов ОС Linux, которые доступны при создании ВМ.
Настройки режимов работы OS Login на уровне организации Cloud Organization
OS Login позволяет использовать следующие режимы работы как по отдельности, так и оба одновременно:
-
Режим 1: Доступ по OS Login при помощи SSH-сертификатов (рекомендуется).
Режим позволяет подключаться к ВМ по SSH-сертификату через Yandex Cloud CLI и через стандартный SSH-клиент. -
Режим 2: Доступ по OS Login при помощи SSH-ключей.
Режим позволяет подключаться к ВМ через Yandex Cloud CLI и через стандартный SSH-клиент по SSH-ключу, сохраненному в профиле OS Login пользователя или сервисного аккаунта.
Профили OS Login пользователей и сервисных аккаунтов
Профиль OS Login определяет параметры, которые будут использоваться при создании учетной записи пользователя внутри ВМ.
При включении в организации доступа по OS Login для всех пользовательских и сервисных аккаунтов этой организации автоматически создаются профили OS Login по умолчанию.
Имя пользователя (логин), назначаемое аккаунту в профиле OS Login по умолчанию, зависит от типа аккаунта:
- логин пользовательского аккаунта формируется на основе имени этого пользователя в организации: любые символы, кроме букв латинского алфавита, цифр, дефиса и подчеркивания, а также дефис в начале имени — игнорируются, заглавные буквы латинского алфавита преобразуются в строчные.
- логин сервисного аккаунта формируется добавлением префикса
yc-sa-
к имени сервисного аккаунта. Например: сервисному аккаунтуmy-robot
будет по умолчанию присвоен логинyc-sa-my-robot
.
У одного пользователя или сервисного аккаунта в организации Cloud Organization может быть несколько профилей OS Login — разные профили позволяют подключаться к ВМ от имени разных локальных пользователей ВМ. Подробнее о создании дополнительных профилей OS Login см. в инструкции Создать профиль OS Login.
Управлять профилями OS Login пользователей вы можете в интерфейсе Cloud Center
Примечание
Минимально необходимая роль, позволяющая просматривать список профилей OS Login пользователей — роль organization-manager.osLogins.viewer
, назначенная на организацию. Информацию о других ролях, позволяющих просматривать список профилей OS Login, см. в разделе Управление доступом в Yandex Cloud Organization.
SSH-ключи пользователей и сервисных аккаунтов
Включив режим 2, администратор организации может разрешить использовать публичные SSH-ключи для подключения пользователей и сервисных аккаунтов к ВМ по OS Login. При включении данного режима администратор должен будет самостоятельно загрузить публичные SSH-ключи пользователей и сервисных аккаунтов в их профили OS Login.
Администратор организации также может разрешить пользователям самостоятельно управлять своими публичными SSH-ключами, для этого нужно дополнительно включить опцию Разрешить членам организации управлять своими SSH-ключами в настройках безопасности организации.
Необходимые условия для использования OS Login
Примечание
OS Login работает только с виртуальными машинами на базе ОС Linux. ВМ с другими типами операционных систем, в том числе с ОС Windows, не поддерживаются.
Чтобы начать подключаться к ВМ по OS Login, необходимо:
- Включить доступ к ВМ через OS Login на уровне организации.
- Развернуть ВМ из образа с интегрированным агентом OS Login.
Если ВМ создана из образа без интегрированного агента OS Login, вы можете самостоятельно установить агента. - При создании ВМ в консоли управления в блоке Доступ выберите вариант Доступ по OS Login. Если этот вариант неактивен, значит выбранный образ не поддерживает доступ по OS Login.
Примечание
Если на уровне организации включен доступ по OS Login, то для новых ВМ, создаваемых в этой организации, полю serial_port_settings.ssh_authorization
по умолчанию будет присваиваться значение OS_LOGIN
. Если доступ по OS Login выключен, этому полю по умолчанию будет присваиваться значение INSTANCE_METADATA
.
Подключение по OS Login
Подключиться к виртуальной машине с включенным доступом по OS Login можно как с помощью стандартного SSH-клиента, так и с помощью Yandex Cloud CLI.
Подключение с помощью стандартного SSH-клиента
Пользователи, а также (с помощью сервисных аккаунтов) сторонние инструменты, такие как Terraform
Чтобы подключиться к ВМ через стандартный SSH-клиент с использованием SSH-сертификата, нужно экспортировать SSH-сертификат и использовать его при подключении.
Пример подключения по короткоживущему SSH-сертификату
# 1. Получение публичного IP-адреса ВМ my-oslogin-vm и идентификатора организации
PUB_IP=$(yc compute instance get my-oslogin-vm \
--format=json | jq -r '.network_interfaces[0].primary_v4_address.one_to_one_nat.address')
ORG_ID=$(yc organization-manager organization list --format=json | jq -r '.[0].id')
# 2. Получение короткоживущего SSH-сертификата
yc compute ssh certificate export --organization-id $ORG_ID --directory ~/Downloads/cert
# 3. Подключение к ВМ по публичному IP-адресу ВМ
ssh -i ~/Downloads/cert/yc-organization-id-bpfdp4pdeg8d********-username username@$PUB_IP
В данном примере:
- С помощью команд
yc compute instance get
иyc organization-manager organization list
получаются и сохраняются в переменные публичный IP-адрес виртуальной машиныmy-oslogin-vm
и идентификатор текущей организации. - С помощью команды
yc compute ssh certificate export
в директорию~/Downloads/cert
экспортируется короткоживущий SSH-сертификат пользователя. - Полученный SSH-сертификат используется для подключения к ВМ по сохраненному ранее публичному IP-адресу.
Сертификат действителен один час. По истечении этого времени для подключения к ВМ необходимо экспортировать новый сертификат.
Подключение с помощью Yandex Cloud CLI
Подключиться к виртуальной машине с включенным доступом по OS Login с помощью Yandex Cloud CLI можно как по SSH-ключу, сохраненному в профиле OS Login пользователя или сервисного аккаунта, так и по SSH-сертификату этого пользователя или сервисного аккаунта.
Подробнее о подключении к ВМ по OS Login см. в инструкциях Подключиться с помощью Yandex Cloud CLI и Подключиться к узлу Kubernetes по OS Login.
Необходимые роли для подключения к ВМ по OS Login
Для подключения к виртуальной машине или узлу Kubernetes с включенным доступом по OS Login пользователю или сервисному аккаунту, от имени которого выполняется подключение, должна быть назначена роль compute.osLogin
или compute.osAdminLogin
. При подключении с помощью Yandex Cloud CLI дополнительно необходима роль compute.operator
.
Внимание
Если у пользователя есть права суперпользователя