Безопасность

Вы уже познакомились с моделью безопасности Yandex Cloud, которая позволяет назначать аккаунтам роли для выполнения разных действий с облачными ресурсами.
💡Yandex AI Studio работает на инфраструктуре Yandex Cloud и наследует весь её контур безопасности. Это не просто декларация — платформа прошла независимую проверку на соответствие ISO/IEC 42001:2023 (стандарт управления ИИ-системами), а также ISO 27001, 27017, 27018 и аттестована по требованиям 152-ФЗ.
Прежде чем перейти к основной части урока, посмотрите, каким ключевым принципам безопасности облачных данных следует Yandex Cloud. 1️⃣ ОткрытостьYandex AI Studio публикует сертификаты, аттестаты и документы о соответствии стандартам в открытом доступе. Если документ содержит конфиденциальные сведения, его предоставят по запросу после подписания NDA. 2️⃣ Совместная ответственность
Обеспечение безопасности делится между платформой и клиентом. Платформа обеспечивает изоляцию данных, шифрование и мониторинг. Клиент управляет доступом, ключами и настройками логирования. 3️⃣ Приватность данных по умолчанию Ваши данные не используются для обучения моделей и не сохраняются на стороне Яндекса, если логирование запросов отключено. Даже если вы загружаете файлы в RAG, они не хранятся: система преобразует их в векторный индекс, которым вы управляете сами. 📚 Подробнее о безопасности в Yandex AI Studio можно узнать в документации.
ЛогикаДальше мы рассмотрим принципы, которые работают на этапе аутентификации пользователя и авторизации доступа к сервисам облака.
Аутентификация и авторизация
Перед выполнением действий в Yandex Cloud нужно определить, от чьего имени выполняется запрос. Есть два варианта:
- От имени пользователя Пользователь проходит аутентификацию, например через Yandex ID. В ответ система выдаёт IAM-токен (Identity and Access Management) для вызова API от имени пользователя. IAM-токен — это последовательность символов. Время жизни токена — 12 часов.
- От имени сервисного аккаунта Используется для приложений и сервисов. Для этого создают сервисный аккаунт и назначают ему роли. Запросы выполняются от его имени. Для доступа чаще используют API-ключ, который создаётся один раз и действует, пока его не удалят.
💡 В результате аутентификации пользователь облака получает API-ключ или IAM-токен, которые служат для авторизации. Это определяет, могут ли пользователь или программа совершать необходимые действия в облаке.При вызове облачных сервисов по протоколу REST необходимые данные авторизации передаются с помощью специального поля Authorization в заголовке REST-запроса.
Авторизация с помощью IAM-токена
Для авторизации по IAM-токену в заголовке REST-запроса передаётся ключ Authorization: Bearer <токен>. Этот способ удобен для авторизации от имени пользователя с Yandex ID. Каждый раз при входе можно создавать новый IAM-токен и затем использовать его для обращения к облачным сервисам. При этом не нужно заботиться о безопасности IAM-токена, поскольку он автоматически станет непригоден через несколько часов.Ещё можно получить IAM-токен для сервисного аккаунта, если вы хотите ограничить его время действия несколькими часами.📚 Подробнее про разные способы получения IAM-токенов описано в документации.Вы также можете использовать IAM-токен для экспериментов, получив его с помощью командной утилиты yc. Если вы уже прошли аутентификацию, то получить IAM-токен можно командой yc iam create-token.
Авторизация с помощью API-ключа
API-ключ используют для авторизации сервисных аккаунтов. Такой ключ работает бессрочно. Администратор может в любой момент отозвать ключ и закрыть доступ. В REST-запросе ключ передают в заголовке Authorization: Api-key <ключ>.Для создания API-ключа можно использовать утилиту yc или веб-интерфейс облачной консоли Yandex Cloud.Для Amazon S3-совместимых сервисов используют статические ключи доступа. Они состоят из двух частей:
- идентификатор ключа;
- секретный ключ.
Эти ключи применяют для работы с объектным хранилищем S3, в том числе в Yandex DataSphere.
💻 Практика. Авторизация с помощью API-ключа
❗️Практическая часть курса предполагает использование облачных ресурсов, которые вы оплачиваете самостоятельно. Курс разработан так, чтобы расходы были минимальными, — часть из них покроет стартовый грант.Чтобы избежать лишних трат:— останавливайте ВМ в перерывах между практиками (это не снизит потребление до нуля, но заметно сократит расходы);— настройте бюджет и уведомления в разделе Биллинг;— удаляйте ресурсы после завершения курса;— необязательно выполнять все практики — сосредоточьтесь на релевантных.
ЛогикаЭто практическое занятие предполагает, что вы уже получили доступ к облаку Yandex Cloud. Если нет, выполните шаги из документации.Представьте, что вы работаете над стартапом: хотите реализовать сервис распознавания медицинских документов и переводить их с иностранного языка на русский. Для этого можно воспользоваться сервисом Yandex Translate — и вам нужно получить API-ключ для вызова этого сервиса.
Именно этим вы займётесь в рамках практического задания.
Перед началом основной практической части выполните подготовку:1️⃣ Создайте в облаке сервисный аккаунт.2️⃣ Назначьте аккаунту роли, которые позволяют вызывать сервис Yandex Translate.3️⃣ Получите API-ключ доступа для сервисного аккаунта.Все эти шаги можно проделать с помощью веб-интерфейса Yandex Cloud или из утилиты командной строки (CLI) yc. На практике вы разберёте второй вариант:1️⃣ Установите Yandex Cloud CLI, как описано в документации.2️⃣ Аутентифицируйтесь с помощью команды yc init. Вам будет предложено перейти по ссылке. В браузере войдите в свой аккаунт Yandex ID и затем скопируйте OAuth-токен назад в консоль.3️⃣ Выберите используемое облако, каталог по умолчанию и зону доступности по умолчанию.4️⃣ Приступайте к созданию сервисного аккаунта. Для этого выполните команду yc iam service-account create --name myserviceacct.В результате вы увидите параметры только что созданного аккаунта. Скопируйте его идентификатор id. Впоследствии вам пригодится идентификатор каталога folder_id, сохраните его тоже.5️⃣ Назначьте сервисному аккаунту роль, позволяющую вызывать сервис Yandex Translate: yc resource-manager folder \ add-access-binding <имя_каталога> \ --role ai.translate.user \ --subject serviceAccount:<id_сервисного_аккаунта>.Здесь вместо <имя_каталога> необходимо подставить имя вашего облачного каталога или default, если вы используете созданный по умолчанию каталог. Вместо <id_сервисного_аккаунта> напишите скопированный ранее идентификатор.📚 Подробнее о назначении ролей сервисному аккаунту читайте в документации.6️⃣ Для получения API-ключа к сервисному аккаунту используйте команду yc iam api-key create --service-account-name myserviceacct.В ответ вы получите данные ключа, в том числе его секретную часть (secret). Обязательно скопируйте их и сохраните, поскольку повторно посмотреть секретную часть не получится.7️⃣ Вызовите сервис Yandex Translate с помощью REST-запроса:
curl --request POST \
--header "Content-Type: application/json" \
--header "Authorization: Api-key <api_ключ>" \
--data '{ "folderId" : "<id_каталога>",
"texts" : ["This is a secret recepe"],
"targetLanguageCode" : "ru" }' \
[https://translate.api.cloud.yandex.net/translate/v2/translate](https://translate.api.cloud.yandex.net/translate/v2/translate)
8️⃣ Подставьте соответствующий API-ключ и идентификатор каталога (который вы сохранили ранее после создания сервисного аккаунта).Если вы всё выполнили правильно, то увидите JSON-файл, содержащий результаты перевода:
{
"translations": [
{
"text": "Это секретный приём.",
"detectedLanguageCode": "en"
}
]
}
Итоги урока
Теперь вы знаете, как правильно выполнять аутентификацию и авторизацию в облачных сервисах, чтобы обеспечить безопасность данных. Уверена, что дальше вы сможете самостоятельно выполнить подобные операции. В следующем уроке вы познакомитесь с вариантами использования предобученных моделей и поймёте, как выбрать наиболее подходящую для ваших задач.❗Не забудьте остановить ресурсы, чтобы избежать лишних трат.
0 комментариев