與許多 Google Cloud 服務一樣,開發人員裝置平台也有專屬的服務專員。本頁說明 DDP 服務代理程式的運作方式、功能,以及如何與其共用資源。
權限
首次為專案使用 DDP 時,系統會建立名為「service-PROJECT_ID@gcp-sa-devicerun.」的服務代理類型服務帳戶。
啟用 Device Run API (devicerun.googleapis.com) 時,Google Cloud 會自動佈建服務代理人,並在專案層級指派 roles/devicerun.serviceAgent 角色。
系統會授予這項服務代理人權限,讓他們存取啟動 Developer Device Platform 的 Google Cloud 專案。服務代理程式會使用自己的憑證,而非您的憑證,執行下列操作:
- 讀取及寫入 Cloud Storage 值區和物件
- 將 Cloud Storage 輸入檔案下載至內部系統
- 將內部系統的檔案上傳至 Cloud Storage 輸出 bucket
也就是說,您可能可以存取 Cloud Storage bucket 和檔案,但該 bucket 屬於與 DDP 所用專案不同的專案。 Google Cloud 您也可以在個別 bucket 上設定額外的存取權控管。
因此,Developer Device Platform 服務代理可能無法存取這些資源。請按照這裡的操作說明,與 DDP 服務代理分享特定 bucket 的存取權。
分享存取權
如要在 DDP 支援的專案中,將檔案納入測試,請參閱「Device Run」。如果 Cloud Storage bucket 位於與 DDP 專案不同的Google Cloud 專案,且您希望 Device Run 能夠讀取這些檔案,則必須將roles/storage.objectViewer授予啟動 DDP 要求的專案服務代理程式,如本文所述。
將「Storage 物件檢視者」角色授予服務代理:確認 DDP 服務代理在包含檔案的 Cloud Storage bucket 中具有 Storage Object Viewer (roles/storage.objectViewer) 角色:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member="serviceAccount:service-PROJECT_ID@gcp-sa-devicerun." \ --role="roles/storage.objectViewer"
驗證
現在請返回工作流程,並確認 Device Run 有權存取必要檔案。如果服務代理程式無法存取指定檔案,測試就會無法啟動。
佐證文件
- 服務帳戶類型:服務代理程式 - 瞭解服務代理程式在 Google Cloud
- 服務代理 - 查看每位 Google Cloud服務代理
- Cloud Storage 角色和權限 - 查看所有 Cloud Storage 相關角色和權限