簡體   English   中英

“錯誤:(gcloud.asset.export) 用戶沒有權限”僅在使用服務帳戶進行身份驗證時

[英]"ERROR: (gcloud.asset.export) User does not have permission" only when authenticated with a service account

我正在嘗試使用通過服務帳戶進行身份驗證的Google Cloud Asset Inventorygcloud命令(版本 314.0.0)導出項目資產:

# 1. authenticate with service account my-service-account@$PROJECT_ID.iam.gserviceaccount.com
gcloud auth activate-service-account --key-file=/path/to/my/key.json

# 2. export assets to BQ
gcloud asset export \
    --project=$PROJECT_ID \
    --bigquery-table=projects/$PROJECT_ID/datasets/$DATASET_ID/tables/$TABLE_ID \
    --output-bigquery-force \
    --content-type=resource

並得到以下錯誤:

錯誤:(gcloud.asset.export) 用戶 [my-service-account@$PROJECT_ID.iam.gserviceaccount.com] 沒有訪問項目 [$PROJECT_ID:exportAssets] 的權限(或者它可能不存在):調用者沒有權限沒有權限

我的服務帳戶在$PROJECT_ID上具有以下角色:

  • roles/cloudasset.viewer
  • roles/bigquery.jobUser
  • roles/bigquery.dataEditor

請注意,當我使用自己的個人帳戶(與我的服務帳戶具有相同的角色)登錄時gcloud asset export起作用

--verbosity=debug標志添加到gcloud不會添加其他信息:

apitools.base.py.exceptions.HttpForbiddenError: HttpError 訪問https://cloudasset.googleapis.com/v1/projects/$PROJECT_ID:exportAssets?alt=json

具有以下內容:

{
  "error": {
    "code": 403,
    "message": "The caller does not have permission",
    "status": "PERMISSION_DENIED"
  }
}

我不明白使用服務帳戶 ( gcloud auth activate-service-account ) 和我自己的個人帳戶 ( gcloud auth login ) gcloud auth login ,兩者都應該可以工作,因為我擁有完全相同的權限。

任何想法將不勝感激。

這是一個關於這個問題的公開調查:

將資產導出到 GCS 或 BigQuery 時出現權限被拒絕錯誤

看來您必須模擬內置服務帳戶service-xxxxxxxx@gcp-sa-cloudasset.iam.gserviceaccount.com並向其添加Storage Admin角色。

此外,您還必須將角色roles/bigquery.jobUserroles/bigquery.dataEditor到服務帳戶service-xxxxxxxx@gcp-sa-cloudasset.iam.gserviceaccount.com ,其中xxxxxx是項目 ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM