アクセス制御

概要

Cloud Healthcare API では、アクセス制御に Cloud Identity and Access Management(Cloud IAM)が使用されます。

Cloud Healthcare API では、プロジェクト レベル、データセット レベル、またはデータストア レベルでアクセス制御を構成できます。たとえば、プロジェクト内のすべてのデータセットへのアクセス権をデベロッパーのグループに付与できます。Cloud Healthcare API で Cloud IAM を設定、使用する方法については、アクセス制御他のプロダクトへのアクセスの制御をご覧ください。

IAM とその機能の詳細については、Cloud IAM のドキュメントをご覧ください。特に、Cloud IAM ポリシーの管理のセクションを参照してください。

すべての Cloud Healthcare API メソッドでは、呼び出し元に必要な権限が付与されていることが求められます。詳細については、権限ロールをご覧ください。

権限

このセクションでは、Cloud IAM でサポートされる Healthcare API の権限を簡単に説明します。

必要な権限

次の表に、Cloud Healthcare API に関連付けられている IAM の権限を示します。表ではメソッド名が短縮されています。各メソッドのフルネームの先頭には projects.locations が付されています。

アノテーション ストア メソッド 必要な権限
datasets.annotationStores.create 親データセットに対する healthcare.annotationStores.create
datasets.annotationStores.delete リクエストされたアノテーション ストアに対する healthcare.annotationStores.delete
datasets.annotationStores.get リクエストされたアノテーション ストアに対する healthcare.annotationStores.get
datasets.annotationStores.list 親データセットに対する healthcare.annotationStores.list
datasets.annotationStores.patch リクエストされたアノテーション ストアに対する healthcare.annotationStores.update
datasets.annotationStores.annotations.create 親アノテーション ストアに対する healthcare.annotations.create
datasets.annotationStores.annotations.delete リクエストされたアノテーション レコードに対する healthcare.annotations.delete
datasets.annotationStores.annotations.get リクエストされたアノテーション レコードに対する healthcare.annotations.get
datasets.annotationStores.annotations.list 親アノテーション ストアに対する healthcare.annotations.list
datasets.annotationStores.annotations.patch リクエストされたアノテーション レコードに対する healthcare.annotations.update
データセット メソッド 必要な権限
datasets.create 親 Google Cloud プロジェクトに対する healthcare.datasets.create
datasets.deidentify
  • ソース データセットに対する healthcare.datasets.deidentify
  • 宛先データセットを含む Google Cloud プロジェクトに対する healthcare.datasets.create
datasets.delete リクエストされたデータセットに対する healthcare.datasets.delete
datasets.get リクエストされたデータセットに対する healthcare.datasets.get
datasets.getIamPolicy リクエストされたデータセットに対する healthcare.datasets.getIamPolicy
datasets.list 親 Google Cloud プロジェクトに対する healthcare.datasets.list
datasets.patch リクエストされたデータセットに対する healthcare.datasets.update
datasets.setIAMPolicy リクエストされたデータセットに対する healthcare.datasets.setIamPolicy
DICOM ストアメソッド 必要な権限
datasets.dicomStores.create 親データセットに対する healthcare.dicomStores.create
datasets.dicomStores.deidentify
  • ソース DICOM ストアに対する healthcare.dicomStores.deidentify
  • 宛先の DICOM ストアに対する healthcare.dicomStores.dicomWebWrite
datasets.dicomStores.delete リクエストされた DICOM ストアに対する healthcare.dicomStores.delete
datasets.dicomStores.export
  • リクエストされた DICOM ストアに対する healthcare.dicomStores.export
  • Cloud Storage にエクスポートする場合: プロジェクトの Cloud Healthcare Service Agent サービス アカウントに付与に付与された roles/storage.objectAdmin。手順については、Cloud Storage へのデータのエクスポートをご覧ください。
  • BigQuery にエクスポートする場合: プロジェクトの Cloud Healthcare Service Agent サービス アカウントに付与された roles/bigquery.dataEditorroles/bigquery.jobUser。手順については、DICOM ストアの BigQuery 権限をご覧ください。
