在GCP上,如何授予对另一个项目中的服务帐户的访问权限?

时间:2019-10-02 23:31:54

标签: google-cloud-platform google-compute-engine

我在项目project-b中有一个计算实例,在一个单独的项目project-a中有一个实例。 project-b中的实例需要使用project-a服务帐户访问project-a

1 个答案:

答案 0 :(得分:0)

project-a中:

  • 创建服务帐户。假设它的名称为project-a-service-account@project-a.iam.gserviceaccount.com
  • 授予服务帐户非常具体,有限的角色
  • 创建并下载服务帐户的密钥。将其命名为key.json

project-b中:

  • 创建计算实例
  • SSH到实例。在此计算实例SSH shell中键入所有后续命令。
  • 将密钥文件key.json上载到实例。如果您使用的是Google Cloud Console SSH窗口,则可以使用右上角齿轮图标菜单中的上传进行此操作。
  • 激活服务帐户:

    gcloud auth activate-service-account project-a-service-account@project-a.iam.gserviceaccount.com --key-file key.json
    
  • 重新初始化:

    gcloud init
    
    • gcloud init命令将用于重新初始化当前配置,或创建一个新配置。创建一个新的可能会很好,但这取决于您。
    • 选择帐户project-a-service-account@project-a.iam.gserviceaccount.com

现在,project-b中的该实例可以充当project-a中的服务帐户。例如,如果服务帐户具有compute.instances.create权限,则可以在project-a中创建一个实例:

gcloud compute instances create new-instance --project project-a

project-a的管理员可以通过撤消服务帐户project-a-service-account@project-a.iam.gserviceaccount.com的密钥来撤消此访问权限。

Google有一个super fast-talking demo showing this