Google App Engine комуникира с Compute Engine през вътрешна мрежа

Създаваме приложение в облака на Google. Използваме App Engine като фронтенд и Compute Engine като бекенд. На тези екземпляри на Compute Engine изпълнявам TCP сървър, който приема определени „командни“ съобщения. Екземплярите на Compute Engine също са свързани към интернет зад защитна стена и балансиращо натоварване за входящ https трафик. Бих искал да свържа TCP сървъра с локален IP адрес и да разреша само екземпляри на App Engine (те са в рамките на един и същ проект) да се свързват с TCP порта за „команди“ чрез API на сокет.

Засега ограничаваме входящите връзки до само IP на Google

В документацията на Compute Engine се казва следното:

Всеки екземпляр е член на една мрежа. Мрежата изпълнява същата функция, която рутерът изпълнява в домашна мрежа: описва обхвата на мрежата и IP адреса на шлюза, управлява комуникацията между инстанции и служи като шлюз между инстанции и обаждащи се извън мрежата. Мрежата е ограничена до един проект; не може да обхваща проекти. Всяка комуникация между екземпляри в различни мрежи, дори в рамките на един и същи проект, трябва да бъде чрез външни IP адреси. В API мрежата е представена от обекта Network.

Би ли било възможно да се изгради сигурна комуникационна настройка? Може би с задните инстанции на App Engine?


person Sjuul Janssen    schedule 03.10.2013    source източник


Отговори (4)


Понастоящем няма начин за настройка на частна мрежа между GCE и GAE. Ограничаването до IP диапазона на Google не е сигурно, тъй като всеки на GAE или GCE може да се свърже с вашия сървър. Затова ви препоръчвам да удостоверявате входящите връзки на вашия TCP сървър, за да проверите дали връзката идва от вашите GAE екземпляри.

person Logan Henriquez    schedule 08.10.2013
comment
Наистина смятах да добавя това. Също така търся сигурност на мрежовия слой. Не само приложение. Но мисля, че си прав, в момента това е единственото нещо, което мога да направя. - person Sjuul Janssen; 08.10.2013
comment
Това ли е нещо, което мога да направя веднага щом имам достъп до управлявани VM? Тъй като, доколкото разбирам, AE и моето приложение за компютърен двигател се намират на една и съща машина. Сега мога ли да говоря през localhost? - person Sjuul Janssen; 30.10.2014
comment
валиден ли е този отговор за днес? '__')? планирам да използвам GAE и CGE (aerospike) - person Kokizzu; 28.02.2016
comment
наскоро преминахме от App Engine към Tornado както поради скоростта, така и поради тази причина. - person Sjuul Janssen; 20.03.2016
comment
Този отговор вече не е точен с новоиздадения VPC конектор. - person BrettJ; 27.05.2019
comment
@SjuulJanssen Какво е торнадо? - person IMTheNachoMan; 28.10.2019
comment
@IMTheNachoMan: tornadoweb.org/en/stable Това е асинхронен уеб сървър в Python. Оттогава се отдалечихме от торнадо и към asyncio и aiohttp - person Sjuul Janssen; 30.10.2019

С App Engine Flexible можете да настроите instance_tags и да го използвате, за да създадете правила за защитна стена със съответните правила за маркиране. Вижте https://cloud.google.com/appengine/docs/flexible/custom-runtimes/configuring-your-app-with-app-yaml за повече информация.

person raggi    schedule 14.04.2016
comment
Добавих instance_tag за гъвкавото приложение на App Engine. И добавих правило за защитна стена. Изходният таг е instance_tag и аз задавам целевия таг за екземпляр на GCE. Въпреки това не мога да получа достъп до екземпляра на GCE. Има ли някакъв процес, който съм пропуснал? Екземплярът на GCE е под вътрешно балансиране на натоварването. - person zono; 24.05.2018
comment
Вече не сте ограничени до гъвкавата среда с новата функционалност на VPC конектора. - person BrettJ; 27.05.2019

Към момента През 2016 г. като google cloud стартира гъвкава среда на google cloud appengine/docs/flexible/. Така че, да, сега е възможно, защото сега и машината за приложения, и машината за изчисления присъстват в една и съща мрежа и следователно, като използвате машината за приложения, можете да получите достъп до машината за изчисления, като използвате техния вътрешен Ip, също така не забравяйте да изтриете всички външни правила на защитната стена за вашите изчислителни машини, ако само искате да разрешите достъп от машината на приложението.

person Sudhanshu Gaur    schedule 05.02.2017
comment
VPC конекторът вече е правилният подход без ограничение в коя среда работите. - person BrettJ; 27.05.2019

От 9 април 2019 г. можете да използвате VPC конектор без сървър, за да позволите на вашето приложение App Engine да се свърже към други услуги на Google Cloud Platform. Свързах се с документите за стандартната среда на Python, но това се отнася за всеки език на App Engine в двете среди за изпълнение.

person BrettJ    schedule 27.05.2019
comment
Може ли това да се използва за проекти на Google Apps Script? - person IMTheNachoMan; 28.10.2019