액세스 제어

개요

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이 지원하는 Cloud Healthcare API 권한을 요약합니다.

필수 권한

다음 표는 Cloud Healthcare API와 연결된 IAM 권한을 나열합니다. 메소드 이름이 표에 단축됩니다. 각 메서드의 전체 이름은 projects.locations로 시작합니다.

데이터세트 메소드 필수 권한
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로 내보낼 때: roles/storage.objectAdmin는 프로젝트의 Cloud Healthcare 서비스 에이전트 서비스 계정에 부여됩니다. 자세한 안내는 Cloud Storage로 데이터 내보내기를 참조하세요.
  • BigQuery로 내보낼 때: roles/bigquery.dataEditorroles/bigquery.jobUser가 프로젝트의 Cloud Healthcare 서비스 에이전트 서비스 계정에 부여됩니다. 자세한 내용은 DICOM 스토어 BigQuery 권한을 참조하세요.
datasets.dicomStores.get 요청한 DICOM 저장소의 healthcare.dicomStores.get
datasets.dicomStores.getIamPolicy 요청한 DICOM 저장소의 healthcare.dicomStores.getIamPolicy
datasets.dicomStores.import
  • 요청한 DICOM 저장소의 healthcare.dicomStores.import
  • roles/storage.objectViewer가 프로젝트의 Cloud Healthcare 서비스 에이전트 서비스 계정에 부여됩니다. 자세한 안내는 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 서비스 에이전트 서비스 계정에 storage.objects.create, storage.objects.delete, storage.objects.list 권한이 부여됩니다. 자세한 내용은 Cloud Storage로 FHIR 리소스 내보내기를 참조하세요.
  • BigQuery로 내보낼 때: roles/bigquery.dataEditorroles/bigquery.jobUser가 프로젝트의 Cloud Healthcare 서비스 에이전트 서비스 계정에 부여됩니다. 자세한 내용은 FHIR 저장 BigQuery 권한을 참조하세요.
datasets.fhirStores.get 요청된 FHIR 저장소의 healthcare.fhirStores.get
datasets.fhirStores.getIamPolicy 요청한 FHIR 저장소의 healthcare.fhirStores.getIamPolicy
datasets.fhirStores.import
  • 요청한 FHIR 저장소의 healthcare.fhirStores.import
  • storage.objects.getstorage.objects.list는 프로젝트의 Cloud Healthcare 서비스 에이전트 서비스 계정에 부여됩니다. 자세한 내용은 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.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/owner, roles/editor, roles/viewer 역할에는 다른 Google Cloud Platform 서비스에 대한 권한도 포함됩니다. 역할에 대한 자세한 내용은 역할 이해하기를 참조하세요.

Cloud Healthcare 서비스 에이전트

Cloud Healthcare 서비스 에이전트는 Cloud Healthcare API가 Google Cloud의 다른 리소스와 상호 작용하는 데 사용하는 프로젝트의 공유 서비스 계정입니다.

예를 들어 이 서비스 에이전트는 Cloud Storage 버킷을 읽고 쓰고, Cloud Healthcare API에서 Pub/Sub에 메시지를 게시하는데 사용됩니다.

앞의 작업을 실행할 때마다 관련 Cloud Storage 버킷, BigQuery 데이터세트 또는 Pub/Sub 주제에 대한 Cloud Healthcare 서비스 에이전트 액세스 권한을 부여해야 합니다.

프로젝트에 대한 권한 모델을 만들 때 아래 나열된 역할 중 하나를 부여하면 사용자가 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 서비스 에이전트에 부여된 권한을 추가로 격리하는 것이 좋습니다.