datasets.dicomStores.get リクエストされた DICOM ストアに対する healthcare.dicomStores.get
datasets.dicomStores.getIamPolicy リクエストされた DICOM ストアに対する healthcare.dicomStores.getIamPolicy
datasets.dicomStores.import
  • リクエストされた DICOM ストアに対する healthcare.dicomStores.import
  • プロジェクトの Cloud Healthcare Service Agent サービス アカウントに付与された roles/storage.objectViewer。手順については、Cloud Storage からのデータのインポートをご覧ください。
datasets.dicomStores.list 親データセットに対する healthcare.dicomStores.list
datasets.dicomStores.patch リクエストされた DICOM ストアに対する healthcare.dicomStores.update
datasets.dicomStores.searchForInstances リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.searchForSeries リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.searchForStudies リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.setIamPolicy リクエストされた DICOM ストアに対する healthcare.dicomStores.setIamPolicy
datasets.dicomStores.storeInstances リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebWrite
datasets.dicomStores.studies.delete リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebDelete
datasets.dicomStores.studies.retrieveMetadata リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.retrieveStudy リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.searchForInstances リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.searchForSeries リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.storeInstances リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebWrite
datasets.dicomStores.studies.series.delete リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebDelete
datasets.dicomStores.studies.series.retrieveMetadata リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.series.retrieveSeries リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.series.searchForInstances リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.series.instances.delete リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebDelete
datasets.dicomStores.studies.series.instances.retrieveInstance リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.series.instances.retrieveMetadata リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.series.instances.retrieveRendered リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.series.instances.frames.retrieveFrames リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
datasets.dicomStores.studies.series.instances.frames.retrieveRendered リクエストされた DICOM ストアに対する healthcare.dicomStores.dicomWebRead
FHIR ストアメソッド 必要な権限
datasets.fhirStores.create 親データセットに対する healthcare.fhirStores.create
datasets.fhirStores.deidentify
  • ソース FHIR ストアに対する healthcare.fhirStores.deidentify
  • 宛先の FHIR ストアに対する healthcare.fhirResources.update
datasets.fhirStores.delete リクエストされた FHIR ストアに対する healthcare.fhirStores.delete
datasets.fhirStores.export
  • リクエストされた FHIR ストアに対する healthcare.fhirStores.export
  • Cloud Storage にエクスポートする場合: プロジェクトの Cloud Healthcare Service Agent サービス アカウントに付与された storage.objects.createstorage.objects.deletestorage.objects.list。手順については、Cloud Storage への FHIR リソースのエクスポートをご覧ください。
  • BigQuery にエクスポートする場合: プロジェクトの Cloud Healthcare Service Agent サービス アカウントに付与された roles/bigquery.dataEditorroles/bigquery.jobUser。手順については、FHIR ストアの BigQuery 権限をご覧ください。
datasets.fhirStores.get リクエストされた FHIR ストアに対する healthcare.fhirStores.get
datasets.fhirStores.getIamPolicy リクエストされた FHIR ストアに対する healthcare.fhirStores.getIamPolicy
datasets.fhirStores.import
  • リクエストされた FHIR ストアに対する healthcare.fhirStores.import
  • プロジェクトの Cloud Healthcare Service Agent サービス アカウントに付与された storage.objects.getstorage.objects.list。手順については、Cloud Storage から FHIR リソースのインポートをご覧ください。
datasets.fhirStores.list 親データセットに対する healthcare.fhirStores.list
datasets.fhirStores.patch リクエストされた FHIR ストアに対する healthcare.fhirStores.update
datasets.fhirStores.setIamPolicy リクエストされた FHIR ストアに対する healthcare.fhirStores.setIamPolicy
datasets.fhirStores.fhir.Observation-lastn 親 FHIR ストアに対する healthcare.fhirStores.searchResources
datasets.fhirStores.fhir.Patient-everything 返された各リソースに対する healthcare.fhirResources.get
datasets.fhirStores.fhir.Resource-purge リクエストされた FHIR ストアリソースに対する healthcare.fhirResources.purge
datasets.fhirStores.fhir.capabilities リクエストされた FHIR ストアに対する healthcare.fhirStores.get
datasets.fhirStores.fhir.conditionalDelete
  • 親 FHIR ストアに対する healthcare.fhirStores.searchResources
  • リクエストされた FHIR ストアリソースに対する healthcare.fhirResources.delete
