登录
首页 >  Golang >  Go问答

云扳手 IAM 权限被拒绝

来源:stackoverflow

时间:2024-04-18 19:36:34 413浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《云扳手 IAM 权限被拒绝》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

使用 cli gcloud 命令时,我可以对数据库执行所有操作。然而,当我尝试从 go 执行相同的操作(从与使用 gcloud 命令时相同的 shell 实例)时,我收到一条错误消息:

spanner: code = "PermissionDenied", desc = "Resource projects/todo/instances/todospanner/databases/tododb is missing IAM permission: spanner.sessions.create."

我尝试运行的代码取自此处的示例:https://cloud.google.com/spanner/docs/getting-started/go/

我在扳手权限中也找不到该权限(spanner.session.create)。我一直在尝试在我用于通过 gcloud 登录的帐户上设置我能找到的与 spanner 相关的所有权限。

我的 google_application_credentials 已设置,并且我还尝试使用 gcloud beta auth


解决方案


此处列出并描述了 Cloud Spanner IAM 角色(包括 spanner.session.create 权限):https://cloud.google.com/spanner/docs/iam#roles

请注意,某些角色是特定于个人的,而另一些角色是特定于机器的(或特定于服务帐户的)。

您需要指定从何处连接或执行代码(Cloud Shell 实例、在 GCE 上运行的虚拟机、本地计算机或笔记本电脑),并确保将正确的角色分配给个人或服务帐户尝试执行代码并访问 Cloud Spanner 实例。

考虑这种情况:

  • 您的 gcloud SDK 可能已获得 [email protected] 帐户的充分认证,该帐户已授予 roles/spanner.admin 角色,因此 gcloud 一切正常
  • 托管您的代码和 SDK 的虚拟机以 [email protected] 服务帐号运行,并且该虚拟机无法访问 Cloud Spanner,从而造成问题。

有关服务帐户的更多信息,请参见此处: https://cloud.google.com/compute/docs/access/service-accounts

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>