Control de acceso

Resumen

La API de Cloud Healthcare usa Cloud Identity and Access Management (Cloud IAM) para el control de acceso.

En la API de Cloud Healthcare, el control de acceso se puede configurar a nivel de proyecto, de conjunto de datos o de almacén de datos. Por ejemplo, puedes otorgar acceso a todos los conjuntos de datos dentro de un proyecto a un grupo de desarrolladores. Para aprender cómo configurar y usar Cloud IAM con la API de Cloud Healthcare, consulta Controla el acceso y Controla el acceso a otros productos.

Para obtener una descripción detallada de IAM y sus características, consulta la documentación de Cloud IAM. En particular, consulta la sección sobre la administración de políticas de Cloud IAM.

Cada método de la API de Cloud Healthcare requiere que el emisor tenga los permisos necesarios. Consulta Permisos y Funciones para obtener más información.

Permisos

En esta sección, se resumen los permisos de la API de Cloud Healthcare que admite Cloud IAM.

Permisos necesarios

En las siguientes tablas, se enumeran los permisos de IAM asociados con la API de Cloud Healthcare. Los nombres de los métodos se acortan en la tabla. El nombre completo de cada método comienza con projects.locations.

Método de los conjuntos de datos Permisos necesarios
datasets.create healthcare.datasets.create en el proyecto superior de Google Cloud.
datasets.deidentify
  • healthcare.datasets.deidentify en el conjunto de datos de origen.
  • healthcare.datasets.create en el proyecto de Google Cloud que contiene el conjunto de datos de destino.
datasets.delete healthcare.datasets.delete en el conjunto de datos solicitado.
datasets.get healthcare.datasets.get en el conjunto de datos solicitado.
datasets.getIamPolicy healthcare.datasets.getIamPolicy en el conjunto de datos solicitado.
datasets.list healthcare.datasets.list en el proyecto superior de Google Cloud.
datasets.patch healthcare.datasets.update en el conjunto de datos solicitado.
datasets.setIAMPolicy healthcare.datasets.setIamPolicy en el conjunto de datos solicitado.
Método de la tienda de DICOM Permisos necesarios
datasets.dicomStores.create healthcare.dicomStores.create en el conjunto de datos superior.
datasets.dicomStores.deidentify
  • healthcare.dicomStores.deidentify en la tienda de DICOM de origen.
  • healthcare.dicomStores.dicomWebWrite en la tienda de DICOM de destino.
datasets.dicomStores.delete healthcare.dicomStores.delete en la tienda de DICOM solicitada.
datasets.dicomStores.export
  • healthcare.dicomStores.export en la tienda de DICOM solicitada.
  • Cuando se exporta a Cloud Storage: se otorga roles/storage.objectAdmin a la cuenta de servicio del agente de servicios de Cloud Healthcare del proyecto. Consulta Exporta datos a Cloud Storage para obtener instrucciones.
  • Cuando se exporta a BigQuery: se otorgan roles/bigquery.dataEditor y roles/bigquery.jobUser a la cuenta de servicio del agente de servicios de Cloud Healthcare del proyecto. Consulta los permisos de BigQuery de la tienda de DICOM para obtener instrucciones.
datasets.dicomStores.get healthcare.dicomStores.get en la tienda de DICOM solicitada.
datasets.dicomStores.getIamPolicy healthcare.dicomStores.getIamPolicy en la tienda de DICOM solicitada.
datasets.dicomStores.import
  • healthcare.dicomStores.import en la tienda de DICOM solicitada.
  • roles/storage.objectViewer otorgado a la cuenta de servicio del agente de servicios de Cloud Healthcare del proyecto. Consulta Importa datos desde Cloud Storage para obtener instrucciones.