datasets.fhirStores.fhir.conditionalPatch
  • 親 FHIR ストアに対する healthcare.fhirStores.searchResources
  • リクエストされた FHIR ストアリソースに対する healthcare.fhirResources.patch
datasets.fhirStores.fhir.conditionalUpdate
  • 親 FHIR ストアに対する healthcare.fhirStores.searchResources
  • リクエストされた FHIR ストアリソースに対する healthcare.fhirResources.update
datasets.fhirStores.fhir.create
  • 条件付き作成インタラクションの場合: 親 FHIR ストアに対する healthcare.fhirResources.createhealthcare.fhirStores.searchResources
  • インタラクションの作成: 親 FHIR ストアに対する healthcare.fhirResources.create
datasets.fhirStores.fhir.delete リクエストされた FHIR ストアリソースに対する healthcare.fhirResources.delete
datasets.fhirStores.fhir.executeBundle リクエストされた FHIR ストアに対する healthcare.fhirResources.executeBundle、およびバンドル内の個別のオペレーションに対応する追加の権限(healthcare.fhirResources.createhealthcare.fhirResources.update など)。API 呼び出し元に healthcare.fhirResources.create 権限があり、healthcare.fhirResources.update 権限がない場合、呼び出し元は healthcare.fhirResources.create オペレーションを含むバンドルのみを実行できます。
datasets.fhirStores.fhir.history リクエストされた FHIR ストアリソースとその各バージョンに対する healthcare.fhirResources.get
datasets.fhirStores.fhir.patch リクエストされた FHIR ストアリソースに対する healthcare.fhirResources.patch
datasets.fhirStores.fhir.read リクエストされた FHIR ストアリソースに対する healthcare.fhirResources.get
datasets.fhirStores.fhir.search 親 FHIR ストアに対する healthcare.fhirStores.searchResources
datasets.fhirStores.fhir.update リクエストされた FHIR ストアリソースに対する healthcare.fhirResources.update
datasets.fhirStores.fhir.vread リクエストされた FHIR ストアリソースのバージョンに対する healthcare.fhirResources.get
HL7v2 ストアメソッド 必要な権限
datasets.hl7V2Stores.create 親データセットに対する healthcare.hl7V2Stores.create
datasets.hl7V2Stores.delete リクエストされた HL7v2 ストアに対する healthcare.hl7V2Stores.delete
datasets.hl7V2Stores.get リクエストされた HL7v2 ストアに対する healthcare.hl7V2Stores.get
datasets.hl7V2Stores.list 親データセットに対する healthcare.hl7V2Stores.list
datasets.hl7V2Stores.patch リクエストされた HL7v2 ストアに対する healthcare.hl7V2Stores.update
datasets.hl7V2Stores.getIamPolicy リクエストされた HL7v2 ストアに対する healthcare.hl7V2Stores.getIamPolicy
datasets.hl7V2Stores.setIamPolicy リクエストされた HL7v2 ストアに対する healthcare.hl7V2Stores.setIamPolicy
datasets.hl7V2Stores.messages.create 親 HL7v2 ストアに対する healthcare.hl7V2Messages.create
datasets.hl7V2Stores.messages.delete リクエストされた HL7v2 ストア メッセージに対する healthcare.hl7V2Messages.delete
datasets.hl7V2Stores.messages.get リクエストされた HL7v2 ストア メッセージに対する healthcare.hl7V2Messages.get
datasets.hl7V2Stores.messages.ingest リクエストされた HL7v2 ストア メッセージに対する healthcare.hl7V2Messages.ingest
datasets.hl7V2Stores.messages.list 親 HL7v2 ストアに対する healthcare.hl7V2Messages.list
datasets.hl7V2Stores.messages.patch リクエストされた HL7v2 ストア メッセージに対する healthcare.hl7V2Messages.update
オペレーション メソッド 必要な権限
datasets.operations.get リクエストされたオペレーションに対する healthcare.operations.get
datasets.operations.list リクエストされたオペレーションに対する healthcare.operations.list
datasets.operations.cancel リクエストされたオペレーションに対する healthcare.operations.cancel

