Overview
The Cloud Healthcare API uses Identity and Access Management (IAM) for access control.
In the Cloud Healthcare API, access control can be configured at the project, dataset, or data store level. For example, you can grant access to all datasets within a project to a group of developers. To learn how to set up and use IAM with the Cloud Healthcare API, see Controlling access and Controlling access to other products .
For a detailed description of IAM and its features, see the IAM documentation . In particular, see the section on managing IAM policies .
Every Cloud Healthcare API method requires the caller to have the necessary permissions. See Permissions and Roles for more information.
Permissions
The following tables list the IAM permissions that are associated with the
Cloud Healthcare API. Method names are shortened in the table;
each method's full name begins with projects.locations.
.
Consent store methods
Consent store method | Required permissions |
---|---|
datasets.consentStores.checkDataAccess
|
healthcare.consentStores.checkDataAccess
on the requested consent store. |
datasets.consentStores.create
|
healthcare.consentStores.create
on the parent dataset. |
datasets.consentStores.delete
|
healthcare.consentStores.delete
on the requested consent store. |
datasets.consentStores.evaluateUserConsents
|
healthcare.consentStores.evaluateUserConsents
on the requested consent store. |
datasets.consentStores.get
|
healthcare.consentStores.get
on the requested consent store. |
datasets.consentStores.getIamPolicy
|
healthcare.consentStores.getIamPolicy
on the requested consent store. |
datasets.consentStores.list
|
healthcare.consentStores.list
on the parent dataset. |
datasets.consentStores.patch
|
healthcare.consentStores.update
on the requested consent store. |
datasets.consentStores.queryAccessibleData
|
healthcare.consentStores.queryAccessibleData
on the requested consent store. |
datasets.consentStores.setIamPolicy
|
healthcare.consentStores.setIamPolicy
on the requested consent store. |
datasets.consentStores.attributeDefinitions.create
|
healthcare.attributeDefinitions.create
on the parent consent store. |
datasets.consentStores.attributeDefinitions.delete
|
healthcare.attributeDefinitions.delete
on the requested attribute definition resource. |
datasets.consentStores.attributeDefinitions.get
|
healthcare.attributeDefinitions.get
on the requested attribute definition resource. |
datasets.consentStores.attributeDefinitions.list
|
healthcare.attributeDefinitions.list
on the parent consent store. |
datasets.consentStores.attributeDefinitions.patch
|
healthcare.attributeDefinitions.update
on the requested attribute definition resource. |
datasets.consentStores.consentArtifacts.create
|
healthcare.consentArtifacts.create
on the parent consent store. |
datasets.consentStores.consentArtifacts.delete
|
healthcare.consentArtifacts.delete
on the requested consent artifact resource. |
datasets.consentStores.consentArtifacts.get
|
healthcare.consentArtifacts.get
on the requested consent artifact resource. |
datasets.consentStores.consentArtifacts.list
|
healthcare.consentArtifacts.list
on the parent consent store. |
datasets.consentStores.consents.create
|
healthcare.consents.create
on the parent consent store. |
datasets.consentStores.consents.delete
|
healthcare.consents.delete
on the requested consent resource. |
datasets.consentStores.consents.get
|
healthcare.consents.get
on the requested consent resource. |
datasets.consentStores.consents.list
|
healthcare.consents.list
on the parent consent store. |
datasets.consentStores.consents.patch
|
healthcare.consents.update
on the requested consent resource. |
datasets.consentStores.consents.revoke
|
healthcare.consents.revoke
on the requested consent resource. |
datasets.consentStores.userDataMappings.archive
|
healthcare.userDataMappings.archive
on the requested user data mapping resource. |
datasets.consentStores.userDataMappings.create
|
healthcare.userDataMappings.create
on the parent consent store. |
datasets.consentStores.userDataMappings.delete
|
healthcare.userDataMappings.delete
on the requested user data mapping resource. |
datasets.consentStores.userDataMappings.get
|
healthcare.userDataMappings.get
on the requested user data mapping resource. |
datasets.consentStores.userDataMappings.list
|
healthcare.userDataMappings.list
on the parent consent store. |
datasets.consentStores.userDataMappings.patch
|
healthcare.userDataMappings.update
on the requested user data mapping resource. |
Dataset methods
datasets.create
healthcare.datasets.create
on the parent Google Cloud project.datasets.deidentify
-
healthcare.datasets.deidentify
on the source dataset. -
healthcare.datasets.create
on the Google Cloud project containing the destination dataset.
datasets.delete
healthcare.datasets.delete
on the requested dataset.datasets.get
healthcare.datasets.get
on the requested dataset.datasets.getIamPolicy
healthcare.datasets.getIamPolicy
on the requested dataset.datasets.list
healthcare.datasets.list
on the parent Google Cloud project.datasets.patch
healthcare.datasets.update
on the requested dataset.datasets.setIAMPolicy
healthcare.datasets.setIamPolicy
on the requested dataset.DICOM store methods
datasets.dicomStores.create
healthcare.dicomStores.create
on the parent dataset.datasets.dicomStores.deidentify
-
healthcare.dicomStores.deidentify
on the source DICOM store. -
healthcare.dicomStores.dicomWebWrite
on the destination DICOM store.
datasets.dicomStores.delete
healthcare.dicomStores.delete
on the requested DICOM store.datasets.dicomStores.export
-
healthcare.dicomStores.export
on the requested DICOM store. - When exporting to Cloud Storage:
roles/storage.objectAdmin
granted to the project's Cloud Healthcare Service Agentservice account. See Exporting data to Cloud Storage for instructions. - When exporting to BigQuery:
roles/bigquery.dataEditor
androles/bigquery.jobUser
granted to the project's Cloud Healthcare Service Agentservice account. See DICOM store BigQuery permissions for instructions.
datasets.dicomStores.get
healthcare.dicomStores.get
on the requested DICOM store.datasets.dicomStores.getIamPolicy
healthcare.dicomStores.getIamPolicy
on the requested DICOM store.datasets.dicomStores.import
-
healthcare.dicomStores.import
on the requested DICOM store. -
roles/storage.objectViewer
granted to the project's Cloud Healthcare Service Agentservice account. See Importing data from Cloud Storage for instructions.
datasets.dicomStores.list
healthcare.dicomStores.list
on the parent dataset.datasets.dicomStores.patch
healthcare.dicomStores.update
on the requested DICOM store.datasets.dicomStores.searchForInstances
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.searchForSeries
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.searchForStudies
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.setIamPolicy
healthcare.dicomStores.setIamPolicy
on the requested DICOM store.datasets.dicomStores.storeInstances
healthcare.dicomStores.dicomWebWrite
on the requested DICOM store.datasets.dicomStores.studies.delete
healthcare.dicomStores.dicomWebDelete
on the requested DICOM store.datasets.dicomStores.studies.retrieveMetadata
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.retrieveStudy
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.searchForInstances
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.searchForSeries
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.storeInstances
healthcare.dicomStores.dicomWebWrite
on the requested DICOM store.datasets.dicomStores.studies.updateInstances
healthcare.dicomStores.dicomWebUpdate
on the requested DICOM store.datasets.dicomStores.studies.updateMetadata
healthcare.dicomStores.dicomWebUpdate
on the requested DICOM store.datasets.dicomStores.studies.series.delete
healthcare.dicomStores.dicomWebDelete
on the requested DICOM store.datasets.dicomStores.studies.series.retrieveMetadata
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.series.retrieveSeries
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.series.searchForInstances
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.series.updateMetadata
healthcare.dicomStores.dicomWebUpdate
on the requested DICOM store.datasets.dicomStores.studies.series.instances.delete
healthcare.dicomStores.dicomWebDelete
on the requested DICOM store.datasets.dicomStores.studies.series.instances.retrieveInstance
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.series.instances.retrieveMetadata
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.series.instances.retrieveRendered
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.series.instances.updateMetadata
healthcare.dicomStores.dicomWebUpdate
on the requested DICOM store.datasets.dicomStores.studies.series.instances.frames.retrieveFrames
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.series.instances.frames.retrieveRendered
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.datasets.dicomStores.studies.series.instances.bulkdata.retrieveBulkdata
healthcare.dicomStores.dicomWebRead
on the requested DICOM store.FHIR store methods
datasets.fhirStores.applyConsents
healthcare.fhirStores.applyConsents
on the requested FHIR store resource.datasets.fhirStores.applyAdminConsents
healthcare.fhirStores.applyConsents
on the requested FHIR store resource.datasets.fhirStores.configureSearch
healthcare.fhirStores.configureSearch
on the requested FHIR store.datasets.fhirStores.create
healthcare.fhirStores.create
on the parent dataset.datasets.fhirStores.deidentify
-
healthcare.fhirStores.deidentify
on the source FHIR store. -
healthcare.fhirResources.update
on the destination FHIR store.
datasets.fhirStores.delete
healthcare.fhirStores.delete
on the requested FHIR store.datasets.fhirStores.explainDataAccess
healthcare.fhirStores.explainDataAccess
on the requested FHIR store resource.datasets.fhirStores.export
-
healthcare.fhirStores.export
on the requested FHIR store. - When exporting to Cloud Storage:
storage.objects.create
,storage.objects.delete
, andstorage.objects.list
granted to the project's Cloud Healthcare Service Agentservice account. See Exporting FHIR resources to Cloud Storage for instructions. - When exporting to BigQuery:
roles/bigquery.dataEditor
androles/bigquery.jobUser
granted to the project's Cloud Healthcare Service Agentservice account. See FHIR store BigQuery permissions for instructions.
datasets.fhirStores.get
healthcare.fhirStores.get
on the requested FHIR store.datasets.fhirStores.getFHIRStoreMetrics
healthcare.fhirStores.get
on the requested FHIR store.datasets.fhirStores.getIamPolicy
healthcare.fhirStores.getIamPolicy
on the requested FHIR store.datasets.fhirStores.import
-
healthcare.fhirStores.import
on the requested FHIR store. -
storage.objects.get
andstorage.objects.list
granted to the project's Cloud Healthcare Service Agentservice account. See Importing FHIR resources from Cloud Storage for instructions.
datasets.fhirStores.list
healthcare.fhirStores.list
on the parent dataset.datasets.fhirStores.patch
healthcare.fhirStores.update
on the requested FHIR store.datasets.fhirStores.rollback
healthcare.fhirStores.rollback
on the requested FHIR store.datasets.fhirStores.setIamPolicy
healthcare.fhirStores.setIamPolicy
on the requested FHIR store.datasets.fhirStores.fhir.Encounter-everything
healthcare.fhirResources.get
on each resource returned.datasets.fhirStores.fhir.Observation-lastn
healthcare.fhirStores.searchResources
on the parent FHIR store.datasets.fhirStores.fhir.Patient-everything
healthcare.fhirResources.get
on each resource returned.datasets.fhirStores.fhir.Resource-purge
healthcare.fhirResources.purge
on the requested FHIR store resource.datasets.fhirStores.fhir.capabilities
healthcare.fhirStores.get
on the requested FHIR store.datasets.fhirStores.fhir.conditionalDelete
-
healthcare.fhirStores.searchResources
on the parent FHIR store. -
healthcare.fhirResources.delete
on the requested FHIR store resource.
datasets.fhirStores.fhir.conditionalPatch
-
healthcare.fhirStores.searchResources
on the parent FHIR store. -
healthcare.fhirResources.patch
on the requested FHIR store resource.
datasets.fhirStores.fhir.conditionalUpdate
-
healthcare.fhirStores.searchResources
on the parent FHIR store. -
healthcare.fhirResources.update
on the requested FHIR store resource.
datasets.fhirStores.fhir.create
- For conditional create interactions:
healthcare.fhirResources.create
andhealthcare.fhirStores.searchResources
on the parent FHIR store. - For create interactions:
healthcare.fhirResources.create
on the parent FHIR store.
datasets.fhirStores.fhir.delete
healthcare.fhirResources.delete
on the requested FHIR store resource.datasets.fhirStores.fhir.executeBundle
healthcare.fhirResources.executeBundle
on the requested FHIR store, and additional permissions (such as healthcare.fhirResources.create
and healthcare.fhirResources.update
) corresponding to individual operations within the bundle. If the API caller has healthcare.fhirResources.create
permissions but not healthcare.fhirResources.update
permissions, the caller can only execute bundles containing healthcare.fhirResources.create
operations.datasets.fhirStores.fhir.history
healthcare.fhirResources.get
on the requested FHIR store resource and each of its versions.datasets.fhirStores.fhir.patch
healthcare.fhirResources.patch
on the requested FHIR store resource.datasets.fhirStores.fhir.read
healthcare.fhirResources.get
on the requested FHIR store resource.datasets.fhirStores.fhir.search
healthcare.fhirStores.searchResources
on the parent FHIR store.datasets.fhirStores.fhir.update
healthcare.fhirResources.update
on the requested FHIR store resource.datasets.fhirStores.fhir.vread
healthcare.fhirResources.get
on the requested FHIR store resource version.datasets.fhirStores.fhir.Patient-consent-enforcement-status
healthcare.fhirResources.get
on the requested FHIR store patient resource.datasets.fhirStores.fhir.Consent-enforcement-status
healthcare.fhirResources.get
on the requested FHIR store consent resource.HL7v2 store methods
HL7v2 store method | Required permissions |
---|---|
datasets.hl7V2Stores.create
|
healthcare.hl7V2Stores.create
on the parent dataset. |
datasets.hl7V2Stores.delete
|
healthcare.hl7V2Stores.delete
on the requested HL7v2 store. |
datasets.hl7V2Stores.export
|
healthcare.hl7V2Stores.export
on the requested HL7v2 store. |
datasets.hl7V2Stores.get
|
healthcare.hl7V2Stores.get
on the requested HL7v2 store. |
datasets.hl7V2Stores.import
|
healthcare.hl7V2Stores.import
on the requested HL7v2 store. |
datasets.hl7V2Stores.list
|
healthcare.hl7V2Stores.list
on the parent dataset. |
datasets.hl7V2Stores.patch
|
healthcare.hl7V2Stores.update
on the requested HL7v2 store. |
datasets.hl7V2Stores.getIamPolicy
|
healthcare.hl7V2Stores.getIamPolicy
on the requested HL7v2 store. |
datasets.hl7V2Stores.setIamPolicy
|
healthcare.hl7V2Stores.setIamPolicy
on the requested HL7v2 store. |
datasets.hl7V2Stores.messages.create
|
healthcare.hl7V2Messages.create
on the parent HL7v2 store. |
datasets.hl7V2Stores.messages.delete
|
healthcare.hl7V2Messages.delete
on the requested HL7v2 store message. |
datasets.hl7V2Stores.messages.get
|
healthcare.hl7V2Messages.get
on the requested HL7v2 store message. |
datasets.hl7V2Stores.messages.ingest
|
healthcare.hl7V2Messages.ingest
on the requested HL7v2 store message. |
datasets.hl7V2Stores.messages.list
|
healthcare.hl7V2Messages.list
on the parent HL7v2 store. |
datasets.hl7V2Stores.messages.patch
|
healthcare.hl7V2Messages.update
on the requested HL7v2 store message. |
Location methods
Location method | Required permissions |
---|---|
locations.get
|
healthcare.locations.get
on the requested location. |
locations.list
|
healthcare.locations.list
on the parent Google Cloud project. |
Healthcare Natural Language API methods
Healthcare Natural Language API method | Required permissions |
---|---|
nlp.analyzeEntities
|
healthcare.nlpservice.analyzeEntities
|
Operation methods
Operation method | Required permission |
---|---|
datasets.operations.get
|
healthcare.operations.get
on the requested dataset. |
datasets.operations.list
|
healthcare.operations.list
on the requested dataset. |
datasets.operations.cancel
|
healthcare.operations.cancel
on the requested dataset. |
De-identify methods
De-identify method | Required permission |
---|---|
services.deidentify.deidentifyDicomInstance
|
healthcare.deidentify.run
|
services.deidentify.deidentifyFhirResource
|
healthcare.deidentify.run
|
Roles
The following tables list the Cloud Healthcare API IAM
roles, including the permissions associated with each role. The roles roles/owner
, roles/editor
, and roles/viewer
include
permissions for other Google Cloud services. For more information
about roles, see Understanding roles
.
Consent store roles
Healthcare Consent Store Viewer
( roles/
)
List Consent Stores in a dataset.
Healthcare Consent Store Administrator
( roles/
)
Administer Consent stores.
Consents roles
Healthcare Attribute Definition Reader
( roles/
)
Read AttributeDefinition objects in a consent store.
Healthcare Attribute Definition Editor
( roles/
)
Edit AttributeDefinition objects.
Healthcare Consent Artifact Reader
( roles/
)
Read ConsentArtifact objects in a consent store.
Healthcare Consent Artifact Editor
( roles/
)
Edit ConsentArtifact objects.
Healthcare Consent Artifact Administrator
( roles/
)
Administer ConsentArtifact objects.
Healthcare Consent Reader
( roles/
)
Read Consent objects in a consent store.
Healthcare Consent Editor
( roles/
)
Edit Consent objects.
Healthcare User Data Mapping Reader
( roles/
)
Read UserDataMapping objects in a consent store.
Healthcare User Data Mapping Editor
( roles/
)
Edit UserDataMapping objects.
Datasets roles
Healthcare Dataset Viewer
( roles/
)
List the Healthcare Datasets in a project.
Healthcare Dataset Administrator
( roles/
)
Administer Healthcare Datasets.
DICOM store roles
Healthcare DICOM Store Viewer
( roles/
)
List DICOM Stores in a dataset.
Healthcare DICOM Store Administrator
( roles/
)
Administer DICOM stores.
Healthcare DICOM Viewer
( roles/
)
Retrieve DICOM images from a DICOM store.
Healthcare DICOM Editor
( roles/
)
Edit DICOM images individually and in bulk.
FHIR store roles
Healthcare FHIR Store Viewer
( roles/
)
List FHIR Stores in a dataset.
Healthcare FHIR Store Administrator
( roles/
)
Administer FHIR resource stores.
Healthcare FHIR Resource Reader
( roles/
)
Read and search FHIR resources.
Healthcare FHIR Resource Editor
( roles/
)
Create, delete, update, read and search FHIR resources.
HL7v2 store roles
Healthcare HL7v2 Store Viewer
( roles/
)
View HL7v2 Stores in a dataset.
Healthcare HL7v2 Store Administrator
( roles/
)
Administer HL7v2 Stores.
Healthcare HL7v2 Message Ingest
( roles/
)
Ingest HL7v2 messages received from a source network.
Healthcare HL7v2 Message Consumer
( roles/
)
List and read HL7v2 messages, update message labels, and publish new messages.
Healthcare HL7v2 Message Editor
( roles/
)
Read, write, and delete access to HL7v2 messages.
Healthcare Natural Language API roles
Healthcare NLP Service Viewer Beta
( roles/
)
Extract and analyze medical entities from a given text.
Cloud Healthcare Service Agent
The Cloud Healthcare Service Agentis a shared service account in your project that Cloud Healthcare API uses to interact with other resources in Google Cloud.
For example, this service agent is used to read and write to Cloud Storage buckets, write to BigQuery, and to publish messages to Pub/Sub from the Cloud Healthcare API.
To execute any of the preceding actions, you must give the Cloud Healthcare Service Agentaccess to the relevant Cloud Storage bucket, BigQuery dataset, or Pub/Sub topic.
As you create a permission model for your project, remember that granting any of the roles listed below allows the user to invoke operations that run as the Cloud Healthcare Service Agentand have access to any data that the agent has access to:
-
roles/healthcare.consentStoreAdmin
-
roles/healthcare.consentStoreViewer
-
roles/healthcare.dicomStoreEditor
-
roles/healthcare.dicomStoreViewer
-
roles/healthcare.fhirStoreAdmin
-
roles/healthcare.hl7V2StoreAdmin
Similarly, assigning the following permissions to custom roles would also allow the user to invoke operations that will run as the Cloud Healthcare Service Agent:
-
healthcare.consentStores.queryAccessibleData
-
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
For example:
- If a user has any import permissions, then the user can run operations that act as the Cloud Healthcare Service Agentif those operations access any Cloud Storage buckets that the Cloud Healthcare Service Agenthas read access to.
- If a user has any export permissions, then the user can run operations that act as the Cloud Healthcare Service Agentif those operations access any bucket that the service agent has write access to.
- A user who has create or update data store permissions has the ability to configure Pub/Sub notification targets or BigQuery streaming destinations that are sent by the Cloud Healthcare Service Agentwhen changes are made to the data store.
As a best practice, leverage multiple projects to further isolate the permissions given to the Cloud Healthcare Service Agent.