datasets.dicomStores.list healthcare.dicomStores.list en el conjunto de datos superior.
datasets.dicomStores.patch healthcare.dicomStores.update en la tienda de DICOM solicitada.
datasets.dicomStores.searchForInstances healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.searchForSeries healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.searchForStudies healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.setIamPolicy healthcare.dicomStores.setIamPolicy en la tienda de DICOM solicitada.
datasets.dicomStores.storeInstances healthcare.dicomStores.dicomWebWrite en la tienda de DICOM solicitada.
datasets.dicomStores.studies.delete healthcare.dicomStores.dicomWebDelete en la tienda de DICOM solicitada.
datasets.dicomStores.studies.retrieveMetadata healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.retrieveStudy healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.searchForInstances healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.searchForSeries healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.storeInstances healthcare.dicomStores.dicomWebWrite en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.delete healthcare.dicomStores.dicomWebDelete en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.retrieveMetadata healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.retrieveSeries healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.searchForInstances healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.instances.delete healthcare.dicomStores.dicomWebDelete en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.instances.retrieveInstance healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.instances.retrieveMetadata healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.instances.retrieveRendered healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.instances.frames.retrieveFrames healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
datasets.dicomStores.studies.series.instances.frames.retrieveRendered healthcare.dicomStores.dicomWebRead en la tienda de DICOM solicitada.
Método de la tienda de FHIR Permisos necesarios
datasets.fhirStores.create healthcare.fhirStores.create en el conjunto de datos superior.
datasets.fhirStores.deidentify
  • healthcare.fhirStores.deidentify en la tienda de FHIR de origen.
  • healthcare.fhirResources.update en la tienda de FHIR de destino.
datasets.fhirStores.delete healthcare.fhirStores.delete en la tienda de FHIR solicitada.
datasets.fhirStores.export
  • healthcare.fhirStores.export en la tienda de FHIR solicitada.
  • Cuando se exporta a Cloud Storage: storage.objects.create, storage.objects.delete y storage.objects.list se otorgan a la cuenta de servicio del agente de servicios de Cloud Healthcare del proyecto. Consulta Exporta recursos de FHIR a Cloud Storage para obtener instrucciones.
  • Cuando se exporta a BigQuery: se otorgan roles/bigquery.dataEditor y roles/bigquery.jobUser a la cuenta de servicio del agente de servicios de Cloud Healthcare del proyecto. Consulta los permisos de BigQuery de la tienda de FHIR para obtener instrucciones.
datasets.fhirStores.get healthcare.fhirStores.get en la tienda de FHIR solicitada.
datasets.fhirStores.getIamPolicy healthcare.fhirStores.getIamPolicy en la tienda de FHIR solicitada.
datasets.fhirStores.import
  • healthcare.fhirStores.import en la tienda de FHIR solicitada.
  • storage.objects.get y storage.objects.list otorgados a la cuenta de servicio del agente de servicios de Cloud Healthcare del proyecto. Consulta Importa recursos de FHIR desde Cloud Storage para obtener instrucciones.
datasets.fhirStores.list healthcare.fhirStores.list en el conjunto de datos superior.
datasets.fhirStores.patch healthcare.fhirStores.update en la tienda de FHIR solicitada.
datasets.fhirStores.setIamPolicy healthcare.fhirStores.setIamPolicy en la tienda de FHIR solicitada.
datasets.fhirStores.fhir.Observation-lastn healthcare.fhirStores.searchResources en la tienda de FHIR superior.
datasets.fhirStores.fhir.Patient-everything healthcare.fhirResources.get en cada recurso que se muestra.
datasets.fhirStores.fhir.Resource-purge healthcare.fhirResources.purge en el recurso de la tienda de FHIR solicitada.
datasets.fhirStores.fhir.capabilities healthcare.fhirStores.get en la tienda de FHIR solicitada.
datasets.fhirStores.fhir.conditionalDelete
  • healthcare.fhirStores.searchResources en la tienda de FHIR superior.
  • healthcare.fhirResources.delete en el recurso de la tienda de FHIR solicitada.
datasets.fhirStores.fhir.conditionalPatch
  • healthcare.fhirStores.searchResources en la tienda de FHIR superior.
  • healthcare.fhirResources.patch en el recurso de la tienda de FHIR solicitada.
datasets.fhirStores.fhir.conditionalUpdate
  • healthcare.fhirStores.searchResources en la tienda de FHIR superior.
  • healthcare.fhirResources.update en el recurso de la tienda de FHIR solicitada.
datasets.fhirStores.fhir.create
  • Para las interacciones de creación condicional: healthcare.fhirResources.create y healthcare.fhirStores.searchResources en la tienda de FHIR superior.
  • Para las interacciones de creación: healthcare.fhirResources.create en la tienda de FHIR superior.
datasets.fhirStores.fhir.delete healthcare.fhirResources.delete en el recurso de la tienda de FHIR solicitada.
datasets.fhirStores.fhir.executeBundle healthcare.fhirResources.executeBundle en al tienda de FHIR solicitada y permisos adicionales (como healthcare.fhirResources.create y healthcare.fhirResources.update) correspondientes a operaciones individuales dentro del paquete. Si el emisor de la API tiene permisos healthcare.fhirResources.create, pero no healthcare.fhirResources.update, solo puede ejecutar paquetes que contengan operaciones healthcare.fhirResources.create.
datasets.fhirStores.fhir.history healthcare.fhirResources.get en el recurso de la tienda de FHIR solicitada y en cada una de sus versiones.
datasets.fhirStores.fhir.patch healthcare.fhirResources.patch en el recurso de la tienda de FHIR solicitada.
datasets.fhirStores.fhir.read healthcare.fhirResources.get en el recurso de la tienda de FHIR solicitada.
datasets.fhirStores.fhir.search healthcare.fhirStores.searchResources en la tienda de FHIR superior.
datasets.fhirStores.fhir.update healthcare.fhirResources.update en el recurso de la tienda de FHIR solicitada.
datasets.fhirStores.fhir.vread healthcare.fhirResources.get en la versión del recurso de la tienda de FHIR solicitada.
Método de la tienda de HL7v2 Permisos necesarios
datasets.hl7V2Stores.create healthcare.hl7V2Stores.create en el conjunto de datos superior.
datasets.hl7V2Stores.delete healthcare.hl7V2Stores.delete en la tienda de HL7v2 solicitada
datasets.hl7V2Stores.get healthcare.hl7V2Stores.get en la tienda de HL7v2 solicitada
datasets.hl7V2Stores.list healthcare.hl7V2Stores.list en el conjunto de datos superior.
datasets.hl7V2Stores.patch healthcare.hl7V2Stores.update en la tienda de HL7v2 solicitada
datasets.hl7V2Stores.getIamPolicy healthcare.hl7V2Stores.getIamPolicy en la tienda de HL7v2 solicitada
datasets.hl7V2Stores.setIamPolicy healthcare.hl7V2Stores.setIamPolicy en la tienda de HL7v2 solicitada
datasets.hl7V2Stores.messages.create healthcare.hl7V2Messages.create en la tienda de HL7v2 superior.
datasets.hl7V2Stores.messages.delete healthcare.hl7V2Messages.delete en el mensaje de la tienda de HL7v2 solicitada.
datasets.hl7V2Stores.messages.get healthcare.hl7V2Messages.get en el mensaje de la tienda de HL7v2 solicitada.
datasets.hl7V2Stores.messages.ingest healthcare.hl7V2Messages.ingest en el mensaje de la tienda de HL7v2 solicitada.
datasets.hl7V2Stores.messages.list healthcare.hl7V2Messages.list en la tienda de HL7v2 superior.
datasets.hl7V2Stores.messages.patch healthcare.hl7V2Messages.update en el mensaje de la tienda de HL7v2 solicitada.
Método de operación Permiso requerido
datasets.operations.get healthcare.operations.get en la operación solicitada.
datasets.operations.list healthcare.operations.list en la operación solicitada.
datasets.operations.cancel healthcare.operations.cancel en la operación solicitada.

Funciones

En la siguiente tabla, se enumeran las funciones de Cloud IAM de la API de Cloud Healthcare, incluidos los permisos asociados con cada función:

Función de los conjuntos de datos Permisos
roles/healthcare.datasetViewer
  • healthcare.datasets.get
  • healthcare.datasets.list
  • healthcare.operations.get
roles/healthcare.datasetAdmin Todos los permisos roles/healthcare.datasetViewer y los siguientes:
  • healthcare.datasets.create
  • healthcare.datasets.delete
  • healthcare.datasets.update
  • healthcare.datasets.getIamPolicy
  • healthcare.datasets.setIamPolicy
  • healthcare.datasets.deidentify
  • healthcare.operations.cancel
  • healthcare.operations.list
Función de la tienda de DICOM Permisos
roles/healthcare.dicomStoreViewer Todos los permisos roles/healthcare.datasetViewer y los siguientes:
  • healthcare.dicomStores.get
  • healthcare.dicomStores.list
roles/healthcare.dicomStoreAdmin Todos los permisos roles/healthcare.dicomStoreViewer y los siguientes:
  • 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 Todos los permisos roles/healthcare.dicomStoreViewer y los siguientes:
  • healthcare.dicomStores.export
  • healthcare.dicomStores.dicomWebRead
roles/healthcare.dicomEditor Todos los permisos roles/healthcare.dicomViewer y los siguientes:
  • healthcare.dicomStores.import
  • healthcare.dicomStores.dicomWebDelete
  • healthcare.dicomStores.dicomWebWrite
  • healthcare.operations.cancel
Función de la tienda de FHIR Permisos
roles/healthcare.fhirStoreViewer Todos los permisos roles/healthcare.datasetViewer y los siguientes:
  • healthcare.fhirStores.get
  • healthcare.fhirStores.list