ロール

次の表に、各ロールに関連付けられた権限を含む Cloud Healthcare API の Cloud IAM のロールを示します。

--- | --- roles/healthcare.annotationStoreViewer | すべての roles/healthcare.datasetViewer 権限、および

  • healthcare.annotationStores.get
  • healthcare.annotationStores.list
roles/healthcare.annotationStoreAdmin | すべての roles/healthcare.annotationStoreViewer 権限、および
  • healthcare.annotationStores.create
  • healthcare.annotationStores.delete
  • healthcare.annotationStores.update
roles/healthcare.annotationReader | すべての roles/healthcare.annotationStoreViewer 権限、および
  • healthcare.annotations.get
  • healthcare.annotations.list
roles/healthcare.annotationEditor | すべての roles/healthcare.annotationReader 権限、および
  • healthcare.annotations.create
  • healthcare.annotations.delete
  • healthcare.annotations.update

データセットのロール 権限
roles/healthcare.datasetViewer
  • healthcare.datasets.get
  • healthcare.datasets.list
  • healthcare.operations.get
roles/healthcare.datasetAdmin すべての roles/healthcare.datasetViewer 権限、および
  • healthcare.datasets.create
  • healthcare.datasets.delete
  • healthcare.datasets.update
  • healthcare.datasets.getIamPolicy
  • healthcare.datasets.setIamPolicy
  • healthcare.datasets.deidentify
  • healthcare.operations.cancel
  • healthcare.operations.list
DICOM ストアのロール 権限
roles/healthcare.dicomStoreViewer すべての roles/healthcare.datasetViewer 権限、および
  • healthcare.dicomStores.get
  • healthcare.dicomStores.list
roles/healthcare.dicomStoreAdmin すべての roles/healthcare.dicomStoreViewer 権限、および
  • healthcare.dicomStores.create
  • healthcare.dicomStores.deidentify
  • healthcare.dicomStores.delete
  • healthcare.dicomStores.dicomWebDelete
  • healthcare.dicomStores.getIamPolicy
  • healthcare.dicomStores.setIamPolicy
  • healthcare.dicomStores.update
  • healthcare.operations.cancel
roles/healthcare.dicomViewer すべての roles/healthcare.dicomStoreViewer 権限、および
  • healthcare.dicomStores.export
  • healthcare.dicomStores.dicomWebRead
roles/healthcare.dicomEditor すべての roles/healthcare.dicomViewer 権限、および
  • healthcare.dicomStores.import
  • healthcare.dicomStores.dicomWebDelete
  • healthcare.dicomStores.dicomWebWrite
  • healthcare.operations.cancel
FHIR ストアのロール 権限
roles/healthcare.fhirStoreViewer すべての roles/healthcare.datasetViewer 権限、および
  • healthcare.fhirStores.get
  • healthcare.fhirStores.list
roles/healthcare.fhirStoreAdmin すべての roles/healthcare.fhirStoreViewer 権限、および
  • healthcare.fhirStores.create
  • healthcare.fhirStores.deidentify
  • healthcare.fhirStores.delete
  • healthcare.fhirStores.update
  • healthcare.fhirStores.import
  • healthcare.fhirStores.export
  • healthcare.fhirResources.purge
  • healthcare.fhirStores.getIamPolicy
  • healthcare.fhirStores.setIamPolicy
  • healthcare.operations.cancel
roles/healthcare.fhirResourceReader すべての roles/healthcare.fhirStoreViewer 権限、および
  • healthcare.fhirResources.get
  • healthcare.fhirStores.searchResources
  • healthcare.fhirStores.executeBundle
roles/healthcare.fhirResourceEditor すべての roles/healthcare.fhirResourceReader 権限、および
  • healthcare.fhirResources.create
  • healthcare.fhirResources.delete
  • healthcare.fhirResources.patch
  • healthcare.fhirResources.update
  • healthcare.operations.cancel
