использовать одно и то же имя хоста для внутреннего и внешнего доступа к приложению? - PullRequest
0 голосов
/ 29 октября 2018

У меня есть приложение, к которому будут обращаться внутренние службы и экземпляры gcp, а также конечные пользователи в офисной сети, но не публично.

Для внутреннего доступа я могу запустить приложение на экземпляре GCE, а внутренние службы / экземпляры gcp используют частное имя хоста DNS экземпляра (чтобы получить его частный IP-адрес). Для офисных пользователей я могу предоставить экземпляру публичный статический IP-адрес и белый список публичного IP-адреса офисной сети.

Без создания VPN для офисной сети есть ли способ, которым я мог бы иметь один URL / конечную точку внутреннего GCP, и внешние пользователи могли бы атаковать? Это приложение также может потенциально запускаться на gke, если это делает это возможным.

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

in DNS одно имя хоста не может быть преобразовано в два IP-адреса; если только не используется круговой или другой.

помимо имени хоста, большинство серверов могут прослушивать 0.0.0.0 (любой интерфейс).

и если заголовок хоста важен для виртуальных хостов, это можно настроить,

чтобы оба имени хоста имели доступ к одной и той же службе.

0 голосов
/ 30 октября 2018

Это копия и вставка из моей статьи, которую я написал под названием " Частные DNS-зоны Google Cloud ".

23 октября 2018 года Google представила частные DNS-зоны для Google Cloud DNS. Это важное объявление, поскольку это делает внутренние DNS-имена закрытыми. В сегодняшней статье рассказывается, как реализовать эту новую функцию в Google Cloud Platform.

Что такое частные облачные DNS-зоны Google? DNS-сервер может предоставлять функцию под названием DNS с разделением горизонта. Это означает, что информация, возвращаемая в запросе DNS, может меняться в зависимости от местоположения запрашивающего. Для Google Cloud DNS у вас есть запросы, которые могут поступать из общедоступного Интернета или из Google Cloud VPC.

Google Cloud DNS теперь может предоставить:

  1. Создание частных зон DNS для предоставления разрешения имен DNS для ресурсов вашей частной сети (виртуальные машины, балансировщики нагрузки и т. Д.).
  2. Подключение частной зоны к одной сети или нескольким сетям, что дает вам гибкость при проектировании вашей внутренней сетевой архитектуры.
  3. Создание DNS-архитектуры с разделением горизонта, в которой идентичные или перекрывающиеся зоны могут сосуществовать между публичными и частными зонами в облачном DNS или в разных сетях GCP.
  4. Использование основанных на IAM DNS-специфических ролей для делегирования административного доступа или доступа редактора для управления или просмотра управляемых частных зон.

Частные зоны для Google Cloud DNS - это бета-функция. Для этого необходимо создать частную зону с помощью интерфейса командной строки gcloud.

В этой статье мы будем использовать доменное имя «example.com». Мы настроим как частные, так и публичные зоны.

Шаг 1 - Создать личную зону.

gcloud beta dns managed-zones create --dns-name="example.com" --description="Private Zone" --visibility=private --networks=default "private-zone"

Шаг 2 - Создать публичную зону.

Обратите внимание, что вы можете пропустить этот шаг, если вы не используете Google Cloud DNS в качестве имени домена.

gcloud beta dns managed-zones create --dns-name="example.com" --description="Public Zone" --visibility=public "public-zone"

Шаг 3 - Сделать частную зону видимой для сети по умолчанию.

gcloud beta dns managed-zones update private --networks default

Шаг 4 - Получить полное и короткое имя экземпляра виртуальной машины.

Для этого шага необходимо вручную определить, какое внутреннее имя хоста для экземпляра. Подключитесь к экземпляру. Эти команды запускаются из консоли экземпляра.

hostname

Эта команда возвращает короткое имя хоста.

web-server-1

Теперь получите длинное имя хоста.

hostname -f

Эта команда возвращает длинное имя хоста.

web-server-1.us-east4-c.c.development-123456.internal

Шаг 4. Добавьте экземпляр в частную зону, используя его частное DNS-имя.

Этот шаг использует консоль Google Cloud. Консоль -> Сетевые службы -> Облачный DNS. Обратите внимание на две зоны, которые мы только что создали: «приватная зона» и «публичная зона». Выберите приватную зону.

Консоль должна отображать две записи для этой зоны. Запись NS (сервера имен) и SOA (Начало полномочий).

В верхней части окна консоли Google находится кнопка «ADD RECORD SET». Нажмите эту кнопку.

  • В качестве DNS-имени введите: web-server-1

  • Для типа записи ресурса измените на: CNAME

  • В качестве канонического имени введите: web-server-1.us-east4-c.c.development-123456.internal

Create Record Set

Шаг 5. Добавьте экземпляр в публичную зону, используя его публичный IP-адрес.

Вернитесь в Облако DNS. Выберите публичную зону. Нажмите «ДОБАВИТЬ ЗАПИСЬ».

  • В качестве имени DNS введите: web-server-1 (или имя, которое вы хотите, чтобы общедоступный DNS поддерживал).

  • Для типа записи ресурса: A

  • Для IPv4-адреса введите: the public IP address

Шаг 6 - Проверьте общедоступное разрешение DNS.

С вашего рабочего стола или другого компьютера, подключенного к Интернету, откройте командную оболочку / приглашение и ping web-server-1.example.com. Это должно разрешить общедоступный IP-адрес.

Шаг 7. Проверка разрешения частного DNS.

В другом экземпляре виртуальной машины в том же виртуальном облачном хранилище Google Cloud откройте командную оболочку / приглашение и ping web-server-1.example.com. Это должно разрешить частное имя DNS и IP-адрес.

Вот так. Google Cloud DNS теперь поддерживает DNS с разделением горизонта (часто называемый DNS с разделением мозгов).

0 голосов
/ 29 октября 2018

Подходящий балансировщик нагрузки вместе с Cloud Armor Policies. Это можно настроить так, чтобы трафик «сеть-к-нагрузке Office общедоступный, но трафик балансировки нагрузки к приложению, размещенному на GCP» был частным. CloudArmor позволит вам занести в белый список IP-адрес вашей сети Office, чтобы разрешить трафик на балансировщике нагрузки и блокировать остальную часть входящего публичного трафика. Вам не нужно предоставлять вашему серверу приложений публичный IP / DNS.

...