Sam*_*fer 5 google-compute-engine google-iam
我已经设置了一个计算实例,用于使用具有以下角色的服务帐户在 Google Compute 引擎上运行 cronjobs:
Custom Compute Image User + Deletion rights
Compute Admin
Compute Instance Admin (beta)
Kubernetes Engine Developer
Logs Writer
Logs Viewer
Pub/Sub Editor
Source Repository Reader
Storage Admin
不幸的是,当我 ssh 进入这个 cronjob runner 实例然后运行时:
sudo gcloud compute --project {REDACTED} instances create e-latest \
--zone {REDACTED} --machine-type n1-highmem-8 --subnet default \
--maintenance-policy TERMINATE \
--scopes https://www.googleapis.com/auth/cloud-platform \
--boot-disk-size 200 \
--boot-disk-type pd-standard --boot-disk-device-name e-latest \
--image {REDACTED} --image-project {REDACTED} \
--service-account NAME_OF_SERVICE_ACCOUNT \
--accelerator type=nvidia-tesla-p100,count=1 --min-cpu-platform Automatic
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
用户无权访问服务帐户 {NAME_OF_SERVICE_ACCOUNT}。用户:{NAME_OF_SERVICE_ACCOUNT}。请项目所有者授予您服务帐号的 iam.serviceAccountUser 角色。
除了计算实例管理员之外,我还需要能够使用我的实例创建实例吗?
进一步说明:(1)当我尝试不指定--service-account错误时,除了我的用户无权访问的服务帐户是默认的“51958873628-compute@developer.gserviceaccount.com”之外,错误是相同的。(2) 添加/删除 sudo 不会改变任何东西
如果您使用本地gcloud或terraform:找到包含您的凭据的 json 文件(通常命名类似于 myproject*.json)并且:
grep project_id myproject*.jsongrep client_email myproject*.jsonService Account User-> 单击添加(您可以使用条件缩小范围,但暂时保持简单)。
创建使用服务帐户的实例需要您拥有该服务帐户的 compute.instances.setServiceAccount 权限。要使这项工作发挥作用,请将iam.serviceAccountUser角色授予您的服务帐户(在整个项目上或在您希望能够使用其创建实例的特定服务帐户上)。
| 归档时间: |
|
| 查看次数: |
4470 次 |
| 最近记录: |