Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все руководства
    • Получение статистики запросов к объекту с использованием S3 Select
    • Получение статистики посещения сайта с использованием S3 Select
    • Получение статистики запросов к объектам с использованием Yandex Query
    • Анализ поресурсной детализации расходов
    • Шифрование на стороне сервера
    • Интеграция L7-балансировщика с CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Анализ логов с использованием DataLens
    • Монтирование бакетов к файловой системе хостов Yandex Data Processing
    • Использование Object Storage в Yandex Data Processing
    • Импорт данных из Object Storage, обработка и экспорт в Managed Service for ClickHouse®
    • Подключение бакета как диска в Windows
    • Миграция данных из Yandex Data Streams с помощью Yandex Data Transfer
    • Использование гибридного хранилища в Yandex Managed Service for ClickHouse®
    • Загрузка данных из Yandex Managed Service for OpenSearch в Yandex Object Storage с помощью Yandex Data Transfer
    • Автоматическое копирование объектов из бакета в бакет
    • Регулярное асинхронное распознавание аудиофайлов в бакете
    • Обучение модели в Yandex DataSphere на данных из Object Storage
    • Подключение к Object Storage из VPC
    • Перенос данных в Yandex Managed Service for PostgreSQL с использованием Yandex Data Transfer
    • Загрузка данных в Yandex MPP Analytics for PostgreSQL с помощью Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for ClickHouse® с помощью Yandex Data Transfer
    • Загрузка данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Обмен данными между Yandex Managed Service for ClickHouse® и Yandex Data Processing
    • Загрузка данных из Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Хостинг статического сайта на фреймворке Gatsby в Object Storage
      • Обзор
      • CLI
      • Terraform
    • Миграция базы данных из Managed Service for PostgreSQL в Object Storage
    • Обмен данными между Yandex Managed Service for ClickHouse® и Yandex Data Processing
    • Импорт данных из Yandex Managed Service for PostgreSQL в Yandex Data Processing с помощью Sqoop
    • Импорт данных из Yandex Managed Service for MySQL® в Yandex Data Processing с помощью Sqoop
    • Миграция данных из Yandex Object Storage в Yandex Managed Service for MySQL® с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL® в Yandex Object Storage
    • Выгрузка данных Greenplum® в холодное хранилище Yandex Object Storage
    • Загрузка данных из Яндекс Директ в витрину Yandex Managed Service for ClickHouse® с использованием Yandex Cloud Functions, Yandex Object Storage и Yandex Data Transfer
    • Загрузка состояний Terraform в Object Storage
    • Блокировка состояний Terraform с помощью Managed Service for YDB
    • Визуализация данных Yandex Query
    • Публикация обновлений для игр
    • Резервное копирование ВМ с помощью Хайстекс Акура
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veeam Backup
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Резервное копирование кластера Managed Service for Kubernetes в Object Storage
    • Разработка пользовательской интеграции в API Gateway
    • Сокращатель ссылок
    • Хранение журналов работы приложения
    • Разработка навыка Алисы и сайта с авторизацией
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Telegram-бота
    • Репликация логов в Object Storage с помощью Fluent Bit
    • Репликация логов в Object Storage с помощью Data Streams
    • Загрузка аудитных логов в SIEM ArcSight
    • Загрузка аудитных логов в SIEM Splunk
    • Создание сервера MLFlow для логирования экспериментов и артефактов
    • Работа с данными с помощью Yandex Query
    • Федеративные запросы к данным с помощью Query
    • Распознавание архива изображений в Vision OCR
    • Регулярное распознавание изображений и PDF-документов из бакета Object Storage
    • Конвертация видео в GIF на Python
    • Автоматизация задач с помощью Managed Service for Apache Airflow™
    • Обработка файлов детализации в сервисе Yandex Cloud Billing
    • Развертывание веб-приложения с JWT-авторизацией в API Gateway и аутентификацией в Firebase
    • Поиск событий Yandex Cloud в Yandex Query
    • Поиск событий Yandex Cloud в Object Storage
    • Создание внешней таблицы на базе таблицы из бакета с помощью конфигурационного файла
    • Миграция базы данных из Google BigQuery в Managed Service for ClickHouse®
    • Использование Object Storage в Yandex Managed Service for Apache Spark™
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте окружение
  • Создайте инфраструктуру
  • Используйте ключ из секрета Yandex Lockbox для работы с сервисом
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Хранение статического ключа доступа в секрете Yandex Lockbox
  3. Terraform

