Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Object Storage
    • Все инструкции
      • Настройка хостинга
      • Поддержка собственного домена
      • Поддержка нескольких доменных имен
      • Настройка HTTPS
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

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

  • Хостинг статического сайта
  • Переадресация всех запросов
  • Условная переадресация запросов
  1. Пошаговые инструкции
  2. Хостинг статических сайтов
  3. Настройка хостинга

Настройка хостинга

Статья создана
Yandex Cloud
Улучшена
Обновлена 25 июня 2025 г.
  • Хостинг статического сайта
  • Переадресация всех запросов
  • Условная переадресация запросов

Примечание

В регионе Казахстан доступна только зона доступности kz1-a.

Вы можете разместить свой статический сайт в Object Storage. Статический сайт строится на клиентских технологиях, таких как HTML, CSS и JavaScript. Он не может содержать каких-либо скриптов, требующих запуска на стороне веб-сервера.

Страницы статического сайта — это объекты в бакете, ключи объектов соответствуют пути к странице на сайте, а полный URL страницы имеет вид http(s)://website.yandexcloud.kz/<имя_бакета>/<ключ_объекта>.

В бакетах Object Storage поддерживаются:

  • Хостинг статического сайта.
  • Переадресация всех запросов.
  • Условная переадресация запросов.

Хостинг статического сайтаХостинг статического сайта

Консоль управления
Yandex Cloud CLI
Terraform
API
  1. В консоли управления в списке сервисов выберите Object Storage и перейдите в бакет, для которого хотите настроить хостинг.
  2. На панели слева выберите Настройки.
  3. Перейдите на вкладку Основные.
  4. В полях Доступ на чтение объектов и Доступ к списку объектов выберите Публичный.
  5. Нажмите Сохранить.
  6. Выберите вкладку Веб-сайт.
  7. В разделе Хостинг:
    • В поле Главная страница укажите абсолютный путь к файлу в бакете для главной страницы сайта, например index.html.

      Важно

      Ключ объекта с главной страницей сайта не может содержать символ /.

    • (опционально) В поле Страница ошибки укажите абсолютный путь к файлу в бакете, который будет отображаться при ошибках 4xx, например pages/error404.html. По умолчанию Object Storage возвращает собственную страницу.

  8. Нажмите кнопку Сохранить.

Проверить хостинг можно, перейдя по ссылке в поле Ссылка.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для настройки хостинга статического сайта в бакете:

    yc storage bucket update --help
    
  2. Создайте файл с настройками хостинга в формате JSON. Например:

    {
      "index": "index.html",
      "error": "error404.html"
    }
    

    Где:

    • index — абсолютный путь к файлу главной страницы сайта.

      Важно

      Ключ объекта с главной страницей сайта не может содержать символ /.

    • error — абсолютный путь к файлу, который будет отображаться пользователю при ошибках 4xx.

  3. Выполните следующую команду:

    yc storage bucket update --name <имя_бакета> \
      --website-settings-from-file <путь_к_файлу>
    

    Где:

    • --name — имя бакета.
    • --website-settings-from-file — путь к файлу с настройками хостинга.

    Результат:

    name: my-bucket
    folder_id: b1gjs8dck8bv********
    default_storage_class: STANDARD
    versioning: VERSIONING_SUSPENDED
    max_size: "10737418240"
    acl: {}
    created_at: "2022-12-14T08:42:16.273717Z"
    

Чтобы убедиться, что настройки хостинга появились в описании бакета, выполните команду:

yc storage --name <имя_бакета> bucket get --full

Результат:

website_settings:
  index: index.html
  error: error404.html
  redirect_all_requests: {}

Примечание

Terraform взаимодействует с Object Storage от имени сервисного аккаунта. Назначьте сервисному аккаунту нужную роль, например storage.admin, на каталог, в котором будут создаваться ресурсы.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

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

Примечание

