管理 Cloud Healthcare API 与其他 Google Cloud 产品之间的权限

Cloud Healthcare API 无法自动访问项目中的其他 Google Cloud 资源,例如 Cloud Storage 存储分区和 BigQuery 数据集。访问这些资源时,Cloud Healthcare API 使用名为 Cloud Healthcare Service AgentGoogle 托管式服务帐号

要执行操作(例如:通知 Pub/Sub 主题更改、从 Cloud Storage 存储分区导入数据、将数据导出到 BigQuery 数据集等),您必须首先为服务帐号授予身份和访问权限管理 (IAM) 权限,以访问 Cloud Healthcare API 以外的资源。本页面介绍了各种操作所需的权限以及如何授予这些权限。

要详细了解如何使用 IAM 在 Cloud Healthcare API 中配置权限,请参阅访问权限控制

Cloud Healthcare Service Agent

启用 Cloud Healthcare API 后,系统会自动创建 Cloud Healthcare Service Agent 服务帐号。其成员名称为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com。要查找 Google Cloud 项目的 PROJECT_NUMBER,请参阅识别项目

您可以在 Google Cloud Console的身份和访问权限管理页面上查看有关 Cloud Healthcare Service Agent 服务帐号的详细信息,例如已授予的角色。

要详细了解 Cloud Healthcare Service Agent 及其与身份和访问权限管理 (IAM) 角色和权限的交互,请参阅访问权限控制

DICOM、FHIR 和 HL7v2 存储区 Pub/Sub 权限

在 DICOM、FHIR 和 HL7v2 存储区中进行的更改可以发送到 Pub/Sub 主题。要了解如何执行此操作,请参阅将 Cloud Pub/Sub 用于通知

这些存储区中的方法需要对 Cloud Healthcare Service Agent 服务帐号具有额外权限,才能发布对 Pub/Sub 主题的更改。

您可以使用 Google Cloud Console 或 gcloud 工具将所需的pubsub.publisher角色添加到项目的服务帐号:

控制台

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 中的 IAM 页面,验证 Healthcare Service Agent 角色是否出现在 Cloud Healthcare Service Agent 服务帐号的角色列。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在与角色匹配的继承列中,点击铅笔图标。修改权限窗格随即会打开。
  4. 点击添加其他角色,然后搜索 Pub/Sub 发布商角色。
  5. 选择相应角色,然后点击保存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

DICOM 存储区 Cloud Storage 权限

projects.locations.datasets.dicomStores.importprojects.locations.datasets.dicomStores.export 方法需要对 Cloud Healthcare Service Agent 服务帐号具有额外权限,才能导入和导出数据到 Cloud Storage。

从 Cloud Storage 导入数据

您可以使用 Google Cloud Console 或 gcloud 工具将所需的storage.objectViewer角色添加到项目的服务帐号。

控制台

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 的 IAM 页面上,验证 Healthcare Service Agent 角色是否显示在 Cloud Healthcare Service Agent 服务帐号的角色列中。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在与角色匹配的继承列中,点击铅笔图标。修改权限窗格随即会打开。
  4. 点击添加其他角色,然后搜索 Storage Object Viewer 角色。
  5. 选择相应角色,然后点击保存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 Console 或 gcloud 工具将所需的storage.objectAdmin角色添加到项目的服务帐号:

控制台

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 中的 IAM 页面,验证 Healthcare Service Agent 角色是否出现在 Cloud Healthcare Service Agent 服务帐号的角色列。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在与角色匹配的继承列中,点击铅笔图标。修改权限窗格随即会打开。
  4. 点击添加其他角色,然后搜索 Storage Object Admin 角色。
  5. 选择相应角色,然后点击保存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 Console 或 gcloud 工具将所需的 bigquery.dataEditorbigquery.jobUser 角色添加到项目的服务帐号。

