管理 Cloud Healthcare API 與其他 Google Cloud 產品之間的權限

Cloud Healthcare API 無法自動存取專案中的其他Google Cloud 資源,例如 Cloud Storage 值區和 BigQuery 資料集。存取這些資源時,Cloud Healthcare API 會使用稱為「Cloud Healthcare 服務代理程式」服務代理程式。

如要執行作業 (例如通知 Pub/Sub 主題變更、從 Cloud Storage 值區匯入資料、將資料匯出至 BigQuery 資料集等),您必須先授予服務帳戶必要的 Identity and Access Management (IAM) 權限,才能存取 Cloud Healthcare API 以外的資源。本頁面說明各種作業所需的權限,以及如何授予權限。

如要進一步瞭解如何使用 IAM 在 Cloud Healthcare API 中設定權限,請參閱「存取權控管」。

Cloud Healthcare 服務代理人

啟用 Cloud Healthcare API 後,系統會自動建立 Cloud Healthcare 服務代理人 服務帳戶。其成員名稱為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com。如要找出專案的 PROJECT_NUMBER Google Cloud ,請參閱「識別專案」。

您可以在Google Cloud 控制台的「身分與存取權管理」頁面,查看Cloud Healthcare 服務代理人服務帳戶的詳細資訊,例如已授予的角色。

如要進一步瞭解 Cloud Healthcare 服務代理程式,以及該代理程式與 Identity and Access Management (IAM) 角色和權限的互動方式,請參閱存取權控管

資料集 CMEK 權限

您可以在建立 Cloud Healthcare API 資料集時使用客戶自行管理的加密金鑰 (CMEK)。如要讓 Cloud Healthcare Service Agent 服務帳戶使用 CMEK 金鑰加密及解密物件,請將CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) 角色授予該服務帳戶。

控制台

  1. 前往 Google Cloud 控制台的「IAM」頁面。

    前往身分與存取權管理頁面

  2. 選取「包含 Google 提供的角色授權」核取方塊。

  3. 確認已選取「依主體檢視」分頁標籤。找出包含「Cloud Healthcare Service Agent」(Cloud Healthcare 服務代理) 服務帳戶的資料列,然後點選該列中的 「Edit principal」(編輯主體)。系統會顯示「編輯權限」窗格。

  4. 按一下 「Add another role」(新增其他角色)

  5. 在「Select a role」(選取角色) 下拉式選單中,搜尋並點按「CryptoKey Encrypter/Decrypter」(加密編譯金鑰加密者/解密者)

  6. 按一下 [儲存]

DICOM、FHIR 和 HL7v2 儲存庫的 Pub/Sub 權限

DICOM、FHIR 和 HL7v2 儲存庫中的變更可以傳送至 Pub/Sub 主題。詳情請參閱「使用 Cloud Pub/Sub 接收通知」。

這些存放區中的方法需要 Cloud Healthcare 服務代理人服務帳戶的額外權限,才能將變更發布至 Pub/Sub 主題。

使用 Google Cloud 控制台或 gcloud CLI,將 pubsub.publisher 角色新增至專案的服務帳戶:

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare Service Agent」(Cloud Healthcare 服務代理人) 服務帳戶的「角色」欄中是否顯示「Healthcare Service Agent」(Healthcare 服務代理人) 角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」(繼承) 欄中,點選鉛筆圖示。「編輯權限」窗格隨即開啟。
  4. 按一下「新增其他角色」,然後搜尋「Pub/Sub 發布者」角色。
  5. 選取角色,然後點選 [Save] (儲存)。pubsub.publisher 角色已新增至服務帳戶。

gcloud

如要新增服務帳戶權限,請執行 gcloud projects add-iam-policy-binding 指令。如要找出 PROJECT_IDPROJECT_NUMBER,請參閱「識別專案」。

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/pubsub.publisher

設定專案間的 Pub/Sub 權限