Использование секрета Yandex Lockbox для хранения статического ключа доступа с помощью Terraform

Статья создана
Yandex Cloud
Улучшена
kvendingoldo
Обновлена 11 июля 2025 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Подготовьте окружение
  • Создайте инфраструктуру
  • Используйте ключ из секрета Yandex Lockbox для работы с сервисом
  • Как удалить созданные ресурсы

Чтобы использовать статический ключ доступа, сохраненный в секрете Yandex Lockbox, с помощью Terraform:

  1. Подготовьте окружение.
  2. Создайте инфраструктуру.
  3. Используйте ключ из секрета Yandex Lockbox для работы с сервисом.

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работыПеред началом работы

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки инфраструктуры входят:

  • плата за хранение одной версии секрета Yandex Lockbox (см. тарифы Yandex Lockbox);
  • плата за хранение данных в Object Storage, операции с ними и исходящий трафик (плата не будет взиматься, если в бакете не будут храниться данные, см. тарифы Object Storage).

Подготовьте окружениеПодготовьте окружение

Установите утилиту командной строки AWS CLI.

Настраивать утилиту на этом этапе не обязательно. Необходимые параметры, такие как идентификаторы и ключи доступа, будут описаны и использованы в командах и переменных окружения далее в этом руководстве.

Создайте инфраструктуруСоздайте инфраструктуру

Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.

Terraform распространяется под лицензией Business Source License, а провайдер Yandex Cloud для Terraform — под лицензией MPL-2.0.

Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.

Для создания инфраструктуры c помощью Terraform:

  1. Установите Terraform, получите данные для аутентификации и укажите источник для установки провайдера Yandex Cloud (раздел Настройте провайдер, шаг 1).

  2. Подготовьте файл с описанием инфраструктуры:

    Готовая конфигурация
    Вручную
    1. Клонируйте репозиторий с конфигурационными файлами.

      git clone https://github.com/yandex-cloud-examples/yc-static-keys-in-lockbox
      
    2. Перейдите в директорию с репозиторием. В ней должен появиться файл static-key-in-lockbox-config.tf — конфигурация создаваемой инфраструктуры.

    1. Создайте папку для конфигурационных файлов.

    2. Создайте в папке конфигурационный файл static-key-in-lockbox-config.tf:

      static-key-in-lockbox-config.tf
      # Объявление пользовательских переменных
      
      locals {
        zone      = "<зона_доступности>"
        folder_id = "<идентификатор_каталога>"
      }
      
      terraform {
        required_providers {
          yandex = {
            source  = "yandex-cloud/yandex"
            version = ">= 0.47.0"
          }
        }
      }
      
      # Настройка провайдера
      
      provider "yandex" {
        zone = local.zone
      }
      
      # Создание сервисного аккаунта и назначение ролей
      
      resource "yandex_iam_service_account" "sa" {
        folder_id = local.folder_id
        name      = "storage-bucket-sa"
      }
      
      resource "yandex_resourcemanager_folder_iam_member" "sa-admin" {
        folder_id = local.folder_id
        role      = "storage.admin"
        member    = "serviceAccount:${yandex_iam_service_account.sa.id}"
      }
      
      resource "yandex_resourcemanager_folder_iam_member" "lockboxview" {
        folder_id = local.folder_id
        role      = "lockbox.payloadViewer"
        member    = "serviceAccount:${yandex_iam_service_account.sa.id}"
      }
      
      # Создание секрета
      
      resource "yandex_lockbox_secret" "my_secret" {
        name                = "static-key"
        folder_id           = local.folder_id
        deletion_protection = true
      }
      
      # Создание статического ключа доступа
      
      resource "yandex_iam_service_account_static_access_key" "sa-static-key" {
        service_account_id = yandex_iam_service_account.sa.id
        description        = "static access key for object storage"
        output_to_lockbox {
          secret_id            = yandex_lockbox_secret.my_secret.id
          entry_for_access_key = "key_id"
          entry_for_secret_key = "key"
        }
      }
      
      # Источник данных версии секрета
      
      data "yandex_lockbox_secret_version" "my_secret_version" {
        secret_id  = yandex_lockbox_secret.my_secret.id
        version_id = yandex_iam_service_account_static_access_key.sa-static-key.output_to_lockbox_version_id
        depends_on = [
          yandex_lockbox_secret.my_secret
        ]
      }
      
      # Выходные переменные
      
      output "key_id" {
        value = data.yandex_lockbox_secret_version.my_secret_version.entries[1].text_value
      }
      
      output "key" {
        value = data.yandex_lockbox_secret_version.my_secret_version.entries[0].text_value
      }
      

    Более подробную информацию о параметрах используемых ресурсов в Terraform см. в документации провайдера:

    • Сервисный аккаунт — yandex_iam_service_account.
    • Назначение роли сервисному аккаунту — yandex_resourcemanager_folder_iam_member.
    • Секрет — yandex_lockbox_secret.
    • Статический ключ доступа — yandex_iam_service_account_static_access_key.
    • Версия секрета — yandex_lockbox_secret_version.
  3. В файле static-key-in-lockbox-config.tf задайте пользовательские параметры:

    • zone_id — зона доступности.
    • folder_id — идентификатор каталога.
  4. Создайте ресурсы:

    1. В терминале перейдите в папку, где вы отредактировали конфигурационный файл.

    2. Проверьте корректность конфигурационного файла с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

