如何保护用作 Dialogflow / Google 操作主机的 Google 云函数
How do I secure a Google cloud function being used as the host for a Diaglogflow / Google Action
我有一个带有 Dialogflow 的语音应用程序,google 操作,代码托管在云函数上。函数、Dialogflow 和动作都属于同一个 google 项目,函数设置为 HTTP 触发器。
一切正常,但我的问题是确保功能安全。 HTTP 触发函数的默认入口设置是允许所有流量,但我将其更改为 "Allow internal traffic only"。我没有设置 VPC 连接器,但此入口规则的描述为:"Only traffic from within the same project or the same VPC SC perimeter is allowed"。由于 DialogFlow 代理和操作都属于同一个项目,我希望它能够毫无问题地实现该功能。但是,当我在模拟器中测试时以及当流量设置为允许所有它工作时,在启用该入口设置的情况下,操作会遇到错误。我把它留给内部只是因为我不想让它向世界开放,但是当我想发布时我需要在我的 GCF 上托管。
谷歌搜索除了如何设置 IAM 用户和规则以便能够访问和更新函数本身之外,我没有看到太多文档,但是我找不到任何关于触发函数时要应用的规则。
我是 google 云的新手,我相信这很容易解决,但我就是找不到正确的答案。
Dialogflow 服务不在您的项目中。因此,您不能使用该设置仅允许内部流量。
要可由 Dialogflow 调用,您的 Cloud Function 函数必须具有可公开访问的 HTTPS 端点。
要保护您的 Cloud Functions 函数端点,请使用自定义 HTTP header 以及您的函数知道的秘密。这是在 Webhook 中配置的(请参阅下面的 link)。您的 Cloud Function 函数仍然可以被任何人调用,但是您的代码将检查 HTTP header 和 return 未授权访问的错误。
https://cloud.google.com/dialogflow/docs/fulfillment-webhook#enable
我有一个带有 Dialogflow 的语音应用程序,google 操作,代码托管在云函数上。函数、Dialogflow 和动作都属于同一个 google 项目,函数设置为 HTTP 触发器。 一切正常,但我的问题是确保功能安全。 HTTP 触发函数的默认入口设置是允许所有流量,但我将其更改为 "Allow internal traffic only"。我没有设置 VPC 连接器,但此入口规则的描述为:"Only traffic from within the same project or the same VPC SC perimeter is allowed"。由于 DialogFlow 代理和操作都属于同一个项目,我希望它能够毫无问题地实现该功能。但是,当我在模拟器中测试时以及当流量设置为允许所有它工作时,在启用该入口设置的情况下,操作会遇到错误。我把它留给内部只是因为我不想让它向世界开放,但是当我想发布时我需要在我的 GCF 上托管。 谷歌搜索除了如何设置 IAM 用户和规则以便能够访问和更新函数本身之外,我没有看到太多文档,但是我找不到任何关于触发函数时要应用的规则。 我是 google 云的新手,我相信这很容易解决,但我就是找不到正确的答案。
Dialogflow 服务不在您的项目中。因此,您不能使用该设置仅允许内部流量。
要可由 Dialogflow 调用,您的 Cloud Function 函数必须具有可公开访问的 HTTPS 端点。
要保护您的 Cloud Functions 函数端点,请使用自定义 HTTP header 以及您的函数知道的秘密。这是在 Webhook 中配置的(请参阅下面的 link)。您的 Cloud Function 函数仍然可以被任何人调用,但是您的代码将检查 HTTP header 和 return 未授权访问的错误。
https://cloud.google.com/dialogflow/docs/fulfillment-webhook#enable