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

Cloud Healthcare API は、Cloud Storage バケットや BigQuery データセットなど、プロジェクト内の他の Google Cloud リソースに自動的にアクセスできません。これらのリソースにアクセスすると、Cloud Healthcare API は 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 コンソールの [Identity and Access Management] ページで確認できます。

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

データセット CMEK の権限

Cloud Healthcare API データセットを作成するときに、顧客管理の暗号鍵(CMEK)を使用できます。Cloud Healthcare サービス エージェントのサービス アカウントが CMEK 鍵を使用してオブジェクトを暗号化および復号できるようにするには、サービス アカウントに 暗号鍵の暗号化/復号(roles/cloudkms.cryptoKeyEncrypterDecrypterロールを付与します。

Console

  1. Google Cloud コンソールの [IAM] ページに移動します。

    IAM に移動

  2. [Google 提供のロール付与を含める] チェックボックスをオンにします。

  3. [プリンシパル別に表示] タブが選択されていることを確認します。Cloud Healthcare サービス エージェントのサービス アカウントを含む行を見つけ、その行の [プリンシパルを編集します] をクリックします。[権限の編集] ペインが表示されます。

  4. [ 別のロールを追加] をクリックします。

  5. [ロールを選択] プルダウン メニューから検索して、[CryptoKey の暗号化/復号] をクリックします。

  6. [保存] をクリックします。

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

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

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

Google Cloud コンソールまたは gcloud CLI を使用して、プロジェクトのサービス アカウントに pubsub.publisher ロールを追加します。

コンソール

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud コンソールの IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。サービス アカウント ID は 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

プロジェクト間で Pub/Sub 権限を構成する

別のプロジェクトのトピックに Pub/Sub 通知をパブリッシュするには、Cloud Healthcare サービス エージェントのサービス アカウントにトピックに対する pubsub.publisher ロールを付与します。詳細については、Google Cloud コンソールによるアクセス制御IAM API によるアクセス制御をご覧ください。

プロジェクト間での Pub/Sub 通知公開の例については、サンプル ユースケース: プロジェクト間の通信をご覧ください。

DICOM ストアの Cloud Storage 権限

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

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

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

Console

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud コンソールの IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。サービス アカウント ID は 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 コンソールまたは gcloud CLI を使用して、必要な storage.objectAdmin ロールをプロジェクトのサービス アカウントに追加できます。

Console

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud コンソールの IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。サービス アカウント ID は 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 コンソールまたは gcloud CLI を使用して、必要な bigquery.dataEditor ロールと bigquery.jobUser ロールをプロジェクトのサービス アカウントに追加できます。

Console

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud コンソールの IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。サービス アカウント ID は 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 を見つけるには、プロジェクトの識別をご覧ください。

  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 アクセス権が付与されます。ただし、これらのロールを追加していない状態で単一の 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 コンソールの IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。サービス アカウント ID は service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com です。次の手順で使用するため、ソースプロジェクトのこのアドレスをメモします。

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

Console

  1. Google Cloud コンソールで宛先プロジェクトの IAM ページを開きます。
  2. [Add] をクリックします。
  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 権限

以降のセクションでは、Cloud Storage との間で読み取りまたは書き込みを行うために Cloud Healthcare サービス エージェントで追加の権限が必要な FHIR メソッドについて説明します。

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

projects.locations.datasets.fhirStores.import メソッドには、Cloud Healthcare サービス エージェントのサービス アカウントに対する次の権限が必要です。

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

これらの権限は、事前定義された storage.objectViewer ロールに含まれています。

また、権限をカスタムロールに追加することも、他の基本ロールに含めることもできます。

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

Console

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud コンソールの IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。サービス アカウント ID は 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 リソースのエクスポート

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. ロールに一致する [継承] 列で、鉛筆アイコンをクリックします。[権限の編集] ペインが開きます。
  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

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 メソッドには、FHIR リソースを BigQuery にエクスポートするための Cloud Healthcare サービス エージェントのサービス アカウントに対する追加の権限が必要です。また、BigQuery データセットに対する WRITER アクセス権を Cloud Healthcare サービス エージェントのサービス アカウントに付与する必要があります。

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

Console

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud コンソールの IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。サービス アカウント ID は 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 を見つけるには、プロジェクトの識別をご覧ください。

  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 アクセス権が付与されます。ただし、これらのロールを追加していない状態で単一の 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 コンソールまたは gcloud CLI を使用して、必要な storage.objectViewer ロールをプロジェクトのサービス アカウントに追加できます。

Console

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud コンソールの IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。サービス アカウント ID は 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 コンソールまたは gcloud CLI を使用して、必要な storage.objectCreator ロールをプロジェクトのサービス アカウントに追加できます。

Console

  1. Cloud Healthcare API が有効になっていることを確認します。
  2. Google Cloud コンソールの IAM ページで、Cloud Healthcare サービス エージェントのサービス アカウントの [ロール] 列に [Healthcare サービス エージェント] が表示されていることを確認します。サービス アカウント ID は 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