Цель работы: Познакомиться с базовыми операциями работы в AWS через веб-консоль и командную строку, научиться настраивать хостинг статического веб-сайта в S3 и управлять доступом к бакету.
Шаг 1: Вход в веб-консоль AWS через IAM-аккаунт
Перейдите на AWS Management Console.
Введите учетные данные IAM-пользователя (логин и пароль).
Шаг 2: Создание бакета S3 со включенным ACL
Откройте сервис S3 в веб-консоли AWS.
Нажмите Create bucket.
Укажите имя бакета (например, <группа>-<фамилия>).
Выберите регион.
Отключите блокировку публичного доступа (поставьте галочку согласия).
Включите ACL (Access Control Lists) и добавьте разрешение на чтение для всех (Everyone, List и Read).
Создайте бакет.
Шаг 3: Создание и загрузка файла index.html
index.html со следующим содержимым:
<!DOCTYPE html>
<html>
<head><title>Мой сайт</title></head>
<body>
<h1>Добро пожаловать!</h1>
</body>
</html>
В веб-консоли AWS откройте созданный бакет.
Перейдите во вкладку Objects и загрузите index.html.
index.html и выберите Actions → Make public using ACL, подтвердите действие.Шаг 4: Включение хостинга веб-сайтов и проверка работы
В настройках бакета выберите Properties → Static website hosting.
Включите хостинг и укажите index.html как Index document.
Сохраните настройки.
Скопируйте выданный в разделе Static website hosting URL (вида http://<bucket>.s3-website-<region>.amazonaws.com) и откройте его в браузере. Помните, что адрес использует http, а не https.
Шаг 5: Отключение ACL и настройка доступа через политики
В настройках бакета отключите ACL (Access Control Lists).
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<имя бакета>/*"
}
]
}
Не забудьте изменить <имя бакета> на имя созданного ранее бакета.
Шаг 6: Создание ключа доступа для CLI в веб-консоли
В веб-консоли AWS, в правом верхнем углу нажмите на ссылку своего пользователя.
Откройте Security credentials и создайте новый Access key (для Command Line Interface (CLI)).
Сохраните Access Key ID и Secret Access Key.
⚠️ Access Key ID и Secret Access Key — это чувствительные данные, эквивалентные логину и паролю. Не сохраняйте их в открытых файлах, не публикуйте в общих репозиториях. После завершения лабораторной работы удалите ключ (см. Шаг 11).
Шаг 7: Установка AWS CLI на локальный компьютер
Скачайте и установите AWS CLI (инструкции).
Проверьте установку командой:
aws --version
Настройте AWS CLI командой:
aws configure
Введите сохраненные Access Key ID и Secret Access Key.
Шаг 8: Проверка списка бакетов и файлов через командную строку
aws s3 ls
aws s3 ls s3://<имя бакета>/
Шаг 9: Модификация index.html и загрузка его через командную строку
index.html, добавив строку:
<p>Новая версия сайта</p>
aws s3 cp --content-type "text/html" index.html s3://<имя бакета>/
Ctrl+Shift+R либо Cmd+Shift+R либо Ctrl+F5).Шаг 10: Удаление бакета через командную строку
aws s3 rm s3://<имя бакета>/ --recursive
aws s3 rb s3://<имя бакета>/
Шаг 11: Удаление ключа доступа CLI
После завершения работы с AWS CLI рекомендуется удалить созданный access key, если он больше не нужен. Хранение неиспользуемых ключей доступа повышает риск их утечки и несанкционированного использования.
Важно: Access Key ID и Secret Access Key дают полный доступ к тем действиям, которые разрешены вашему IAM-пользователю. Если ключ не используется — его следует деактивировать (Actions → Deactivate) или удалить. Никогда не публикуйте ключи в открытом коде, репозиториях (например, на GitHub) или сообщениях — это одна из самых частых причин компрометации AWS-аккаунтов.
Контрольные вопросы
s3.amazonaws.com/...) от endpoint статического сайта (s3-website-....amazonaws.com)?"Principal": "*" без ограничения Action? В чём риск такой политики?aws configure, и где их получить в консоли?aws s3 cp от aws s3 sync? Когда стоит использовать второй вариант?aws s3 rb для бакета, в котором ещё остались объекты? Как это исправить?index.html через CLI браузер может показывать старую версию страницы, и как это проверить/обойти?