我使用的是包含服务帐户键的下载的JSON文件,而不是ADC,代码运行在本地开发人员机器上,并与实时GCP Firestore通信。
在将服务帐户添加到角色(在我的例子中是roles/datastore.user
)之后,是否必须在其生效之前执行任何操作?
例如,等15分钟,重新下载JSON,重新启动一些服务,什么的?
问题与在我的机器上运行的自动化测试中的错误有关。
Test method MyProject.Data.Repositories.FirestoreRepositoryTests.FirestoreAccountDocRepository_UpdateAsync__updates threw exception:
Grpc.Core.RpcException: Status(StatusCode="PermissionDenied", Detail="Permission denied on resource project my-project-prodlike.", DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"created":"@1642697226.430711000","description":"Error received from peer ipv4:172.217.169.74:443","file":"/Users/einari/Projects/grpc/grpc/src/core/lib/surface/call.cc","file_line":1074,"grpc_message":"Permission denied on resource project my-project-prodlike.","grpc_status":7}")
Note --我使用的是,因为我使用的是新的MacBook。
Note --我不再使用上面的内容,现在使用谷歌的GRPC适配器,以防万一。见https://github.com/googleapis/google-cloud-dotnet/issues/7560#issuecomment-975414370。
发布于 2022-01-21 09:47:38
权限拒绝问题是由不正确的项目名称(而不是实际拒绝的权限)引起的。
Google控制台顶部是当前项目的名称。然而,这实际上只是一个没有意义的别名,在默认情况下,实际的项目标识符不会显示,尽管它在浏览器的URL中。
当然,错误消息意味着它找到了它的目标资源并拒绝了访问。
我太累了。
https://stackoverflow.com/questions/70790257
复制