設定 BigQuery 共用角色
本文說明 BigQuery sharing (舊稱 Analytics Hub) 使用的 Identity and Access Management (IAM) 角色,以及如何將這些角色授予使用者。詳情請參閱「BigQuery 共用角色和權限」。
BigQuery sharing 身分與存取權管理角色
以下各節說明預先定義的 BigQuery 共用角色。您可以將這些角色指派給使用者,讓他們在資料交易所和房源刊登中執行各種工作。
Analytics Hub 管理員角色
如要管理資料交換,BigQuery 共用功能提供Analytics Hub 管理員角色 (roles/analyticshub.admin),您可以為 Google Cloud 專案或資料交換授予這個角色。這個角色可讓使用者執行下列操作:
- 建立、更新及刪除資料交換。
- 建立、更新、刪除及共用房源資訊。
- 管理 BigQuery sharing 管理員、清單管理員、發布者、訂閱者和檢視者。
具備這個角色的使用者稱為 BigQuery 共用管理員。
Analytics Hub 發布者和清單管理員角色
如要管理清單,Sharing 提供下列預先定義的角色,您可以為專案、資料交換或清單授予這些角色:
Analytics Hub 發布者角色 (
roles/analyticshub.publisher),可讓使用者執行下列操作:- 建立、更新及刪除房源資訊。
- 設定房源的 IAM 政策。
擁有這個角色的使用者稱為 BigQuery 共用發布者。
Analytics Hub 清單管理員角色 (
roles/analyticshub.listingAdmin),可讓使用者執行下列操作:- 更新及刪除房源資訊。
- 設定房源的 IAM 政策。
擁有這個角色的使用者稱為 BigQuery 共用清單管理員。
Analytics Hub 訂閱者和檢視者角色
如要查看及訂閱清單和資料交換,Sharing 提供下列預先定義的角色,可授予專案、資料交換或清單:
Analytics Hub 訂閱者角色 (
roles/analyticshub.subscriber),可讓使用者查看及訂閱房源。具備這個角色的使用者稱為 BigQuery 共用訂閱者。
Analytics Hub 檢視者角色 (
roles/analyticshub.viewer),可讓使用者查看商家資訊和資料交換的權限。擁有這個角色的使用者稱為 BigQuery 共用檢視者。
Analytics Hub 訂閱項目擁有者角色
如要管理訂閱項目,Sharing 提供下列預先定義角色,您可以在專案層級授予這些角色:
- Analytics Hub 訂閱項目擁有者角色
(
roles/analyticshub.subscriptionOwner),可讓使用者管理訂閱項目。
擁有這個角色的使用者稱為 BigQuery 共享訂閱方案擁有者。
授予 BigQuery 共用 IAM 角色
您可以視需求,在資源階層的下列層級授予 IAM 角色:
專案。如果您為專案授予使用者角色,該角色會套用至專案包含的所有資料交易所和商家資訊。
資料交換。如果您授予使用者資料交換庫的角色,該角色就會套用至資料交換庫中的所有清單。
房源資訊:如果授予使用者房源角色,則該角色只適用於特定房源。
授予專案角色
如要在專案中設定 IAM 政策,您必須具備該專案的專案 IAM 管理員角色 (roles/resourcemanager.projectIamAdmin)。如要授予專案預先定義的 BigQuery sharing 身分與存取權管理角色,請選取下列其中一個選項。
控制台
前往專案的「IAM」頁面。
點按「 Grant access」(授予存取權)。
在「New principals」(新增主體) 欄位中,輸入要授予存取權的身分識別電子郵件地址。例如:
- Google 帳戶電子郵件地址:
test-user@gmail.com - Google 群組:
admins@googlegroups.com - 服務帳戶:
server@example.gserviceaccount.com - Google Workspace 網域:
example.com
- Google 帳戶電子郵件地址:
在「Select a role」(選取角色) 清單中,將指標懸停在「Analytics Hub」(數據分析中心) 上,然後選取下列其中一個角色:
- Analytics Hub 管理員
- Analytics Hub 清單管理員
- Analytics Hub 發布者
- Analytics Hub 訂閱者
- Analytics Hub 訂閱項目擁有者
- Analytics Hub 檢視者
選用:如要進一步控管使用者對資源的存取權,請新增條件式角色繫結。 Google Cloud
儲存變更。
您可以在同一個 IAM 面板中刪除及更新專案管理員,如上述步驟所述。
gcloud
如要在專案層級授予角色,請使用 gcloud projects add-iam-policy-binding 指令:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='PRINCIPAL' \
--role='roles/analyticshub.admin'
更改下列內容:
PROJECT_ID:專案 ID,例如:my-project-1PRINCIPAL:您要授予角色的有效身分例如:
- Google 帳戶電子郵件地址:
user:user@gmail.com - Google 群組:
group:admins@googlegroups.com - 服務帳戶:
serviceAccount:server@example.gserviceaccount.com - Google Workspace 網域:
domain:example.com
- Google 帳戶電子郵件地址:
API
使用資源的
getIamPolicy方法讀取現有政策。如果是專案,請使用projects.getIamPolicy方法。POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
將
PROJECT_ID改為專案 ID,例如my-project-1。如要新增主體及其相關聯的角色,請使用文字編輯器編輯政策。請使用下列格式新增成員:
user:test-user@gmail.comgroup:admins@example.comserviceAccount:test123@example.domain.comdomain:example.domain.com
舉例來說,如要將
roles/analyticshub.admin角色授予group:admins@example.com,請在政策中新增下列繫結:{ "members": [ "group:admins@example.com" ], "role":"roles/analyticshub.admin" }使用
setIamPolicy方法寫入更新後的政策。舉例來說,如要在專案層級設定政策,請使用
project.setIamPolicy方法。在要求主體中,提供上一個步驟中更新的 IAM 政策。POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
將
PROJECT_ID替換為專案 ID。
授予資料交換的角色
如要授予資料交換庫的角色,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Sharing (Analytics Hub)」(共用 (Analytics Hub)) 頁面。
按一下要設定權限的資料交換名稱。
前往「詳細資料」分頁。
按一下 「設定權限」。
如要新增主體,請按一下 「新增主體」。
在「New principals」(新增主體) 欄位中,新增要授予存取權的電子郵件 ID。您也可以使用
allUsers將資源設為公開,讓網際網路上的所有人都能存取,或使用allAuthenticatedUsers將資源設為僅供登入 Google 的使用者存取。在「Select a role」(選取角色) 選單中選取「Analytics Hub」,然後選取下列其中一個 Identity and Access Management (IAM) 角色:
- Analytics Hub 管理員
- Analytics Hub 清單管理員
- Analytics Hub 發布者
- Analytics Hub 訂閱者
- Analytics Hub 訂閱項目擁有者
- Analytics Hub 檢視者
按一下 [儲存]。
API
使用
projects.locations.dataExchanges.getIamPolicy方法,透過清單getIamPolicy方法讀取現有政策:POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
更改下列內容:
PROJECT_ID:專案 ID,例如my-project-1。LOCATION:資料交換的位置。使用小寫英文字母。DATAEXCHANGE_ID:資料交換 ID。
BigQuery sharing (舊稱 Analytics Hub) 會傳回目前的政策。
如要新增或移除成員及其相關聯的身分與存取權管理 (IAM) 角色,請使用文字編輯器編輯政策。請使用下列格式新增成員:
user:test-user@gmail.comgroup:admins@example.comserviceAccount:test123@example.domain.comdomain:example.domain.com
舉例來說,如要將
roles/analyticshub.subscriber角色授予group:subscribers@example.com,請在政策中新增下列繫結:{ "members": [ "group:subscribers@example.com" ], "role":"roles/analyticshub.subscriber" }使用
projects.locations.dataExchanges.setIamPolicy方法寫入更新後的政策。在要求主體中,提供上一個步驟中更新的 IAM 政策。POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
在要求主體中提供房源詳細資料。如果要求成功,回應主體會包含房源詳細資料。
在資源層級 (例如資料交換) 授予權限時,資源名稱的位置部分必須使用小寫字母。使用大寫或大小寫混合的值
可能會導致 Permission Denied 錯誤。
- 請使用:
projects/myproject/locations/us/dataExchanges/123 - 請避免:
projects/myproject/locations/US/dataExchanges/123 - 請避免:
projects/myproject/locations/Eu/dataExchanges/123
您可以透過相同的 IAM 面板刪除及更新資料交換的角色,如上述步驟所述。
授予房源角色
如要授予商家資訊的角色,請按照下列步驟操作:
控制台
前往 Google Cloud 控制台的「Sharing (Analytics Hub)」(共用 (Analytics Hub)) 頁面。
按一下包含商家資訊的資料交易所名稱。
按一下要新增使用者的房源資訊。
按一下 「設定權限」。
如要新增主體,請按一下 「新增主體」。
在「New principals」(新增主體) 欄位中,新增要授予存取權的身分電子郵件 ID。
在「Select a role」(選取角色) 選單中選取「Analytics Hub」,然後選取下列其中一個 Identity and Access Management (IAM) 角色:
- Analytics Hub 管理員
- Analytics Hub 清單管理員
- Analytics Hub 發布者
- Analytics Hub 訂閱者
- Analytics Hub 訂閱項目擁有者
- Analytics Hub 檢視者
按一下 [儲存]。
API
使用
projects.locations.dataExchanges.listings.getIamPolicy方法,透過清單getIamPolicy方法讀取現有政策:POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:getIamPolicy
更改下列內容:
PROJECT_ID:專案 ID,例如my-project-1。LOCATION:含有房源資訊的資料交易所位置。使用小寫英文字母。DATAEXCHANGE_ID:資料交換 ID。LISTING_ID:房源 ID。
分享會傳回目前的政策。
如要新增或移除成員及其相關聯的身分與存取權管理 (IAM) 角色,請使用文字編輯器編輯政策。請使用下列格式新增成員:
user:test-user@gmail.comgroup:admins@example.comserviceAccount:test123@example.domain.comdomain:example.domain.com
舉例來說,如要將
roles/analyticshub.publisher角色授予group:publishers@example.com,請在政策中新增下列繫結:{ "members": [ "group:publishers@example.com" ], "role":"roles/analyticshub.publisher" }使用
projects.locations.dataExchanges.listings.setIamPolicy方法寫入更新後的政策。在要求主體中,提供上一個步驟中更新的 IAM 政策。POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING-ID:setIamPolicy
在要求主體中提供房源詳細資料。如果要求成功,回應主體會包含房源詳細資料。
在資源層級 (例如商家資訊) 授予權限時,資源名稱的位置部分必須使用小寫字母。使用大寫或大小寫混合的值
可能會導致 Permission Denied 錯誤。
- 請使用:
projects/myproject/locations/us/dataExchanges/123/listings/456 - 請避免:
projects/myproject/locations/US/dataExchanges/123/listings/456 - 請避免:
projects/myproject/locations/Eu/dataExchanges/123/listings/456
如要刪除及更新房源的角色,請透過上述步驟說明的 IAM 面板進行。
後續步驟
- 瞭解 BigQuery IAM 角色。
- 瞭解 BigQuery sharing。
- 瞭解如何管理資料交換。
- 瞭解如何管理房源資訊。
- 瞭解如何查看及訂閱清單和資料交換。