roles/healthcare.fhirStoreAdmin Todos los permisos roles/healthcare.fhirStoreViewer y los siguientes:
  • 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 Todos los permisos roles/healthcare.fhirStoreViewer y los siguientes:
  • healthcare.fhirResources.get
  • healthcare.fhirStores.searchResources
  • healthcare.fhirStores.executeBundle
roles/healthcare.fhirResourceEditor Todos los permisos roles/healthcare.fhirResourceReader y los siguientes:
  • healthcare.fhirResources.create
  • healthcare.fhirResources.delete
  • healthcare.fhirResources.patch
  • healthcare.fhirResources.update
  • healthcare.operations.cancel
Función de la tienda de HL7v2 Permisos
roles/healthcare.hl7V2StoreViewer Todos los permisos roles/healthcare.datasetViewer y los siguientes:
  • healthcare.hl7V2Stores.get
  • healthcare.hl7V2Stores.list
roles/healthcare.hl7V2StoreAdmin Todos los permisos roles/healthcare.hl7V2StoreViewer y los siguientes:
  • healthcare.hl7V2Stores.create
  • healthcare.hl7V2Stores.update
  • healthcare.hl7V2Stores.delete
  • healthcare.hl7V2Stores.getIamPolicy
  • healthcare.hl7V2Stores.setIamPolicy
  • healthcare.operations.cancel
roles/healthcare.hl7V2Ingest Todos los permisos roles/healthcare.hl7V2StoreViewer y los siguientes:
  • healthcare.hl7V2messages.ingest
roles/healthcare.hl7V2Consumer Todos los permisos roles/healthcare.hl7V2StoreViewer y los siguientes:
  • healthcare.hl7V2messages.get
  • healthcare.hl7V2messages.list
  • healthcare.hl7V2messages.create
  • healthcare.hl7V2messages.update
roles/healthcare.hl7V2Editor Todos los permisos roles/healthcare.hl7V2StoreViewer y los siguientes:
  • healthcare.hl7V2messages.get
  • healthcare.hl7V2messages.list
  • healthcare.hl7V2messages.delete
  • healthcare.hl7V2messages.update
  • healthcare.hl7V2messages.create
  • healthcare.hl7V2Messages.ingest
  • healthcare.operations.cancel

Ten en cuenta que las funciones roles/owner, roles/editor y roles/viewer también incluyen permisos para otros servicios de Google Cloud Platform. Para obtener más información sobre las funciones, consulta Información sobre las funciones.

Agente de servicios de Cloud Healthcare

El agente de servicios de Cloud Healthcare es una cuenta de servicio compartida en tu proyecto que la API de Cloud Healthcare usa para interactuar con otros recursos en Google Cloud.

Por ejemplo, este agente de servicios se usa para leer y escribir en depósitos de Cloud Storage, escribir en BigQuery o publicar mensajes en Pub/Sub desde la API de Cloud Healthcare.

Siempre que desees ejecutar cualquiera de las acciones anteriores, debes otorgarle al agente de servicios de Cloud Healthcare acceso al depósito de Cloud Storage, al conjunto de datos de BigQuery o al tema de Pub/Sub relevantes.

Cuando creas el modelo de permisos para tu proyecto, ten en cuenta que otorgar cualquiera de las funciones que se enumeran a continuación permite que el usuario invoque operaciones que se ejecutarán como el agente de servicios de Cloud Healthcare y tendrán acceso a los datos a los que el agente tiene acceso:

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

Del mismo modo, asignar los siguientes permisos a las funciones personalizadas también permitiría al usuario invocar operaciones que se ejecutarán como el agente de servicios de 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

Por ejemplo, una persona que tenga permisos de importación puede ejecutar operaciones que actúen como el agente de servicios de Cloud Healthcare que accede a cualquier depósito de Cloud Storage al cual el agente de servicios de Cloud Healthcare ya tenga acceso de lectura. De manera similar, cualquier persona que tenga permisos de exportación puede ejecutar operaciones que actúen como el agente de servicios de Cloud Healthcare que accede a cualquier depósito al cual el agente de servicio ya tenga acceso de escritura.

Del mismo modo, una persona que creó o actualizó los permisos del almacén de datos tiene la capacidad de configurar los destinos de notificación de Pub/Sub o los destinos de transmisión de BigQuery que envía el agente de servicios de Cloud Healthcare cuando se realizan cambios en el almacén de datos.

Como práctica recomendada, aprovecha varios proyectos para aislar aún más los permisos otorgados al agente de servicios de Cloud Healthcare.