Устранение ошибки Unauthenticated
Статья создана
Обновлена 16 августа 2024 г.
Описание проблемы
Попытка установить доступ к Managed Service for YDB с локальной машины завершается ошибкой Unauthenticated
.
Решение
Можно авторизоваться с помощью IAM-токена или токена сервисного аккаунта. Примеры кода приведены здесь
Пример работы с YDB Python SDK
- Создайте каталог, например
ydb
, и перейдите в него через PowerShell или Bash:cd ydb
. Далее команды в этом терминале нужно будет выполнять в этой папке. - Создайте авторизованный ключ для сервисного аккаунта:
yc iam key create --service-account-id <id_СА> --output token.json
. Ключtoken.json
будет создан в каталогеydb
. - Выполните проверку работоспособности ключа:
ydb --endpoint grpcs://ydb.serverless.yandexcloud.net:2135 --database /ru-central1/b1gb4.../etn0fu... --sa-key-file token.json discovery whoami
. Должен получиться ответ:User SID: ajei6s...@as
— это значит, что соединение работает. - Клонируйте пример из GitHub:
git clone https://github.com/ydb-platform/ydb-python-sdk.git
. Он сохранится в текущем каталогеydb
для удобства. - Установите библиотеку:
python -m pip install iso8601
. - Добавьте в переменную
SA_KEY_FILE
окружения расположение этого файла:- Linux:
export SA_KEY_FILE=~/ydb/token.json
; - Microsoft Windows®:
$SA_KEY_FILE="C:\Users\<user>\ydb\token.json"
.
- Linux:
- Выполните скрипт:
python ydb-python-sdk/examples/basic_example_v1/ -e grpcs://ydb.serverless.yandexcloud.net:2135 -d /ru-central1/b1gb4.../etn0fu...
.