Кроме статических ключей доступа для аутентификации в Object Storage можно использовать IAM-токен. Подробнее смотрите в разделе Создание бакета и в документации провайдера.

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

    provider "yandex" {
      token     = "<OAuth>"
      cloud_id  = "<идентификатор_облака>"
      folder_id = "<идентификатор_каталога>"
      zone      = "kz1-a"
    }
    
    resource "yandex_iam_service_account" "sa" {
      name = "<имя_сервисного_аккаунта>"
    }
    
    // Назначение роли сервисному аккаунту
    resource "yandex_resourcemanager_folder_iam_member" "sa-admin" {
      folder_id = "<идентификатор_каталога>"
      role      = "storage.admin"
      member    = "serviceAccount:${yandex_iam_service_account.sa.id}"
    }
    
    // Создание статического ключа доступа
    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"
    }
    
    resource "yandex_storage_bucket" "test" {
      access_key = yandex_iam_service_account_static_access_key.sa-static-key.access_key
      secret_key = yandex_iam_service_account_static_access_key.sa-static-key.secret_key
      bucket     = "<имя_бакета>"
      acl        = "public-read"
    
      website {
        index_document = "index.html"
        error_document = "error.html"
      }
    
    }
    

    Где:

    • access_key — идентификатор статического ключа доступа.
    • secret_key — значение секретного ключа доступа.
    • bucket — имя бакета.
    • acl — параметры управления доступом ACL.
    • website — параметры сайта:
      • index_document — абсолютный путь к файлу главной страницы сайта. Обязательный параметр.

        Важно

        Ключ объекта с главной страницей сайта не может содержать символ /.

      • error_document — абсолютный путь к файлу, который будет отображаться пользователю при ошибках 4xx. Необязательный параметр.

  2. Проверьте корректность конфигурационных файлов.

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

    2. Выполните проверку с помощью команды:

      terraform plan
      

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

  3. Разверните облачные ресурсы.

    1. Если в конфигурации нет ошибок, выполните команду:
    terraform apply
    
    1. Подтвердите создание ресурсов.

    После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Чтобы настроить хостинг статического сайта, воспользуйтесь методом REST API update для ресурса Bucket, вызовом gRPC API BucketService/Update или методом S3 API upload.

Переадресация всех запросовПереадресация всех запросов