如要將 Pub/Sub 通知發布至其他專案中的主題,請將主題的 pubsub.publisher 角色授予 Cloud Healthcare 服務代理服務帳戶。詳情請參閱「透過 Google Cloud 控制台控管存取權」和「透過 IAM API 控管存取權」。

如要查看在專案之間發布 Pub/Sub 通知的範例,請參閱用途範例:跨專案通訊

DICOM 儲存庫 Cloud Storage 權限

projects.locations.datasets.dicomStores.importprojects.locations.datasets.dicomStores.export 方法需要 Cloud Healthcare Service Agent 服務帳戶的額外權限,才能從 Cloud Storage 匯入資料,以及將資料匯出至 Cloud Storage。

從 Cloud Storage 匯入資料

您可以使用 Google Cloud 控制台或 gcloud CLI,將必要的storage.objectViewer角色新增至專案的服務帳戶。

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare Service Agent」(Cloud Healthcare 服務代理人) 服務帳戶的「角色」欄中,是否顯示「Healthcare Service Agent」(Healthcare 服務代理人) 角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」(繼承) 欄中,點選鉛筆圖示。 「編輯權限」窗格隨即開啟。
  4. 按一下「新增其他角色」,然後搜尋「Storage 物件檢視者」角色。
  5. 選取角色,然後點選 [Save] (儲存)。系統會將 storage.objectViewer 角色加入至服務帳戶。

gcloud

如要新增服務帳戶權限,請執行 gcloud projects add-iam-policy-binding 指令。如要尋找 PROJECT_IDPROJECT_NUMBER,請參閱「識別專案」。
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/storage.objectViewer 

將資料匯出至 Cloud Storage

您可以使用 Google Cloud 控制台或 gcloud CLI,將必要的 storage.objectAdmin 角色新增至專案的服務帳戶:

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare 服務代理」服務帳戶的「角色」欄中是否顯示「Healthcare 服務代理」角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」(繼承) 欄中,點選鉛筆圖示。「編輯權限」窗格隨即開啟。
  4. 按一下「Add another role」(新增其他角色),然後搜尋「Storage Object Admin」(Storage 物件管理員) 角色。
  5. 選取角色,然後點選 [Save] (儲存)。然後將 storage.objectAdmin 角色新增至服務帳戶。

gcloud

如要新增服務帳戶權限,請執行 gcloud projects add-iam-policy-binding 指令。如要找出 PROJECT_IDPROJECT_NUMBER,請參閱「識別專案」。

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/storage.objectAdmin

DICOM 儲存庫 BigQuery 權限

projects.locations.datasets.dicomStores.export 方法需要 Cloud Healthcare Service Agent 服務帳戶的額外權限,才能將 DICOM 中繼資料匯出至 BigQuery。您也必須將 BigQuery 資料集的 WRITER 存取權授予 Cloud Healthcare Service Agent 服務帳戶。

將權限授予 Cloud Healthcare Service Agent 服務帳戶

您可以使用 Google Cloud 控制台或 gcloud CLI,將必要的 bigquery.dataEditorbigquery.jobUser 角色新增至專案的服務帳戶。

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare Service Agent」(Cloud Healthcare 服務代理人) 服務帳戶的「角色」欄中,是否顯示「Healthcare Service Agent」(Healthcare 服務代理人) 角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」(繼承) 欄中,點選鉛筆圖示。 「編輯權限」窗格隨即開啟。
  4. 按一下「新增其他角色」,然後搜尋「BigQuery 資料編輯者」和「BigQuery 工作使用者」角色。
  5. 選取每個角色,然後點選「儲存」,系統會將 bigquery.dataEditorbigquery.jobUser 角色加入至服務帳戶。

gcloud

如要新增服務帳戶權限,請執行 gcloud projects add-iam-policy-binding 指令。如要找出 PROJECT_IDPROJECT_NUMBER,請參閱「識別專案」。

  1. 授予 roles/bigquery.dataEditor 角色:

    使用下方的任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您的 Google Cloud 專案 ID
    • PROJECT_NUMBER:您的 Google Cloud 專案編號

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
        --role=roles/bigquery.dataEditor

    Windows (PowerShell)

    gcloud projects add-iam-policy-binding PROJECT_ID `
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com `
        --role=roles/bigquery.dataEditor

    Windows (cmd.exe)

    gcloud projects add-iam-policy-binding PROJECT_ID ^
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com ^
        --role=roles/bigquery.dataEditor

    您應該會收到類似以下的回應:

    Updated IAM policy for project [PROJECT_ID].
    bindings:
    ...
    - members:
      - serviceAccount:service-NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
      role: roles/bigquery.dataEditor
    ...
    etag: ETAG
    version: VERSION
    

  2. 授予 roles/bigquery.jobUser 角色:

    使用下方的任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您的 Google Cloud 專案 ID
    • PROJECT_NUMBER:您的 Google Cloud 專案編號

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
        --role=roles/bigquery.jobUser

    Windows (PowerShell)

    gcloud projects add-iam-policy-binding PROJECT_ID `
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com `
        --role=roles/bigquery.jobUser

    Windows (cmd.exe)

    gcloud projects add-iam-policy-binding PROJECT_ID ^
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com ^
        --role=roles/bigquery.jobUser

    您應該會收到類似以下的回應:

    Updated IAM policy for project [PROJECT_ID].
    bindings:
    ...
    - members:
      - serviceAccount:service-NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
      role: roles/bigquery.jobUser
    ...
    etag: ETAG
    version: VERSION
    

授予 WRITER BigQuery 資料集存取權

如果您已將 bigquery.dataEditorbigquery.jobUser 角色新增至專案的服務帳戶,您將擁有所有 BigQuery 資料集的 WRITER 存取權。不過,如果您尚未新增這些角色,且需要WRITER存取單一 BigQuery 資料集,可以只授予該資料集的存取權。WRITER 如要將 BigQuery 資料集的存取權授予 WRITER,請完成下列步驟:
  1. 請參閱「控管資料集存取權」。
  2. 使用其中一種可用方法,將 BigQuery 資料集存取權授予 Cloud Healthcare 服務代理程式的電子郵件地址 WRITER。(請尋找結尾為 @gcp-sa-healthcare.iam.gserviceaccount.com 的電子郵件地址)。

舉例來說,如果您的 Cloud Healthcare Service Agent 電子郵件地址是 service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com,且您使用 BigQuery 網頁版 UI,則請按照下列步驟操作:

  1. 按照 Console 指示操作。
  2. 在「Add principals」(新增主體) 欄位中輸入 service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com,然後選取 bigquery.dataEditor 角色。

跨 Google Cloud 專案匯出 DICOM 中繼資料

如要將一個專案中 DICOM 存放區的 DICOM 中繼資料匯出至另一個專案的 BigQuery 表格,您必須將來源專案的 Cloud Healthcare 服務代理程式服務帳戶新增至目的地專案,並在目的地專案中將 bigquery.dataEditorbigquery.jobUser 角色授予該服務帳戶。

如要找出來源專案的 Cloud Healthcare 服務代理服務帳戶,請完成下列步驟:

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare Service Agent」(Cloud Healthcare 服務代理人) 服務帳戶的「角色」欄中是否顯示「Healthcare Service Agent」(Healthcare 服務代理人) 角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com。請記下來源專案中的這個地址,後續步驟會用到。

將來源專案的 Cloud Healthcare 服務代理程式服務帳戶新增至目標專案,然後完成下列步驟,將必要的 BigQuery 權限授予該服務帳戶:

控制台

  1. 在 Google Cloud 控制台中,開啟目標專案的「IAM」頁面
  2. 按一下「新增」
  3. 在「新增成員」欄位中,輸入來源專案的「Cloud Healthcare Service Agent」(Cloud Healthcare 服務代理程式) 服務帳戶地址。
  4. 按一下「新增其他角色」,然後搜尋「BigQuery 資料編輯者」和「BigQuery 工作使用者」角色。
  5. 選取角色,然後點選 [Save] (儲存)。來源專案的 Cloud Healthcare Service Agent 服務帳戶現在已在目標專案中具備 bigquery.dataEditorbigquery.jobUser 角色。

gcloud

如要將來源專案的 Cloud Healthcare 服務代理人服務帳戶新增至目的地專案,並授予該服務帳戶必要的 BigQuery 權限,請執行 gcloud projects add-iam-policy-binding 指令。如要找出來源和目的地專案的專案 ID 和專案編號,請參閱「識別專案」。

gcloud projects add-iam-policy-binding DESTINATION_PROJECT_ID \
    --member=serviceAccount:service-SOURCE_PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/bigquery.dataEditor
gcloud projects add-iam-policy-binding DESTINATION_PROJECT_ID \
    --member=serviceAccount:service-SOURCE_PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/bigquery.jobUser

完成「授予 WRITER BigQuery 資料集存取權」一文中的步驟,允許來源專案寫入目的地資料集。

FHIR 商店 Cloud Storage 權限

以下各節說明需要 Cloud Healthcare Service Agent 具備額外權限的 FHIR 方法,才能從 Cloud Storage 讀取或寫入資料。

從 Cloud Storage 匯入 FHIR 資源

projects.locations.datasets.fhirStores.import 方法需要 Cloud Healthcare 服務代理服務帳戶的下列權限:

  • storage.objects.get
  • storage.objects.list

預先定義的 storage.objectViewer 角色包含這些權限。

您也可以將權限新增至自訂角色,或權限可能已包含在其他基本角色中。

您可以使用 Google Cloud 控制台或 gcloud CLI,將必要的storage.objectViewer角色新增至專案的服務帳戶。

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare Service Agent」(Cloud Healthcare 服務代理人) 服務帳戶的「角色」欄中,是否顯示「Healthcare Service Agent」(Healthcare 服務代理人) 角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」(繼承) 欄中,點選鉛筆圖示。 「編輯權限」窗格隨即開啟。
  4. 按一下「新增其他角色」,然後搜尋「Storage 物件檢視者」角色。
  5. 選取角色,然後點選 [Save] (儲存)。系統會將 storage.objectViewer 角色加入至服務帳戶。

gcloud

如要新增服務帳戶權限,請執行 gcloud projects add-iam-policy-binding 指令。如要尋找 PROJECT_IDPROJECT_NUMBER,請參閱「識別專案」。
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/storage.objectViewer 

將 FHIR 資源匯出至 Cloud Storage

如要使用 projects.locations.datasets.fhirStores.export 方法,您必須對 Cloud Healthcare 服務代理程式服務帳戶具備下列權限:

  • storage.objects.create
  • storage.objects.delete
  • storage.objects.list

預先定義的 storage.objectAdmin 角色包含這些權限。

您也可以將權限新增至自訂角色,或權限可能已包含在其他基本角色中。

如要將 storage.objectAdmin 角色授予服務帳戶,請按照下列步驟操作:

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare 服務代理」服務帳戶的「角色」欄中是否顯示「Healthcare 服務代理」角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」(繼承) 欄中,點選鉛筆圖示。「編輯權限」窗格隨即開啟。
  4. 按一下「新增其他角色」,然後搜尋「Storage 物件建立者」角色。
  5. 選取角色,然後點選 [Save] (儲存)。然後將 storage.objectAdmin 角色新增至服務帳戶。

gcloud

如要新增服務帳戶權限,請執行 gcloud projects add-iam-policy-binding 指令。如要找出 PROJECT_IDPROJECT_NUMBER,請參閱「識別專案」。

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/storage.objectAdmin

從 Cloud Storage 讀取篩選器檔案

projects.locations.datasets.fhirStores.rollback 方法需要 Cloud Healthcare 服務代理服務帳戶具備下列權限,才能從 Cloud Storage 讀取篩選器檔案

  • storage.objects.get
  • storage.objects.list

預先定義的 storage.objectViewer 角色包含這些權限。

您也可以將權限新增至自訂角色,或權限可能已包含在其他基本角色中。

如要將 storage.objectViewer 角色指派給服務帳戶,請按照下列步驟操作:

將輸出檔案寫入 Cloud Storage

projects.locations.datasets.fhirStores.rollback 方法需要 Cloud Healthcare 服務代理人服務帳戶具備下列權限,才能將輸出檔案寫入 Cloud Storage:

  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list

預先定義的 storage.objectAdmin 角色包含這些權限。

您也可以將權限新增至自訂角色,或權限可能已包含在其他基本角色中。

如要將 storage.objectAdmin 角色指派給服務帳戶,請按照下列步驟操作:

FHIR 儲存庫 BigQuery 權限

projects.locations.datasets.fhirStores.export 方法需要 Cloud Healthcare 服務代理程式服務帳戶的其他權限,才能將 FHIR 資源匯出至 BigQuery。您也必須將 BigQuery 資料集的 WRITER 存取權授予 Cloud Healthcare Service Agent 服務帳戶。

將權限授予 Cloud Healthcare Service Agent 服務帳戶

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare Service Agent」(Cloud Healthcare 服務代理人) 服務帳戶的「角色」欄中,是否顯示「Healthcare Service Agent」(Healthcare 服務代理人) 角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」(繼承) 欄中,點選鉛筆圖示。 「編輯權限」窗格隨即開啟。
  4. 按一下「新增其他角色」,然後搜尋「BigQuery 資料編輯者」和「BigQuery 工作使用者」角色。
  5. 選取每個角色,然後點選「儲存」,系統會將 bigquery.dataEditorbigquery.jobUser 角色加入至服務帳戶。

gcloud

如要新增服務帳戶權限,請執行 gcloud projects add-iam-policy-binding 指令。如要找出 PROJECT_IDPROJECT_NUMBER,請參閱「識別專案」。

  1. 授予 roles/bigquery.dataEditor 角色:

    使用下方的任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您的 Google Cloud 專案 ID
    • PROJECT_NUMBER:您的 Google Cloud 專案編號

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
        --role=roles/bigquery.dataEditor

    Windows (PowerShell)

    gcloud projects add-iam-policy-binding PROJECT_ID `
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com `
        --role=roles/bigquery.dataEditor

    Windows (cmd.exe)

    gcloud projects add-iam-policy-binding PROJECT_ID ^
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com ^
        --role=roles/bigquery.dataEditor

    您應該會收到類似以下的回應:

    Updated IAM policy for project [PROJECT_ID].
    bindings:
    ...
    - members:
      - serviceAccount:service-NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
      role: roles/bigquery.dataEditor
    ...
    etag: ETAG
    version: VERSION
    

  2. 授予 roles/bigquery.jobUser 角色:

    使用下方的任何指令資料之前,請先替換以下項目:

    • PROJECT_ID:您的 Google Cloud 專案 ID
    • PROJECT_NUMBER:您的 Google Cloud 專案編號

    執行下列指令:

    Linux、macOS 或 Cloud Shell

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
        --role=roles/bigquery.jobUser

    Windows (PowerShell)

    gcloud projects add-iam-policy-binding PROJECT_ID `
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com `
        --role=roles/bigquery.jobUser

    Windows (cmd.exe)

    gcloud projects add-iam-policy-binding PROJECT_ID ^
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com ^
        --role=roles/bigquery.jobUser

    您應該會收到類似以下的回應:

    Updated IAM policy for project [PROJECT_ID].
    bindings:
    ...
    - members:
      - serviceAccount:service-NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
      role: roles/bigquery.jobUser
    ...
    etag: ETAG
    version: VERSION
    

授予 WRITER BigQuery 資料集存取權

如果您已將 bigquery.dataEditorbigquery.jobUser 角色新增至專案的服務帳戶,您將擁有所有 BigQuery 資料集的 WRITER 存取權。不過,如果您尚未新增這些角色,且需要WRITER存取單一 BigQuery 資料集,可以只授予該資料集的存取權。WRITER 如要將 BigQuery 資料集的存取權授予 WRITER,請完成下列步驟:
  1. 請參閱「控管資料集存取權」。
  2. 使用其中一種可用方法,將 BigQuery 資料集存取權授予 Cloud Healthcare 服務代理程式的電子郵件地址 WRITER。(請尋找結尾為 @gcp-sa-healthcare.iam.gserviceaccount.com 的電子郵件地址)。

舉例來說,如果您的 Cloud Healthcare Service Agent 電子郵件地址是 service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com,且您使用 BigQuery 網頁版 UI,則請按照下列步驟操作:

  1. 按照 Console 指示操作。
  2. 在「Add principals」(新增主體) 欄位中輸入 service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com,然後選取 bigquery.dataEditor 角色。

HL7v2 儲存區 Cloud Storage 權限

projects.locations.datasets.hl7V2Stores.importprojects.locations.datasets.hl7V2Stores.export 方法需要 Cloud Healthcare 服務代理程式服務帳戶的額外權限,才能從 Cloud Storage 匯入及匯出 HL7v2 訊息。

根據應用程式執行的動作,判斷服務帳戶所需的權限:

  • 如果應用程式要將 HL7v2 訊息從 Cloud Storage 匯入 HL7v2 儲存庫,服務帳戶必須具備 storage.objects.getstorage.objects.list 權限,這些權限包含在 storage.objectViewer 角色中。
  • 如果應用程式將 HL7v2 訊息從 HL7v2 儲存庫匯出至 Cloud Storage,服務帳戶需要 storage.objects.createstorage.objects.deletestorage.objects.list 權限,這些權限包含在 storage.objectCreator 角色中。

從 Cloud Storage 匯入 HL7v2 訊息

您可以使用 Google Cloud 控制台或 gcloud CLI,將必要的storage.objectViewer角色新增至專案的服務帳戶。

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare Service Agent」(Cloud Healthcare 服務代理人) 服務帳戶的「角色」欄中,是否顯示「Healthcare Service Agent」(Healthcare 服務代理人) 角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」(繼承) 欄中,點選鉛筆圖示。 「編輯權限」窗格隨即開啟。
  4. 按一下「新增其他角色」,然後搜尋「Storage 物件檢視者」角色。
  5. 選取角色,然後點選 [Save] (儲存)。系統會將 storage.objectViewer 角色加入至服務帳戶。

gcloud

如要新增服務帳戶權限,請執行 gcloud projects add-iam-policy-binding 指令。如要尋找 PROJECT_IDPROJECT_NUMBER,請參閱「識別專案」。
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/storage.objectViewer 

將 HL7v2 訊息匯出至 Cloud Storage

您可以使用 Google Cloud 控制台或 gcloud CLI,將必要的 storage.objectCreator 角色新增至專案的服務帳戶:

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的「IAM」頁面,確認「Cloud Healthcare 服務代理」服務帳戶的「角色」欄中是否顯示「Healthcare 服務代理」角色。 服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」(繼承) 欄中,點選鉛筆圖示。「編輯權限」窗格隨即開啟。
  4. 按一下「新增其他角色」,然後搜尋「Storage 物件建立者」角色。
  5. 選取角色,然後點選 [Save] (儲存)。然後將 storage.objectCreator 角色新增至服務帳戶。

gcloud

如要新增服務帳戶權限,請執行 gcloud projects add-iam-policy-binding 指令。如要找出 PROJECT_IDPROJECT_NUMBER,請參閱「識別專案」。

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/storage.objectCreator