控制台

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 的 IAM 页面上,验证 Healthcare Service Agent 角色是否显示在 Cloud Healthcare Service Agent 服务帐号的角色列中。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在与角色匹配的继承列中,点击铅笔图标。修改权限窗格随即会打开。
  4. 点击添加其他角色,然后搜索 BigQuery Data EditorBigQuery Job User 角色。
  5. 选择每一角色,然后点击保存。随后,bigquery.dataEditorbigquery.jobUser 角色将添加到该服务帐号中。

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/bigquery.dataEditor
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/bigquery.jobUser

允许 WRITER 访问 BigQuery 数据集

如果您向项目的服务帐号添加了 bigquery.dataEditorbigquery.jobUser 角色,那么您将拥有所有 BigQuery 数据集的 WRITER 访问权限。但是,如果您尚未添加这些角色,并且需要单个 BigQuery 数据集的 WRITER 访问权限,则可以只授予该数据集的 WRITER 访问权限。要授予 WRITER 访问 BigQuery 数据集的权限,请完成以下步骤:
  1. 导航到控制对数据集的访问权限
  2. 使用可用方法中的一种授予 Cloud Healthcare Service Agent 的电子邮件地址 WRITER 访问 BigQuery 数据集的权限。(查找以 @gcp-sa-healthcare.iam.gserviceaccount.com 结尾的电子邮件地址。)

例如,如果您的 Cloud Healthcare Service Agent 电子邮件地址是 service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com,并且您使用的是 BigQuery 网页界面,则:

  1. 按照 Console 说明操作。
  2. 添加成员字段中,输入 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 Service Agent 服务帐号,请完成以下步骤:

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 中的 IAM 页面,验证 Healthcare Service Agent 角色是否出现在 Cloud Healthcare Service Agent 服务帐号的角色列。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com。请注意源项目中的此地址,因为将在以下步骤中使用。

Cloud Healthcare Service Agent 服务帐号从源项目添加到目标项目,并通过完成以下步骤向服务帐号授予所需的 BigQuery 权限:

控制台

  1. 在 Google Cloud Console 中打开目标项目的 IAM 页面
  2. 点击添加
  3. 新成员字段中,输入来源项目的 Cloud Healthcare Service Agent 服务帐号的地址。
  4. 点击添加其他角色,然后搜索 BigQuery Data EditorBigQuery 作业用户角色。
  5. 选择相应角色,然后点击保存。源项目的 Cloud Healthcare Service Agent 服务帐号现在目标项目担任 bigquery.dataEditorbigquery.jobUser 角色。

gcloud

要将 Cloud Healthcare Service Agent 服务帐号从源项目添加到目标项目并向该服务帐号授予所需的 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

完成授予对 BigQuery 数据集的WRITER访问权限中的步骤,以允许源项目向目标数据集写入数据。

FHIR 存储 Cloud Storage 权限

projects.locations.datasets.fhirStores.importprojects.locations.datasets.fhirStores.export 方法需要拥有 Cloud Healthcare Service Agent 服务帐号的额外权限,才能导入和导出 FHIR 资源将 FHIR 资源发送到 Cloud Storage。

根据应用执行的操作确定服务帐号所需的权限:

  • 如果应用将 Cloud Storage 中的 FHIR 资源导入 FHIR 存储区,则服务帐号需要 storage.objects.getstorage.objects.list 权限,这些权限包含在 storage.objectViewer 角色中。
  • 如果应用将 FHIR 资源从 FHIR 存储区导出到 Cloud Storage,则服务帐号需要 storage.objects.createstorage.objects.deletestorage.objects.list 权限,这些权限包含在 storage.objectAdmin 角色中。

从 Cloud Storage 导入 FHIR 资源

您可以使用 Google Cloud Console 或 gcloud 工具将所需的storage.objectViewer角色添加到项目的服务帐号。

控制台

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 的 IAM 页面上,验证 Healthcare Service Agent 角色是否显示在 Cloud Healthcare Service Agent 服务帐号的角色列中。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在与角色匹配的继承列中,点击铅笔图标。修改权限窗格随即会打开。
  4. 点击添加其他角色,然后搜索 Storage Object Viewer 角色。
  5. 选择相应角色,然后点击保存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