После создания инфраструктуры, используйте ключ из секрета для работы с сервисом.

Используйте ключ из секрета Yandex Lockbox для работы с сервисомИспользуйте ключ из секрета Yandex Lockbox для работы с сервисом

Пример ниже разработан для выполнения в операционных системах MacOS и Linux. Чтобы выполнить его в системе Windows, ознакомьтесь с особенностями работы с Bash в Microsoft Windows.

Используйте ключ из секрета Yandex Lockbox и создайте бакет в Object Storage:

  1. Сохраните идентификатор ключа, секретный ключ и значение региона размещения в переменные окружения AWS CLI:

    AWS_ACCESS_KEY_ID=$(terraform output key_id)
    AWS_SECRET_ACCESS_KEY=$(terraform output key)
    AWS_DEFAULT_REGION="ru-central1"
    

    AWS CLI будет использовать созданные переменные окружения для аутентификации при выполнении операций с ресурсами сервиса.

  2. Создайте бакет в Object Storage, указав в команде уникальное имя бакета:

    AWS CLI
    aws --endpoint-url=https://storage.yandexcloud.net \
      s3 mb s3://<имя_бакета>
    

    Результат:

    make_bucket: my-first-bucket
    

    В результате будет создан новый бакет в Object Storage. При создании бакета используется статический ключ доступа, полученный из секрета Yandex Lockbox и сохраненный в переменные окружения.

    Вы также передать значения идентификатора ключа, секретного ключа и региона размещения непосредственно в каждой команде AWS CLI:

    AWS CLI
    AWS_ACCESS_KEY_ID=$(terraform output key_id) \
    AWS_SECRET_ACCESS_KEY=$(terraform output key) \
    AWS_DEFAULT_REGION="ru-central1" \
    aws --endpoint-url=https://storage.yandexcloud.net \
      s3 mb s3://<имя_бакета>
    

    Результат:

    make_bucket: my-first-bucket
    

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы:

  1. Удалите бакет.

  2. Откройте конфигурационный файл static-key-in-lockbox-config.tf и удалите описание создаваемой инфраструктуры из файла.

  3. Примените изменения:

    1. В терминале перейдите в папку, где вы отредактировали конфигурационный файл.

    2. Проверьте корректность конфигурационного файла с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

См. такжеСм. также

  • Использование секрета Yandex Lockbox для хранения статического ключа доступа с помощью CLI

Была ли статья полезна?

Предыдущая
CLI
Следующая
Миграция базы данных из Managed Service for PostgreSQL в Object Storage
Проект Яндекса
© 2025 ООО «Яндекс.Облако»