<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Бесплатный перенос IT-инфраструктуры в облако
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Настройка CORS для доступа к объектам S3

Когда вы используете файлы из S3-бакетов на сторонних ресурсах, например, на веб-сайте, вы можете столкнуться с ошибкой, связанной с CORS (Cross-Origin Resource Sharing). Эта ошибка возникает, когда браузер блокирует кросс-доменные запросы к ресурсам вашего бакета.

Для решения проблемы необходимо задать специальные правила CORS для бакета, которые разрешат выполнение кросс-доменных запросов. Настроить их можно через панель управления или с использованием утилит, например, AWS CLI.

Настройка CORS через панель управления

  1. В панели управления откройте раздел «Настройки» вашего S3-бакета.

  2. Найдите параметр «CORS» и нажмите «Изменить».

Selection 133

  1. Заполните необходимые параметры правил CORS:

    • Allowed Origins — указывает источники (Origins), с которых разрешены запросы к бакету.
      Например: https://example.com. Можно использовать символ * для разрешения запросов со всех доменов.
    • Allowed Methods — определяет HTTP-методы, которые разрешены для запросов CORS.
    • Allowed Headers — указывает заголовки, которые разрешены в запросах.
      Например: Authorization, Content-Type. Можно указать *, чтобы разрешить все заголовки.
    • Expose Headers — список заголовков, которые будут доступны клиенту в ответе. По умолчанию доступ к некоторым заголовкам блокируется браузером.
      Например: ETag, x-amz-meta-custom-header.
    • Max Age Seconds — определяет время в секундах, в течение которого результаты CORS-запроса можно кэшировать на стороне клиента.
      Например: 3600 (1 час).

Selection 134

Вы можете создать несколько правил (например, разрешить разные методы для разных источников), нажав на кнопку «Добавить правило».

  1. Сохраните изменения, нажав на кнопку «Сохранить».

Настройка CORS через AWS CLI

Рассмотрим, как настроить CORS для S3-бакета с помощью утилиты AWS CLI.

Создание файла с правилами CORS

Для начала создайте файл cors.json с конфигурацией CORS, который позволит выполнять GET и HEAD-запросы на объекты вашего бакета. Вот пример файла cors.json:

{
  "CORSRules": [
	{
  	"AllowedHeaders": ["*"],
  	"AllowedMethods": ["GET", "HEAD"],
  	"AllowedOrigins": ["*"]
	}
  ]
}
  • AllowedMethods: указывает, какие HTTP-методы будут разрешены. В данном примере разрешены GET и HEAD запросы.

  • AllowedOrigins: "*" означает, что запросы разрешены с любого домена. Если вы хотите ограничить доступ только для определённого домена, укажите его вместо звёздочки.

Например, если ваш сайт расположен на домене https://example.com, замените строку на:

"AllowedOrigins": ["https://example.com"]

Загрузка правил CORS в бакет

После создания файла с правилами, загрузите его в ваш S3-бакет с помощью следующей команды:

aws s3api put-bucket-cors --bucket имя_бакета --endpoint-url https://s3.timeweb.cloud --cors-configuration file://cors.json

Проверка установленных правил CORS

Вы можете проверить, что правила CORS были успешно установлены, выполнив команду:

aws s3api get-bucket-cors --bucket имя_бакета --endpoint-url https://s3.timeweb.cloud

Удаление правил CORS

Если вам необходимо удалить текущие правила CORS, выполните команду:

aws s3api delete-bucket-cors --bucket имя_бакета --endpoint-url https://s3.timeweb.cloud

Команда удалит все существующие правила CORS для вашего бакета.

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев