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

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

如要執行操作 (例如通知 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。如要找出 Google Cloud 專案的 PROJECT_NUMBER,請參閱「識別專案」一文。

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

如要進一步瞭解 Cloud Healthcare Service Agent 及其與 Identity & 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. 確認已選取「View by principals」分頁標籤。找出包含 Cloud Healthcare 服務代理 服務帳戶的資料列,然後按一下該列中的 「Edit principal」(編輯主體)。系統會顯示「Edit permissions」窗格。

  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」服務帳戶的「Role」欄位中,是否有「Healthcare Service Agent」角色。服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」欄中,按一下鉛筆圖示。「Edit permissions」窗格隨即開啟。
  4. 按一下「Add another role」(新增其他角色),然後搜尋「Pub/Sub Publisher」(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 通知發布至其他專案的主題,請將 Cloud Healthcare 服務代理服務帳戶的 pubsub.publisher 角色授予該主題。詳情請參閱「透過 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 服務帳戶的「Role」欄位中,是否有「Healthcare Service Agent」角色。服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」欄中,按一下鉛筆圖示。「Edit permissions」窗格隨即開啟。
  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 Service Agent」角色。服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」欄中,按一下鉛筆圖示。「Edit permissions」窗格隨即開啟。
  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

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 服務帳戶的「Role」欄中是否顯示「Healthcare Service Agent」角色。服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」欄中,點選鉛筆圖示。「Edit permissions」窗格隨即開啟。
  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
    

將 BigQuery 資料集的存取權授予 WRITER

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

舉例來說,如果您的 Cloud Healthcare Service Agent 電子郵件地址為 service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com,且您使用的是 BigQuery 網頁版 UI,則應採取以下做法:

  1. 請按照管理中心的操作說明進行。
  2. 在「Add principals」欄位中輸入 service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com,然後選取 bigquery.dataEditor 角色。

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

如要將 DICOM 中繼資料從一個專案中的 DICOM 儲存空間匯出至另一個專案中的 BigQuery 資料表,您必須將來源專案的 Cloud Healthcare Service Agent 服務帳戶新增至目的專案,並授予服務帳戶目的專案中的 bigquery.dataEditorbigquery.jobUser 角色。

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

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

Cloud Healthcare Service Agent 服務帳戶從來源專案新增至目標專案,然後完成下列步驟,將 BigQuery 必要權限授予服務帳戶:

控制台

  1. 在 Google Cloud 控制台中,開啟目標專案的「IAM」頁面。
  2. 按一下「新增」。
  3. 在「新增成員」欄位中,輸入來源專案的 Cloud Healthcare Service Agent 服務帳戶地址。
  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 權限

以下各節說明 FHIR 方法需要在 Cloud Healthcare Service Agent 上具備額外權限,才能讀取或寫入 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 服務帳戶的「Role」欄中是否顯示「Healthcare Service Agent」角色。服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」欄中,點選鉛筆圖示。「Edit permissions」窗格隨即開啟。
  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 Service Agent 服務帳戶上具備下列權限:

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

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

您也可以將權限新增至自訂角色,或是將權限納入其他基本角色

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

控制台

  1. 請確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的 IAM 頁面中,確認「Cloud Healthcare 服務代理」服務帳戶的「角色」欄中是否顯示「Healthcare Service Agent」角色。服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」欄中,按一下鉛筆圖示。「Edit permissions」窗格隨即開啟。
  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 Service Agent 服務帳戶的其他權限,才能將 FHIR 資源匯出至 BigQuery。您也必須將 BigQuery 資料集的 WRITER 存取權授予 Cloud Healthcare Service Agent 服務帳戶。

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

控制台

  1. 確認您已啟用 Cloud Healthcare API
  2. 在 Google Cloud 控制台的 IAM 頁面中,確認 Cloud Healthcare Service Agent 服務帳戶的「Role」欄中是否顯示「Healthcare Service Agent」角色。服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」欄中,點選鉛筆圖示。「Edit permissions」窗格隨即開啟。
  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
    

將 BigQuery 資料集的存取權授予 WRITER

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

舉例來說,如果您的 Cloud Healthcare Service Agent 電子郵件地址為 service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com,且您使用的是 BigQuery 網頁版 UI,則應採取以下做法:

  1. 請按照管理中心的操作說明進行。
  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 Service Agent 服務帳戶的額外權限,才能從 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 服務帳戶的「Role」欄中是否顯示「Healthcare Service Agent」角色。服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」欄中,按一下鉛筆圖示。「Edit permissions」窗格隨即開啟。
  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 Service Agent」角色。服務帳戶 ID 為 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在與角色相符的「Inheritance」欄中,按一下鉛筆圖示。「Edit permissions」窗格隨即開啟。
  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