Как защитить облачную функцию Google, используемую в качестве хоста для Diaglogflow / Google Action - PullRequest
1 голос
/ 12 февраля 2020

У меня есть голосовое приложение с Dialogflow, действиями Google, и код размещен в облачной функции. Функция Dialogflow и действие принадлежат одному и тому же проекту Google, и эта функция настроена как триггер HTTP. Все работает, но моя проблема заключается в обеспечении функции. Входной параметр по умолчанию для функций, запускаемых по протоколу HTTP, - разрешить все трафик c, но я изменил его на «Разрешить только внутренний трафик c». У меня нет настроенного коннектора VP C, но в описании этого правила входа говорится: «Разрешен только трафик c из одного и того же проекта или одного периметра VP C S C». Поскольку агент DialogFlow и действие принадлежат одному и тому же проекту, я ожидаю, что он сможет достичь этой функции без проблем. Однако при включенной настройке входа действие приводит к ошибке при тестировании в симуляторе и при установке traffi c, разрешающей все, что работает. Я оставляю это внутреннему только потому, что я не хочу, чтобы это было открыто миру, но мне нужно будет разместить на моем GCF, когда я хочу опубликовать sh. Погугливая, я не вижу много документации, кроме как настроить пользователей IAM и правила, чтобы иметь возможность доступа и обновления самой функции, но я не могу найти ничего о правилах, которые можно применять при запуске функции. Я довольно новичок в облаке Google, я уверен, что это легко исправить, но я просто не могу найти правильные ответы.

1 Ответ

2 голосов
/ 12 февраля 2020

Служба Dialogflow не находится внутри вашего проекта. Поэтому вы не можете использовать эту настройку, чтобы разрешить только внутренний трафик c.

Для вызова с помощью Dialogflow ваша функция облачной функции должна иметь общедоступную конечную точку HTTPS.

Для защиты вашей облачной функции конечная точка функции, используйте пользовательский заголовок HTTP с секретом, о котором знает ваша функция. Это настраивается в Webhook (см. Ссылку ниже). Ваша функция облачной функции по-прежнему может вызываться кем угодно, но ваш код проверит заголовок HTTP и выдаст ошибку для несанкционированного доступа.

https://cloud.google.com/dialogflow/docs/fulfillment-webhook#enable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...