Cloud Healthcare API と他の Google Cloud プロダクト間の権限の管理

Cloud Healthcare API は、Cloud Storage バケットや BigQuery データセットなど、プロジェクト内の他の Google Cloud リソースに自動的にアクセスできません。これらのリソースにアクセスすると、Cloud Healthcare API は Google が管理するサービス アカウントCloud Healthcare サービス エージェント)を使用します。

Pub/Sub トピックの変更の通知、Cloud Storage バケットからのデータのインポート、BigQuery データセットへのデータのエクスポートなどの操作を行うには、まず Cloud Healthcare API の外部に存在するリソースにアクセスするために必要な Identity and Access Management(IAM)の権限をサービス アカウントに付与する必要があります。このページでは、さまざまな操作に必要な権限とそれらの権限を付与する方法について説明します。

IAM を使用して Cloud Healthcare API 内で権限を構成する方法について詳しくは、アクセス制御をご覧ください。

Cloud Healthcare サービス エージェント

Cloud Healthcare API を有効にすると、Cloud Healthcare サービス エージェントサービス アカウントが自動的に作成されます。メンバー名は service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。 Google Cloud プロジェクトの PROJECT_NUMBER を確認するには、プロジェクトの識別をご覧ください。

Cloud Healthcare サービス エージェントのサービス アカウントに関する詳細情報(付与されたロールなど)は、Google Cloud Console の Identity and Access Management ページで確認できます。

Cloud Healthcare サービス エージェント、および Identity and Access Management(IAM)のロールとのやり取り、権限の詳細については、アクセス制御をご覧ください。

DICOM ストア、FHIR ストア、HL7v2 ストアの Pub/Sub 権限

DICOM、FHIR、HL7v2 ストア内の変更は Pub/Sub トピックに送信できます。詳しい方法については、通知での Cloud Pub/Sub の使用をご覧ください。

これらのストア内のメソッドには、Pub/Sub トピックへの変更を公開するためのCloud Healthcare サービス エージェントのサービス アカウントに対する追加の権限が必要です。

Google Cloud Console または gcloud ツールを使用して、必要な pubsub.publisher 役割をプロジェクトのサービス アカウントに追加できます。

コンソール

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud Console の IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは 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.import メソッドと projects.locations.datasets.dicomStores.export メソッドでは、Cloud Storage との間でデータのインポートとエクスポートを行うために Cloud Healthcare サービス エージェントのサービス アカウントで追加の権限が必要です。

Cloud Storage からのデータのインポート

Google Cloud Console または gcloud ツールを使用して、必要な storage.objectViewer 役割をプロジェクトのアカウントに追加できます。

コンソール

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud Console の IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。
  3. 役割に一致する [継承] 列で、鉛筆アイコンをクリックします。[権限の編集] ペインが開きます。
  4. [別の役割を追加] をクリックし、ストレージ オブジェクト閲覧者の役割を検索します。
  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 ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。
  3. 役割に一致する [継承] 列で、鉛筆アイコンをクリックします。[権限の編集] ペインが開きます。
  4. [別の役割を追加] をクリックし、ストレージ オブジェクト管理者の役割を検索します。
  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 メソッドには、DICOM メタデータを BigQuery にエクスポートするために Cloud Healthcare サービス エージェントのサービス アカウントに対する追加の権限が必要です。また、BigQuery データセットに対する WRITER アクセス権を Cloud Healthcare サービス エージェントのサービス アカウントに付与する必要があります。

Cloud Healthcare サービス エージェントのサービス アカウントに対する権限の付与

Google Cloud Console または gcloud ツールを使用して、必要な bigquery.dataEditorbigquery.jobUser の役割をプロジェクトのサービス アカウントに追加できます。

コンソール

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud Console の IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。
  3. 役割に一致する [継承] 列で、鉛筆アイコンをクリックします。[権限の編集] ペインが開きます。
  4. [別の役割を追加] をクリックし、BigQuery データ編集者BigQuery ジョブユーザーの役割を検索します。
  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 サービス エージェントのメールアドレス WRITER に BigQuery データセットへのアクセス権を付与します (末尾が @gcp-sa-healthcare.iam.gserviceaccount.com のメールアドレスを探します)。

たとえば、Cloud Healthcare サービス エージェントのメールアドレスが service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com で、BigQuery ウェブ UI を使用している場合は、次のようになります。

  1. コンソールの手順に従います。
  2. [メンバーを追加] フィールドに「service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com」と入力し、bigquery.dataEditor 役割を選択します。

Google Cloud プロジェクト間での DICOM メタデータのエクスポート

あるプロジェクトの DICOM ストアから別のプロジェクトの BigQuery テーブルに DICOM メタデータをエクスポートするには、ソース プロジェクトの Cloud Healthcare サービス エージェントのサービス アカウントを宛先のプロジェクトに追加し、サービス アカウントに宛先プロジェクトでの bigquery.dataEditorbigquery.jobUser の役割を付与する必要があります。

ソース プロジェクトの Cloud Healthcare サービス エージェントのサービス アカウントを見つけるには、次の手順を実行します。

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud Console の IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。次の手順で使用するため、ソースプロジェクトのこのアドレスをメモします。

次の手順で、ソース プロジェクトから宛先プロジェクトに Cloud Healthcare サービス エージェントのサービス アカウントを追加し、必要な BigQuery 権限を付与します。