Консоль управления
Yandex Cloud CLI
Terraform
API
  1. В консоли управления в списке сервисов выберите Object Storage и перейдите в бакет, для которого хотите настроить переадресацию всех запросов.
  2. На панели слева выберите Настройки.
  3. Выберите вкладку Веб-сайт.
  4. В разделе Переадресация укажите:
    • Доменное имя хоста, на который будут перенаправляться все запросы к бакету.
    • (Опционально) Протокол, если указанный хост принимает запросы строго по определенному протоколу.
  5. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для настройки переадресации всех запросов:

    yc storage bucket update --help
    
  2. Создайте файл с настройками переадресации в формате JSON. Например:

    {
      "redirectAllRequests": {
        "protocol": "PROTOCOL_HTTP",
        "hostname": "example.com"
      }
    }
    

    Где:

    • protocol — протокол передачи данных: PROTOCOL_HTTP или PROTOCOL_HTTPS. По умолчанию используется протокол из исходного запроса.
    • hostname — доменное имя хоста, на который будут перенаправляться все запросы к текущему бакету.
  3. Выполните следующую команду:

    yc storage bucket update --name <имя_бакета> \
      --website-settings-from-file <путь_к_файлу>
    

    Где:

    • --name — имя бакета.
    • --website-settings-from-file — путь к файлу с настройками переадресации.

    Результат:

    name: my-bucket
    folder_id: b1gjs8dck8bv********
    default_storage_class: STANDARD
    versioning: VERSIONING_SUSPENDED
    max_size: "10737418240"
    acl: {}
    created_at: "2022-12-14T08:42:16.273717Z"
    

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

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

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

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы настроить переадресацию всех запросов:

  1. Откройте файл конфигурации Terraform и добавьте параметр redirect_all_requests_to в описание ресурса yandex_storage_bucket:

    ...
    resource "yandex_storage_bucket" "test" {
      access_key = "<идентификатор_статического_ключа>"
      secret_key = "<секретный_ключ>"
      bucket     = "<имя_бакета>"
      acl        = "public-read"
    
      website {
        index_document = "<абсолютный_путь_к_файлу_главной_страницы_сайта>"
        error_document = "<абсолютный_путь_к_файлу_ошибок>"
        redirect_all_requests_to = "<имя_хоста>"
      }
    }
    ...
    

    Где:

    • access_key — идентификатор статического ключа доступа.

      Примечание

      Кроме статических ключей доступа для аутентификации в Object Storage можно использовать IAM-токен. Подробнее смотрите в разделе Создание бакета и в документации провайдера.

    • secret_key — значение секретного ключа доступа.

    • bucket — имя бакета.

    • acl — параметры управления доступом ACL.

    • website — параметры сайта:

      • index_document — абсолютный путь к файлу главной страницы сайта. Обязательный параметр.
      • error_document — абсолютный путь к файлу, который будет отображаться пользователю при ошибках 4xx. Необязательный параметр.
      • redirect_all_requests_to — доменное имя хоста, на который будут перенаправляться все запросы к текущему бакету. Вы можете указать префикс протокола (http:// или https://). По умолчанию используется протокол из исходного запроса.

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

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

    terraform validate
    

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

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

    terraform plan
    

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

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

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

    Проверить настройку переадресации запросов можно в консоли управления.

Чтобы настроить переадресацию всех запросов к бакету, воспользуйтесь методом REST API update для ресурса Bucket, вызовом gRPC API BucketService/Update или методом S3 API upload.

Переадресация запросов с HTTP на HTTPS включается автоматически после настройки доступа к бакету по HTTPS. Дополнительных настроек для такой переадресации не требуется.

Условная переадресация запросовУсловная переадресация запросов

Используя правила маршрутизации можно перенаправлять запросы в соответствии с префиксами имен объектов или HTTP-кодами ответов. Вы можете перенаправить на другую веб-страницу запрос к удаленному объекту или перенаправить запросы, возвращающие ошибку.

Консоль управления
Yandex Cloud CLI
Terraform
API
  1. В консоли управления в списке сервисов выберите Object Storage и перейдите в бакет, для которого хотите настроить условную переадресацию запросов.
  2. На панели слева выберите Настройки.
  3. Выберите вкладку Веб-сайт.
  4. В разделе Хостинг в блоке Переадресация нажмите кнопку Добавить правило переадресации.
  5. В блоке Условие укажите как минимум одно условие переадресации:
    • Код ответа — HTTP-код, которым Object Storage должен был бы ответить на запрос без переадресации.
    • Начало ключа — начало ключа объекта в запросе. Подробнее о ключах и устройстве статического сайта.
  6. В блоке Переадресация задайте параметры переадресации:
    • Протокол, по которому должен быть отправлен переадресованный запрос.
    • Доменное имя хоста, на который должны перенаправляться запросы, удовлетворившие условию.
    • Код ответа для определения типа редиректа.
    • Заменять ключ — Не заменять, Весь ключ или Только начало, указанное в условии.
  7. Нажмите кнопку Сохранить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Посмотрите описание команды CLI для настройки условной переадресации запросов:

    yc storage bucket update --help
    
  2. Создайте файл с настройками условной переадресации в формате JSON. Например:

    {
      "index": "index.html",
      "error": "error404.html",
      "routingRules": [
        {
          "condition": {
            "httpErrorCodeReturnedEquals": "404",
            "keyPrefixEquals": "key"
          },
          "redirect": {
            "hostname": "example.com",
            "httpRedirectCode": "301",
            "protocol": "PROTOCOL_HTTP",
            "replaceKeyPrefixWith": "prefix",
            "replaceKeyWith": "key"
          } 
        }
      ]
    }
    

    Где:

    • index — абсолютный путь к файлу главной страницы сайта. Обязательный параметр.

      Примечание

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

    • error — абсолютный путь к файлу, который будет отображаться пользователю при ошибках 4xx. Необязательный параметр.

    • condition — условие, при котором выполняется перенаправление:

      • httpErrorCodeReturnedEquals — HTTP-код ответа.
      • keyPrefixEquals — префикс ключа объекта.
    • redirect — настройки перенаправления:

      • hostname — доменное имя хоста, на который будут перенаправляться все запросы к текущему бакету.
      • httpRedirectCode — новый HTTP-код ответа.
      • protocol — новый протокол передачи данных: PROTOCOL_HTTP или PROTOCOL_HTTPS. По умолчанию используется протокол из исходного запроса.
      • replaceKeyPrefixWith — новый префикс ключа объекта.
      • replaceKeyWith — новый ключ объекта.
  3. Выполните следующую команду:

    yc storage bucket update --name <имя_бакета> \
      --website-settings-from-file <путь_к_файлу>
    

    Где:

    • --name — имя бакета.
    • --website-settings-from-file — путь к файлу с настройками условной переадресации.

    Результат:

    name: my-bucket
    folder_id: b1gjs8dck8bv********
    default_storage_class: STANDARD
    versioning: VERSIONING_SUSPENDED
    max_size: "10737418240"
    acl: {}
    created_at: "2022-12-14T08:42:16.273717Z"
    

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

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

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

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

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

  1. Откройте файл конфигурации Terraform и добавьте параметр routing_rules в описание бакета:

    ...
    resource "yandex_storage_bucket" "test" {
      access_key = "<идентификатор_статического_ключа>"
      secret_key = "<секретный_ключ>"
      bucket     = "<имя_бакета>"
      acl        = "public-read"
    
      website {
        index_document = "<абсолютный_путь_к_файлу_главной_страницы_сайта>"
        error_document = "<абсолютный_путь_к_файлу_ошибок>"
        routing_rules  = <<EOF
        [
          {
            "Condition": {
              "KeyPrefixEquals": "<префикс_ключа_объекта>",
              "HttpErrorCodeReturnedEquals": "<HTTP-код_ответа>"
            },
            "Redirect": {
              "Protocol": "<новая_схема>",
              "HostName": "<новое_доменное_имя>",
              "ReplaceKeyPrefixWith": "<новый_префикс_ключа_объекта>",
              "ReplaceKeyWith": "<новый_ключ_объекта>",
              "HttpRedirectCode": "<новый_HTTP-код_ответа>"
            }
          },
        ...
        ]
        EOF
      }
    }
    ...
    

    Где:

    • access_key — идентификатор статического ключа доступа.

      Примечание

      Кроме статических ключей доступа для аутентификации в Object Storage можно использовать IAM-токен. Подробнее смотрите в разделе Создание бакета и в документации провайдера.

    • secret_key — значение секретного ключа доступа.

    • bucket — имя бакета.

    • acl — параметры управления доступом ACL.

    • website — параметры сайта:

      • index_document — абсолютный путь к файлу главной страницы сайта. Обязательный параметр.
      • error_document — абсолютный путь к файлу, который будет отображаться пользователю при ошибках 4xx. Необязательный параметр.
      • routing_rules — правила переадресации запросов в формате JSON. В полях Condition и Redirect каждого правила должно быть как минимум по одной паре ключ — значение. Подробнее о поддерживаемых полях см. в схеме данных соответствующего метода API (вкладка Для условной переадресации запросов).

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

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

    terraform validate
    

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

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

    terraform plan
    

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

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

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

    Проверить настройку условной переадресации запросов можно в консоли управления.

Чтобы настроить условную переадресацию запросов к бакету, воспользуйтесь методом REST API update для ресурса Bucket, вызовом gRPC API BucketService/Update или методом S3 API upload.

Переадресация запросов с HTTP на HTTPS включается автоматически после настройки доступа к бакету по HTTPS. Дополнительных настроек для такой переадресации не требуется.

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

  • Собственный домен
  • Поддержка нескольких доменных имен для сайта
  • Настройка HTTPS

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

Предыдущая
Управление пользовательскими метаданными объекта
Следующая
Поддержка собственного домена
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»