← Cloudflare One / cloudflare-one / networks / connectors / cloudflare-tunnel / deployment-guides
AWS
В этом руководстве рассказано, как подключить виртуальную машину Amazon Web Services (AWS) к Cloudflare с помощью нашего облегчённого коннектора, cloudflared.
Мы развернем:
- Виртуальная машина EC2, на которой работает простой HTTP-сервер.
- Cloudflare Tunnel, позволяющий пользователям подключаться к сервису либо через публичное имя хоста, либо через приватный IP-адрес.
Предварительные требования
Чтобы выполнить следующую процедуру, вам нужно будет:
- Добавьте веб-сайт в Cloudflare
- Разверните Cloudflare One Client на устройстве конечного пользователя
1. Создайте инстанс VM в AWS
-
В консоли AWS перейдите в раздел Вычисления > EC2 > Экземпляры
-
Выберите Запустить экземпляр.
-
Назовите VM-инстанс. В этом примере мы назовём его
http-test-server. -
Для *Amazon Machine Image (AMI) выберите нужную операционную систему и характеристики. В этом примере мы будем использовать Ubuntu Server 24.04 LTS (HVM), SSD Volume Type.
-
Для Тип экземпляра:, вы можете выбрать t2.micro также предоставляется на бесплатном тарифе.
-
В Пара ключей (вход), создайте новую пару ключей для использования с SSH. Вам потребуется скачать
.pemфайл на локальную машину. -
В Настройки сети, выберите Создать группу безопасности.
-
Включите следующие правила Security Group:
- Разрешить SSH-трафик от My IP и запретите публичный доступ к инстансу.
- Разрешить HTTPS-трафик из интернета
- Разрешить HTTP-трафик из интернета
-
Выберите Запустить экземпляр.
-
После того как экземпляр запущен и работает, перейдите в Экземпляры сводную страницу и скопируйте её Публичный IPv4 DNS имя хоста (например,
ec2-44-202-59-16.compute-1.amazonaws.com). -
Чтобы войти в инстанс по SSH, откройте терминал и выполните следующие команды:
cd Downloadschmod 400 "YourKeyPair.pem"ssh -i "YourKeyPair.pem" [email protected]-
Запустите
sudo suчтобы получить полные права администратора на инстансе. -
Для тестирования вы можете развернуть базовый веб-сервер Apache на порту
80:
apt update
apt -y install apache2
cat <<EOF > /var/www/html/index.html
<html><body><h1>Hello Cloudflare!</h1>
<p>This page was created for a Cloudflare demo.</p>
</body></html>
EOF- Чтобы проверить, что сервер Apache запущен, откройте браузер и перейдите по адресу
http://ec2-44-202-59-16.compute-1.amazonaws.com(обязательно подключайтесь черезhttp, а неhttps). Вы должны увидеть Hello Cloudflare! тестовая страница.
2. Создайте Cloudflare Tunnel
Создайте Cloudflare Tunnel и запустите его на инстансе AWS.
-
Войдите в панель управления Cloudflare и перейдите в Сеть > Tunnels.
Перейдите в Tunnels ↗ -
Выберите Создать туннель.
-
Введите имя туннеля (например,
aws-tunnel). -
Выберите Create Tunnel.
-
Выберите операционную систему (нажмите Debian для вашего экземпляра AWS). Скопируйте команду установки и выполните её на вашем экземпляре AWS.
-
Дождитесь подключения туннеля. После установления соединения выберите Продолжение.
3. Подключитесь, используя общедоступное имя хоста
Опубликованные приложения позволяют любому пользователю интернета подключаться к HTTP-ресурсам, размещённым в вашем виртуальном частном облаке (VPC). Чтобы добавить опубликованное приложение для вашего Cloudflare Tunnel:
- На Маршруты вкладке выберите Добавить маршрут, затем выберите Опубликованное приложение.
- Введите имя хоста приложения (например,
hellocloudflare.<your-domain>.com). - В разделе Сервис, введите
http://localhost:80. - Выберите Добавить маршрут.
- Чтобы протестировать, откройте браузер и перейдите в
http://hellocloudflare.<your-domain>.com. Вы должны увидеть Hello Cloudflare! тестовая страница.
При желании вы можете создание приложения Access чтобы управлять тем, кто может получить доступ к сервису.
4. Подключитесь с помощью частного IP-адреса
Маршруты приватной сети позволяют пользователям подключаться к вашему виртуальному частному облаку (VPC) с помощью Cloudflare One Client. Чтобы добавить приватный сетевой маршрут для Cloudflare Tunnel, выполните следующее:
-
В панели управления Cloudflare перейдите в Сеть > Маршруты.
Перейдите в Маршруты ↗ -
Выберите Создать маршрут > Tunnel CIDR. Выберите только что созданный туннель, введите Частный IP-адрес вашего экземпляра AWS (например,
172.31.19.0), и выберите Создать маршрут. При необходимости вы можете расширить диапазон IP-адресов позже. -
В вашем Конфигурация Split Tunnel, убедитесь, что частный IP-адрес маршрутизируется через Cloudflare One Client. Например, если вы используете Split Tunnels в Exclude режиме удалите
172.16.0.0/12. Рекомендуем повторно добавить IP-адреса, которые явно не используются вашим экземпляром AWS.Чтобы определить, какие IP-адреса нужно добавить обратно, вычтите IP-адреса ваших инстансов AWS из
172.16.0.0/12:Добавьте результаты обратно в список режима Split Tunnel Exclude.
-
Чтобы протестировать на устройстве пользователя:
- Войдите в Cloudflare One Client.
- Откройте окно терминала и подключитесь к сервису, используя его частный IP-адрес:
curl 172.31.19.0<html><body><h1>Hello Cloudflare!</h1> <p>This page was created for a Cloudflare demo.</p> </body></html>
При желании вы можете создать сетевые политики Gateway чтобы управлять тем, кто может получить доступ к инстансу AWS через его частный IP-адрес.
Настройка межсетевого экрана
Чтобы защитить свой экземпляр AWS, можно настроить Правила Security Group ↗ чтобы запретить весь входящий трафик и разрешить только исходящий трафик к IP-адреса Cloudflare Tunnel. Все правила Security Group являются разрешающими. Трафик, не соответствующий ни одному правилу, блокируется. Поэтому вы можете удалить все входящие правила и оставить только нужные исходящие.
После настройки правил Security Group убедитесь, что доступ к сервису через Cloudflare Tunnel по-прежнему возможен через его публичное имя хоста или частный IP-адрес. Сервис больше не должен быть доступен извне Cloudflare Tunnel, например, если вы перейдёте по адресу http://ec2-44-202-59-16.compute-1.amazonaws.com тестовая страница больше не должна загружаться.