コンソール

  1. Google Cloud Console で宛先プロジェクトの IAM ページを開きます。
  2. [追加] をクリックします。
  3. [新しいメンバー] フィールドに、ソース プロジェクトの Cloud Healthcare サービス エージェントのサービス アカウントのアドレスを入力します。
  4. [別の役割を追加] をクリックし、BigQuery データ編集者BigQuery ジョブユーザーの役割を検索します。
  5. 役割を選択し、[保存] をクリックします。ソース プロジェクトの Cloud Healthcare サービス エージェントのサービス アカウントに、宛先プロジェクトに対する 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

BigQuery データセットへのアクセス権を WRITER に付与するの手順を完了して、ソース プロジェクトが宛先データセットに書き込めるようにします。

FHIR ストアの Cloud Storage 権限

projects.locations.datasets.fhirStores.import メソッドと projects.locations.datasets.fhirStores.export メソッドには、Cloud Storage との間で FHIR リソースのインポートとエクスポートを行うために Cloud Healthcare サービス エージェントのサービス アカウントに対する追加の権限が必要です。

アプリケーションが実行するアクションに基づいて、サービス アカウントに必要な権限を決定します。

  • アプリケーションが FHIR リソースを Cloud Storage から FHIR ストアにインポートする場合、サービス アカウントには storage.objectViewer 役割に含まれる storage.objects.get 権限と storage.objects.list 権限が必要です。
  • アプリケーションが FHIR リソースを FHIR ストアから Cloud Storage にエクスポートする場合、サービス アカウントには storage.objectAdmin 役割に含まれる storage.objects.createstorage.objects.deletestorage.objects.list の権限が必要です。

Cloud Storage から FHIR リソースのインポート

Google Cloud Console または gcloud ツールを使用して、必要な storage.objectViewer 役割をプロジェクトのアカウントに追加できます。

コンソール

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud Console の IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。
  3. 役割に一致する [継承] 列で、鉛筆アイコンをクリックします。[権限の編集] ペインが開きます。
  4. [別の役割を追加] をクリックし、ストレージ オブジェクト閲覧者の役割を検索します。
  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 への FHIR リソースのエクスポート

Google Cloud Console または gcloud ツールを使用して、必要な storage.objectAdmin 役割をプロジェクトのサービス アカウントに追加できます。

コンソール

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud Console の IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。
  3. 役割に一致する [継承] 列で、鉛筆アイコンをクリックします。[権限の編集] ペインが開きます。
  4. [別の役割を追加] をクリックし、ストレージ オブジェクト作成者の役割を検索します。
  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 メソッドには、FHIR リソースを BigQuery にエクスポートするための Cloud Healthcare サービス エージェントのサービス アカウントに対する追加の権限が必要です。また、BigQuery データセットに対する WRITER アクセス権を Cloud Healthcare サービス エージェントのサービス アカウントに付与する必要があります。

Cloud Healthcare サービス エージェントのサービス アカウントに対する権限の付与

Google Cloud Console または gcloud ツールを使用して、必要な bigquery.dataEditorbigquery.jobUser の役割をプロジェクトのサービス アカウントに追加できます。

コンソール

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud Console の IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。
  3. 役割に一致する [継承] 列で、鉛筆アイコンをクリックします。[権限の編集] ペインが開きます。
  4. [別の役割を追加] をクリックし、BigQuery データ編集者BigQuery ジョブユーザーの役割を検索します。
  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 サービス エージェントのメールアドレス WRITER に BigQuery データセットへのアクセス権を付与します (末尾が @gcp-sa-healthcare.iam.gserviceaccount.com のメールアドレスを探します)。

たとえば、Cloud Healthcare サービス エージェントのメールアドレスが service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com で、BigQuery ウェブ UI を使用している場合は、次のようになります。

  1. コンソールの手順に従います。
  2. [メンバーを追加] フィールドに「service-000000000000@gcp-sa-healthcare.iam.gserviceaccount.com」と入力し、bigquery.dataEditor 役割を選択します。

HL7v2 ストアの Cloud Storage 権限

projects.locations.datasets.hl7V2Stores.import メソッドと projects.locations.datasets.hl7V2Stores.export メソッドでは、HL7v2 メッセージを Cloud Storage からインポートし、Cloud Storage にエクスポートでするために、Cloud Healthcare サービス エージェントサービス アカウントに対する追加の権限が必要です。

アプリケーションが実行するアクションに基づいて、サービス アカウントに必要な権限を決定します。

  • アプリケーションで Cloud Storage から HL7v2 ストアに HL7v2 メッセージをインポートする場合、サービス アカウントには storage.objects.get 権限と storage.objects.list 権限が必要です。これらの権限は storage.objectViewer ロールに含まれています。
  • アプリケーションで HL7v2 ストアから Cloud Storage に HL7v2 メッセージをエクスポートする場合、サービス アカウントには 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 ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。
  3. 役割に一致する [継承] 列で、鉛筆アイコンをクリックします。[権限の編集] ペインが開きます。
  4. [別の役割を追加] をクリックし、ストレージ オブジェクト閲覧者の役割を検索します。
  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 への HL7v2 メッセージのエクスポート

Google Cloud Console または gcloud ツールを使用して、必要な storage.objectCreator 役割をプロジェクトのサービス アカウントに追加できます。

コンソール

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud Console の IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。 サービス アカウント メンバーは service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。
  3. 役割に一致する [継承] 列で、鉛筆アイコンをクリックします。[権限の編集] ペインが開きます。
  4. [別の役割を追加] をクリックし、ストレージ オブジェクト作成者の役割を検索します。
  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