Создание виртуальных машин без общедоступного IP-адреса в GCP

Любой способ ограничить external(Public) IP в GCP в Subnet. Кажется, если мы хотим создатьVM без external IP, мы должны выбрать External IP- None в течение VMсоздание. Разве мы не можем установитьExternal IP- None в конфигурации подсети, и любой хост, созданный в этой подсети, не будет иметь public/external IP

2 ответа

Решение

Вы можете настроить ограничение политики организации, чтобы определить разрешенные внешние IP-адреса для экземпляров виртуальных машин. С этим ограничением вы можете ограничить конфигурацию внешних IP-адресов списком экземпляров. ОставивallowedValuesпустой список делает невозможным настройку внешних IP-адресов для виртуальных машин в рамках проектов организации. Найдите всю необходимую информацию в следующем разделе документации.

Если вы обнаружите, что подход ограничения политики является слишком строгим (обратите внимание, что это затронет многие другие продукты, которые полагаются на виртуальные машины), другой стратегией, которую вы могли бы установить, было бы автоматизировать развертывание виртуальных машин с помощью команды gcloud compute instance create and take преимущество флага --no-address во избежание присвоения экземплярам внешних IP-адресов.

Для тех, кто ищет решение для каждого экземпляра с использованием Google GCP REST API, просто убедитесь, что нет accessConfigs в вашей networkInterfaces раздел тела JSON вашего запроса:

              "machineType": "zones/{my_zone}/machineTypes/{my_machine_type}",
        "name": "my_instance_name",
        "networkInterfaces": [{
            "network": "my_vpc_network_ref",
            "subnetwork": "my_subnet_ref"
            # Don't include these commented lines if you only want a private IP 
            # "accessConfigs": [{
            #     "name": "External NAT",
            #     "type": "ONE_TO_ONE_NAT"
            # }]
        }],

Все части, начинающиеся с «my», являются заполнителями / переменными.

Я понимаю, что на самом деле вопрос заключался в том, как это сделать на уровне подсети, и предоставленные ответы помогают сделать это на уровне организации или проекта, но в заголовке вопроса не указано, на каком уровне мы запрещаем частные IP-адреса, и это не так. ясно из документации GCP, что эквивалентный вызов REST API для --no-address flag, поэтому я хотел задокументировать его здесь для будущих программистов.

Другие вопросы по тегам