HL7v2 ストアのロール 権限
roles/healthcare.hl7V2StoreViewer すべての roles/healthcare.datasetViewer 権限、および
  • healthcare.hl7V2Stores.get
  • healthcare.hl7V2Stores.list
roles/healthcare.hl7V2StoreAdmin すべての roles/healthcare.hl7V2StoreViewer 権限、および
  • healthcare.hl7V2Stores.create
  • healthcare.hl7V2Stores.update
  • healthcare.hl7V2Stores.delete
  • healthcare.hl7V2Stores.getIamPolicy
  • healthcare.hl7V2Stores.setIamPolicy
  • healthcare.operations.cancel
roles/healthcare.hl7V2Ingest すべての roles/healthcare.hl7V2StoreViewer 権限、および
  • healthcare.hl7V2messages.ingest
roles/healthcare.hl7V2Consumer すべての roles/healthcare.hl7V2StoreViewer 権限、および
  • healthcare.hl7V2messages.get
  • healthcare.hl7V2messages.list
  • healthcare.hl7V2messages.create
  • healthcare.hl7V2messages.update
roles/healthcare.hl7V2Editor すべての roles/healthcare.hl7V2StoreViewer 権限、および
  • healthcare.hl7V2messages.get
  • healthcare.hl7V2messages.list
  • healthcare.hl7V2messages.delete
  • healthcare.hl7V2messages.update
  • healthcare.hl7V2messages.create
  • healthcare.hl7V2Messages.ingest
  • healthcare.operations.cancel

ロール roles/ownerroles/editorroles/viewer には、他の Google Cloud Platform サービスの権限も含まれます。ロールの詳細については、ロールについてをご覧ください。

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

Cloud Healthcare サービス エージェントは、Cloud Healthcare API が Google Cloud の他のリソースとやり取りするために使用するプロジェクト内の共有サービス アカウントです。

たとえば、このサービス エージェントは Cloud Storage バケットの読み取りと書き込み、BigQuery への書き込み、Cloud Healthcare API からのメッセージの Pub/Sub に対するパブリッシュに使用されます。

上記のアクションのいずれかを実行する場合は、Cloud Healthcare サービス エージェントに対して、関連する Cloud Storage バケット、BigQuery データセット、Pub/Sub トピックへのアクセス権を付与する必要があります。

プロジェクトの権限モデルを作成する際、以下のロールのいずれかを付与すると、ユーザーは Cloud Healthcare サービス エージェントとして実行されるオペレーションを呼び出し、エージェントがアクセス権を持つ以下の対象にアクセスできます。

  • roles/healthcare.hl7V2StoreAdmin
  • roles/healthcare.fhirStoreAdmin
  • roles/healthcare.dicomStoreEditor
  • roles/healthcare.dicomStoreViewer

同様に、カスタムのロールに次の権限を割り当てた場合も、ユーザーは Cloud Healthcare サービス エージェントとして実行されるオペレーションを呼び出すことができます。

  • healthcare.dicomStores.create
  • healthcare.dicomStores.update
  • healthcare.dicomStores.import
  • healthcare.dicomStores.export
  • healthcare.fhirStores.create
  • healthcare.fhirStores.update
  • healthcare.fhirStores.import
  • healthcare.fhirStores.export
  • healthcare.hl7V2Stores.create
  • healthcare.hl7V2Stores.update

たとえば、インポート権限を持つユーザーは、Cloud Healthcare サービス エージェントがすでに読み取りアクセス権を持っている Cloud Storage バケットにアクセスする Cloud Healthcare サービス エージェントとして機能するオペレーションを実行できます。 同様に、エクスポート権限を持つユーザーは、サービス エージェントがすでに書き込み権限を持っているバケットにアクセスする Cloud Healthcare サービス エージェントとして機能するオペレーションを実行できます。

同様に、データストアの作成権限または更新権限を持つユーザーは、データストアの変更時に Cloud Healthcare サービス エージェントから送信される Pub/Sub 通知ターゲットまたは BigQuery ストリーミングの宛先を構成できます。

複数のプロジェクトを活用して、Cloud Healthcare サービス エージェントに付与された権限をさらに分離することをおすすめします。