Google cloud platform Terraform和Google云功能:如何禁用未经验证的调用

Google cloud platform Terraform和Google云功能:如何禁用未经验证的调用,google-cloud-platform,google-cloud-functions,terraform,Google Cloud Platform,Google Cloud Functions,Terraform,我一直在尝试通过Terraform复制谷歌云功能的创建 作为安全性的一部分,我正在尝试禁用未经验证的调用,因为在创建云任务的GUI中默认情况下,这是启用的: 但是,看看在中找到的示例。除了与所有用户/单个用户进行身份验证之外,它似乎没有提供此选项。但这似乎并没有复制单击链接时到达403页面的功能,而只是在IAM和Admin中创建一个条目,用户在其中被分配一个角色云函数调用器。我的地形代码如下所示: resource "google_cloudfunctions_function" "funct

我一直在尝试通过Terraform复制谷歌云功能的创建

作为安全性的一部分,我正在尝试禁用未经验证的调用,因为在创建云任务的GUI中默认情况下,这是启用的:

但是,看看在中找到的示例。除了与所有用户/单个用户进行身份验证之外,它似乎没有提供此选项。但这似乎并没有复制单击链接时到达403页面的功能,而只是在IAM和Admin中创建一个条目,用户在其中被分配一个角色云函数调用器。我的地形代码如下所示:

resource "google_cloudfunctions_function" "function-api" {
    name = "terraform-insert-group-members-api"
    runtime = "python37"
    timeout = 540
    trigger_http = true
    entry_point = "hello"
    source_archive_bucket = google_storage_bucket.resource-storage.name
    source_archive_object = google_storage_bucket_object.storage-object-code-api.name
  }
要实现这一目标,我需要包括哪些内容?或者这对于地形来说是可以实现的

谢谢,
Jordan

我从谷歌云文档中搜索到了这个,看起来GCP也能做到这一点

如果您编辑云函数的权限,您可以控制谁可以调用这些函数

基本上,您可以选择您的函数(单击复选框),并从“云函数调用器”部分删除allUsers用户,以避免该函数被公开。这将限制谁可以访问您的功能。然后在同一屏幕中,您可以添加一个调用程序,以便用户可以调用云函数


所以看起来terraform已经在做这件事了,正如谷歌文档所指定的那样。

我从谷歌云文档中搜索到了这件事,看起来GCP也在做这件事

如果您编辑云函数的权限,您可以控制谁可以调用这些函数

基本上,您可以选择您的函数(单击复选框),并从“云函数调用器”部分删除allUsers用户,以避免该函数被公开。这将限制谁可以访问您的功能。然后在同一屏幕中,您可以添加一个调用程序,以便用户可以调用云函数


所以看起来terraform已经在做这件事了,正如谷歌文档所指定的那样。

嘿,伙计,谢谢你的分享。对于单个用户和所有用户,这是我在遵循文档时尝试的第一件事。它似乎不像部署函数并在“匿名”选项卡中打开HTTP那样工作,它将返回响应并允许邮递员请求。您好,我已经对此进行了进一步测试,我创建了一个函数并清除了调用器中的诱惑,并等待了大约5分钟。这就给了我一个403,这是意料之中的。似乎需要一些时间才能发生变化。在此之后,我将权限授予其他用户,并使用下一个命令对用户请求进行身份验证:curl \-H“Authorization:bearer$(gcloud auth print identity token)”响应成功,您能再试一次并在两次尝试之间再等待一段时间吗?嘿,伙计,谢谢您的分享。对于单个用户和所有用户,这是我在遵循文档时尝试的第一件事。它似乎不像部署函数并在“匿名”选项卡中打开HTTP那样工作,它将返回响应并允许邮递员请求。您好,我已经对此进行了进一步测试,我创建了一个函数并清除了调用器中的诱惑,并等待了大约5分钟。这就给了我一个403,这是意料之中的。似乎需要一些时间才能发生变化。在此之后,我将权限授予其他用户,并使用下一个命令对用户请求进行身份验证:curl \-H“Authorization:bearer$(gcloud auth print identity token)”响应成功,您能否重试并在两次尝试之间再等待一段时间?