Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Cloud CDN
  • Начало работы
    • Все инструкции
    • Подключиться к провайдеру Cloud CDN
      • Создать ресурс
      • Изменить основные настройки ресурса
      • Получить информацию о ресурсе
      • Настроить кеширование ресурса
      • Настроить выгрузку логов
      • Предзагрузить файлы на CDN-серверы
      • Очистить кеш ресурса
      • Настроить заголовки запросов и ответов
      • Настроить CORS при ответах клиентам
      • Настроить HTTP-методы
      • Включить сжатие файлов
      • Включить сегментацию файлов
      • Включить экранирование источников
      • Настроить перенаправление запросов
      • Настроить доступ по защищенному токену
      • Управлять дополнительными настройками ресурса
      • Отключить ресурс
      • Управление метками ресурса
      • Удалить ресурс
      • Посмотреть статистику ресурса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Решение проблем
  1. Пошаговые инструкции
  2. Ресурсы
  3. Настроить CORS при ответах клиентам

Настройка CORS при ответах клиентам

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.

Примечание

Чтобы кросс-доменные запросы работали корректно, дополнительно настройте CORS на источнике, если источник поддерживает этот механизм. Например, настройка CORS потребуется для бакетов Object Storage.

Чтобы настроить для ресурса кросс-доменные запросы по механизму CORS:

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите каталог, в котором расположен ресурс.

  2. Выберите сервис Cloud CDN.

  3. Нажмите на имя необходимого ресурса.

  4. Перейдите на вкладку HTTP-заголовки и методы.

  5. В правом верхнем углу нажмите кнопку Редактировать.

  6. В блоке CORS при ответе клиенту:

    • В поле Заголовок Access-Control-Allow-Origin укажите, нужно ли добавлять этот заголовок к ответам.
    • При добавлении заголовка выберите, при каких значениях заголовка Origin разрешен доступ к контенту. Чтобы разрешить доступ только определенным источникам, выберите Как в Origin, если входит в список, укажите доменные имена источников и нажмите кнопку Добавить доменное имя.
  7. Нажмите кнопку Сохранить.

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

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

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

    yc cdn resource update --help
    
  2. Получите список всех ресурсов в каталоге по умолчанию:

    yc cdn resource list --format yaml
    

    Результат:

    id: s0me1dkfjq********
    folder_id: s0mef01der7p********
    cname: testexample.com
    created_at: "2022-01-19T09:23:57.921365Z"
    updated_at: "2022-01-19T10:55:30.305141Z"
    active: true
    options:
      edge_cache_settings:
        enabled: true
        default value: "345600"
      cache_http_headers:
        enabled: true
        value:
        - content-type
        - content-length
        - connection
        - server
        - date
        - test
      stale:
        enabled: true
        value:
        - error
        - updating
      allowed_http_methods:
        value:
        - GET
        - POST
        - HEAD
        - OPTIONS
    origin_group_id: "89783"
    origin_group_name: My origins group
    origin_protocol: HTTP
    ssl_certificate:
      type: DONT_USE
      status: READY
    
  3. Чтобы включить добавление заголовка Access-Control-Allow-Origin, используйте флаг --cors:

    yc cdn resource update <идентификатор_ресурса> --cors <значение_CORS>
    

    Значения * и "$http_origin" разрешают доступ к контенту при любом значении заголовка Origin. Чтобы разрешить доступ только определенным источникам, укажите "$http_origin" и доменные имена источников: ["domain.com", "second.dom.com"].

    Подробнее о команде yc cdn resource update см. в справочнике CLI.

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

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

    terraform {
      required_providers {
        yandex = {
          source  = "yandex-cloud/yandex"
          version = "0.69.0"
        }
      }
    }
    
    provider "yandex" {
      token     = "<OAuth-токен>"
      cloud_id  = "<идентификатор_облака>"
      folder_id = "<идентификатор_каталога>"
      zone      = "<зона_доступности>"
    }
    
    resource "yandex_cdn_resource" "my_resource" {
        cname               = "cdn1.yandex-example.ru"
        active              = false
        origin_protocol     = "https"
        secondary_hostnames = ["cdn-example-1.yandex.ru", "cdn-example-2.yandex.ru"]
        origin_group_id     = yandex_cdn_origin_group.my_group.id
        options {
          allowed_http_methods = ["GET","PUT"]
          cors                 = ["*"]
        }
    
    }
    

    Где:

    • cname — основное доменное имя для раздачи контента. Обязательный параметр.
    • active — флаг, указывающий на доступ к контенту для конечных пользователей. True — контент из CDN будет доступен клиентам. Необязательный параметр, значение по умолчанию: true.
    • origin_protocol — протокол для источников. Необязательный параметр, значение по умолчанию: http.
    • secondary_hostnames — дополнительные доменные имена. Необязательный параметр.
    • origin_group_id — идентификатор группы источников. Обязательный параметр. Используйте идентификатор из описания группы источников в ресурсе yandex_cdn_origin_group.
    • Блок options содержит дополнительные параметры CDN-ресурсов:
      • cors — значение, которое CDN отправит в заголовке Access-Control-Allow-Origin в ответ на CORS-запрос.
      • allowed_http_methods — HTTP-методы, разрешенные для вашего контента CDN. По умолчанию разрешены следующие методы: GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS. В случае, если некоторые методы запрещены пользователю, он получит ответ 405 (Method Not Allowed). Если метод не поддерживается, пользователь получает ответ 501 (Not Implemented). Необязательный параметр, значения по умолчанию: GET, HEAD, POST,OPTIONS.

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

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

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

    terraform validate
    

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

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

    terraform plan
    

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

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

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

    Проверить изменение CDN-ресурса можно в консоли управления или с помощью команды CLI:

    yc cdn resource list
    

Воспользуйтесь методом REST API update для ресурса Resource или вызовом gRPC API ResourceService/Update.

Чтобы новые настройки существующего ресурса применились к CDN-серверам, может потребоваться до 15 минут. После этого рекомендуется очистить кеш ресурса.

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

Предыдущая
Настроить заголовки запросов и ответов
Следующая
Настроить HTTP-методы
Проект Яндекса
© 2025 ООО «Яндекс.Облако»