Работа с конфиденциальными данными

В Tengri реализован специальный механизм для безопасного хранения конфиденциальных данных — секретов (паролей, API-ключей, токенов доступа и других учетных данных) и их безопасного использования в коде.

Главное преимущество функционала — безопасность. Значение секрета сохраняется в зашифрованном виде один раз. Оно подставляется на стороне сервера непосредственно во время выполнения запроса и больше никогда не отображается в интерфейсе платформы.

Работа с секретами осуществляется во вкладке Настройки > Секреты.

В целях безопасности значение сохраненного секрета невозможно просмотреть или скопировать из интерфейса после его создания.

Как это работает

Пользователь создает секрет через графический интерфейс, задавая ему уникальное имя (идентификатор) и значение. После сохранения на этот секрет можно ссылаться в коде по идентификатору с помощью специальной функции secret.

Синтаксис

secret('идентификатор')

Пример

Зададим три секрета для доступа к хранилищу AWS через графический интерфейс.

secrets RU
Интерфейс Tengri для работы с секретами

Теперь используем функцию secret для задания параметров доступа к хранилищу AWS, не раскрывая секреты в коде.

import boto3

s3_client = boto3.client('s3',
                        endpoint_url=secret('aws_url'),
                        aws_access_key_id=secret('aws_access_key_id'),
                        aws_secret_access_key=secret('aws_access_key'),
                        region_name='us-east-1')

В настоящее время использование секретов реализовано для кода на Python. Использование секретов в коде SQL — в стадии разработки. Чтобы использовать секреты в коде SQL, можно воспользоваться функцией tngri.sql.