Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Практические руководства
    • Все руководства
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Построение пайплайна CI/CD в GitLab
    • Работа с API-шлюзом по протоколу WebSocket
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Автоматическое копирование объектов из одного бакета Object Storage в другой
    • Визуализация логов в Grafana с помощью плагина Cloud Logging
    • Канареечный релиз функции Cloud Functions
    • Интерактивная отладка функций Cloud Functions
    • Создание функции Node.js с помощью TypeScript
    • Запуск контейнерного приложения в Serverless Containers
    • Передача событий Yandex Cloud Postbox в Data Streams и их анализ с помощью DataLens
    • Использование API Gateway для настройки синтеза речи в SpeechKit
    • Подключение к YDB из функции Cloud Functions на Python
    • Подключение к базе данных YDB из функции Cloud Functions на Node.js
    • Защита API Gateway при помощи Smart Web Security
    • Развертывание веб-приложения с JWT-авторизацией в API Gateway и аутентификацией в Firebase
    • Автоматическая загрузка данных в Yandex SpeechSense с помощью Yandex Workflows
    • Настройка реагирования в Cloud Logging и Yandex Cloud Functions
    • Настройка интеграций Workflows с Tracker, YandexGPT и Yandex Cloud Postbox
    • Разработка функций в Functions Framework и их развертывание в Yandex Serverless Containers
    • Создание адреса Yandex Cloud Postbox и проверка владения доменом с помощью Terraform

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

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Делегируйте домен сервису Cloud DNS
  • Подготовьте ключи для подписи электронных писем
  • Создайте инфраструктуру
  • Проверьте работу сервиса
  • Как удалить созданные ресурсы
  1. Бессерверные технологии
  2. Создание адреса Yandex Cloud Postbox и проверка владения доменом с помощью Terraform

Создание адреса Yandex Cloud Postbox и проверка владения доменом с помощью Terraform

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

В этом руководстве вы с помощью Terraform создадите адрес в Yandex Cloud Postbox, а также добавите в DNS-зону вашего домена необходимые ресурсные записи для подтверждения владения доменом и отправки писем.

Ресурсную запись для подтверждения владения доменом можно добавить в Yandex Cloud DNS, если вы делегировали домен, или у вашего регистратора домена.

Для работы с Yandex Cloud Postbox в руководстве используется API, совместимый с AWS SESv2, поэтому для создания и управления ресурсами Yandex Cloud Postbox используется провайдер AWS. Для управления всеми остальными ресурсами используется провайдер Yandex Cloud.

  1. Подготовьте облако к работе.
  2. Делегируйте домен сервису Cloud DNS.
  3. Подготовьте ключи для подписи электронных писем.
  4. Создайте инфраструктуру.
  5. Проверьте работу сервиса.

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

Подготовьте облако к работеПодготовьте облако к работе

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

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

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

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

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

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

  • плата за отправленные электронные письма (см. тарифы Yandex Cloud Postbox);
  • плата за публичные DNS-запросы и зоны DNS, если вы используете Yandex Cloud DNS (см. тарифы Cloud DNS).

Делегируйте домен сервису Cloud DNSДелегируйте домен сервису Cloud DNS

Если у вас есть зарегистрированное доменное имя, то вы можете воспользоваться Yandex Cloud DNS для управления доменом.

Чтобы делегировать домен сервису Cloud DNS, в личном кабинете вашего регистратора домена укажите в настройках домена адреса DNS-серверов:

  • ns1.yandexcloud.kz
  • ns2.yandexcloud.kz

Делегирование происходит не сразу. Серверы интернет-провайдеров обычно обновляют записи в течение 24 часов (86400 секунд). Это обусловлено значением TTL, в течение которого кешируются записи для доменов.

Проверить делегирование домена можно с помощью сервиса Whois или утилиты dig:

dig +short NS example.com

Результат:

ns2.yandexcloud.kz.
ns1.yandexcloud.kz.

Подготовьте ключи для подписи электронных писемПодготовьте ключи для подписи электронных писем