您可以使用 Google Cloud Console 或 gcloud 工具将所需的storage.objectAdmin角色添加到项目的服务帐号:

控制台

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 中的 IAM 页面,验证 Healthcare Service Agent 角色是否出现在 Cloud Healthcare Service Agent 服务帐号的角色列。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在与角色匹配的继承列中,点击铅笔图标。修改权限窗格随即会打开。
  4. 点击添加其他角色,然后搜索 Storage Object Creator 角色。
  5. 选择相应角色,然后点击保存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

FHIR 存储区 BigQuery 权限

projects.locations.datasets.fhirStores.export 方法需要对 Cloud Healthcare Service Agent 服务帐号具有额外权限,才能将 FHIR 资源导出到 BigQuery。您还必须将 BigQuery 数据集的 WRITER 访问权限授予 Cloud Healthcare Service Agent 的服务帐号。

授予 Cloud Healthcare Service Agent 服务帐号权限

您可以使用 Google Cloud Console 或 gcloud 工具将所需的 bigquery.dataEditorbigquery.jobUser 角色添加到项目的服务帐号。

控制台

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 的 IAM 页面上,验证 Healthcare Service Agent 角色是否显示在 Cloud Healthcare Service Agent 服务帐号的角色列中。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在与角色匹配的继承列中,点击铅笔图标。修改权限窗格随即会打开。
  4. 点击添加其他角色,然后搜索 BigQuery Data EditorBigQuery Job User 角色。
  5. 选择每一角色,然后点击保存。随后,bigquery.dataEditorbigquery.jobUser 角色将添加到该服务帐号中。

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/bigquery.dataEditor
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/bigquery.jobUser

允许 WRITER 访问 BigQuery 数据集

如果您向项目的服务帐号添加了 bigquery.dataEditorbigquery.jobUser 角色,那么您将拥有所有 BigQuery 数据集的 WRITER 访问权限。但是,如果您尚未添加这些角色,并且需要单个 BigQuery 数据集的 WRITER 访问权限,则可以只授予该数据集的 WRITER 访问权限。要授予 WRITER 访问 BigQuery 数据集的权限,请完成以下步骤:
  1. 导航到控制对数据集的访问权限
  2. 使用可用方法中的一种授予 Cloud Healthcare Service Agent 的电子邮件地址 WRITER 访问 BigQuery 数据集的权限。(查找以 @gcp-sa-healthcare.iam.gserviceaccount.com 结尾的电子邮件地址。)

例如,如果您的 Cloud Healthcare Service Agent 电子邮件地址是 service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com,并且您使用的是 BigQuery 网页界面,则:

  1. 按照 Console 说明操作。
  2. 添加成员字段中,输入 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。

根据应用执行的操作确定服务帐号所需的权限:

  • 如果应用将 Cloud Storage 中的 HL7v2 消息导入 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 Console 或 gcloud 工具将所需的storage.objectViewer角色添加到项目的服务帐号。

控制台

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 的 IAM 页面上,验证 Healthcare Service Agent 角色是否显示在 Cloud Healthcare Service Agent 服务帐号的角色列中。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在与角色匹配的继承列中,点击铅笔图标。修改权限窗格随即会打开。
  4. 点击添加其他角色,然后搜索 Storage Object Viewer 角色。
  5. 选择相应角色,然后点击保存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 Console 或 gcloud 工具将所需的storage.objectCreator角色添加到项目的服务帐号:

控制台

  1. 确保您已启用 Cloud Healthcare API
  2. 在 Google Cloud Console 中的 IAM 页面,验证 Healthcare Service Agent 角色是否出现在 Cloud Healthcare Service Agent 服务帐号的角色列。服务帐号成员为 service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  3. 在与角色匹配的继承列中,点击铅笔图标。修改权限窗格随即会打开。
  4. 点击添加其他角色,然后搜索 Storage Object Creator 角色。
  5. 选择相应角色,然后点击保存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