如何修改 Google Cloud Platform 服务帐号现有的访问范围?

如何修改 Google Cloud Platform 服务帐号现有的访问范围?

我有一个服务帐号,它已分配给我的 GCE 实例并被列为活动状态,我可以通过gcloud auth list在任何实例上运行来验证这一点。该服务帐号目前拥有对一些服务的 Google Cloud API 访问权限。我想要做的是更新此访问权限,以便服务帐号可以从 Google Cloud DNS 读取区域/记录集信息。

我查看了有关服务帐户及其访问权限的文档,并尝试编辑 GCP 中的服务帐户权限,但我没有找到直接添加对 Google Cloud DNS 或 Google Cloud Networking(包括 DNS)的访问权限的方法。可以将服务帐户权限设置为我自己的用户帐户并分配所有者/编辑角色,但我希望仅授予服务帐户对 Google Cloud DNS 所需的额外访问权限。

任何帮助或见解都将非常感谢,谢谢!

答案1

我相信最终您将能够使用 IAM 权限来实现这一点。目前,我没有看到在IAM 控制台。为了授权对 Cloud DNS 的请求,您必须使用本文

IE

https://www.googleapis.com/auth/ndev.clouddns.readwrite
https://cloud.google.com/dns/api/authorization

如果您使用默认服务帐户,必须在范围标志中创建 VM 期间定义范围。

IE

gcloud compute --project "Myproject" instances create "instance-8" --zone "us-central1-f" --machine-type "n1-standard-1" --network "default" --maintenance-policy "MIGRATE" --scopes default="https://www.googleapis.com/auth/devstorage.full_control","https://www.googleapis.com/auth/ndev.clouddns.readwrite" --image "/debian-cloud/debian-8-jessie-v20161020" --boot-disk-size "10" --boot-disk-type "pd-standard" --boot-disk-device-name "instance-8"

如果您在创建虚拟机时将其关联到非默认服务帐户,则可以添加编辑或所有者在 IAM 控制台中授予该账户的权限。不过,这可能会提供比您正在寻找的更广泛的范围。

答案2

  1. 在 Google 控制台中,导航到“IAM 和管理”部分
  2. 在左侧导航栏上,单击“IAM”
  3. 在右侧找到您的服务帐户。
  4. 单击“角色”列中的下拉菜单,为服务帐户选择一个角色。

本页描述了 IAM 角色

答案3

我在访问存储 API 时遇到了麻烦,所以我意识到问题出在范围上。经过一番研究,我找到了可以更改的地方。

您必须编辑当前“服务帐户”的“范围”,它已在创建虚拟机时设置,并且默认值非常严格:

  1. 转到 Compute Engine/VM 实例
  2. 找到您的虚拟机并选择它(复选框)
  3. 确保它已停止(否则单击“停止”)
  4. 点击其名称
  5. 点击“编辑”
  6. 向下滚动直到找到“服务帐户”
  7. 它应该说“默认范围”,更改为“允许完全访问所有云 API”

就是这样!

相关内容