Для подписи электронных писем создайте RSA-ключ. Воспользуйтесь скриптом для создания ключа, так как AWS-провайдер ожидает ключ не в формате PEM, а в виде строки, из которой удалены переносы и убраны первая и последняя строки.

  1. Создайте скрипт generate-key.sh со следующим содержимым:

    #!/bin/bash
    
    # Generate private key
    openssl genrsa -out raw_privatekey.pem 2048
    
    # Generate public key from the private key
    openssl rsa -in raw_privatekey.pem -pubout -out publickey.pem
    
    # Process private key for AWS (remove headers and line breaks)
    cat raw_privatekey.pem | grep -v "BEGIN" | grep -v "END" | tr -d '\n' > privatekey.pem
    
    # Format public key for DKIM DNS TXT record
    # Remove headers, strip newlines and concatenate for DNS TXT record
    DKIM_DNS_VALUE=$(cat publickey.pem | grep -v "BEGIN" | grep -v "END" | tr -d '\n')
    echo "$DKIM_DNS_VALUE" > dkim_dns_value.txt
    
    echo "Keys generated:"
    echo "- privatekey.pem (AWS-formatted private key)"
    echo "- publickey.pem (Public key)"
    echo "- raw_privatekey.pem (Original private key with headers)"
    echo "- dkim_dns_value.txt (Public key formatted for DKIM DNS TXT record)"
    
  2. В терминале перейдите в папку со скриптом и выполните:

    ./generate-key.sh
    

В результате выполнения скрипта будут созданы:

  • privatekey.pem — приватный ключ в формате AWS-провайдера;
  • publickey.pem — публичный ключ;
  • raw_privatekey.pem — оригинальный приватный ключ;
  • dkim_dns_value.txt — значение для создания DKIM-записи.

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

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

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

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

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

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

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

    1. Клонируйте репозиторий с конфигурационными файлами.

      git clone https://github.com/yandex-cloud-examples/yc-postbox-tf.git
      
    2. Перейдите в директорию с репозиторием. В ней должны появиться файлы:

      • postbox-email-identity.tf — конфигурация создаваемой инфраструктуры.
      • postbox-email-identity.auto.tfvars — файл с пользовательскими данными.

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

    • Сервисный аккаунт — yandex_iam_service_account.
    • Назначение прав доступа — yandex_resourcemanager_folder_iam_member.
    • Статический ключ доступа — yandex_iam_service_account_static_access_key.
    • DNS-зона — yandex_dns_zone.
    • Ресурсная запись DNS — yandex_dns_recordset.
  3. В файле postbox-email-identity.auto.tfvars задайте пользовательские параметры:

    • folder_id — идентификатор каталога.
    • domain_signing_selector — селектор для подписи домена, например _postbox.
    • domain — домен для отправки писем, например mail.example.com.
    • dns_zone_name — имя существующей DNS-зоны, в которую будет добавлена запись.
  4. Создайте ресурсы:

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

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

      terraform validate
      

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

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

      terraform plan
      

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

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

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

Примечание

Если вы используете другой DNS-сервис, то следует самостоятельно добавить DKIM-запись в соответствии с его документацией. Значение DKIM-записи можно получить, используя следующий код для Terraform:

output "dkim_record" {
  value = {
    value = "v=DKIM1;h=sha256;k=rsa;p=${trim(local.public_key, "\n")}"
    name  = "${var.domain_signing_selector}._domainkey.${var.domain}"
    type  = "TXT"
    ttl   = 3600
  }
}

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

Проверьте работу сервисаПроверьте работу сервиса

Убедитесь, что адрес успешно создан, и отправьте тестовое письмо:

  1. В консоли управления перейдите в каталог, в котором создавали адрес.
  2. Выберите сервис Cloud Postbox.
  3. Выберите созданный адрес и убедитесь, что статус проверки на странице адреса изменился на Success.
  4. Отправьте тестовое письмо.

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

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

  1. Откройте конфигурационный файл postbox-email-identity.tf и удалите описание создаваемой инфраструктуры из файла.

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

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

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

      terraform validate
      

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

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

      terraform plan
      

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

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

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

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

Предыдущая
Terraform
Следующая
Все руководства
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»