Contrôle des accès

Aperçu

L'API Cloud Healthcare utilise Cloud Identity and Access Management (Cloud IAM) pour le contrôle des accès.

Dans l'API Cloud Healthcare, le contrôle des accès peut être configuré au niveau du projet, de l'ensemble de données ou du datastore. Par exemple, vous pouvez accorder à un groupe de développeurs l'accès à tous les ensembles de données d'un projet. Pour apprendre à configurer et à utiliser Cloud IAM avec l'API Cloud Healthcare, consultez les pages Contrôler les accès et Contrôler l'accès à d'autres produits.

Pour obtenir une description détaillée de Cloud IAM et de ses fonctionnalités, consultez la documentation de Cloud IAM, en particulier la section expliquant comment gérer les stratégies Cloud IAM.

Pour appeler une méthode de l'API Cloud Healthcare, l'utilisateur doit disposer des autorisations requises. Consultez les sections Autorisations et Rôles pour plus d'informations.

Permissions

Cette section récapitule les autorisations de l'API Cloud Healthcare disponibles dans Cloud IAM.

Autorisations requises

Les tableaux suivants répertorient les autorisations IAM associées à l'API Cloud Healthcare. Notez que les noms de méthodes sont raccourcis dans le tableau. Le nom complet de toutes les méthodes commence par projects.locations.

Méthode des ensembles de données Autorisations requises
datasets.create healthcare.datasets.create sur le projet Google Cloud parent.
datasets.deidentify
  • healthcare.datasets.deidentify sur l'ensemble de données source.
  • healthcare.datasets.create sur le projet Google Cloud contenant l'ensemble de données de destination.
datasets.delete healthcare.datasets.delete sur l'ensemble de données demandé.
datasets.get healthcare.datasets.get sur l'ensemble de données demandé.
datasets.getIamPolicy healthcare.datasets.getIamPolicy sur l'ensemble de données demandé.
datasets.list healthcare.datasets.list sur le projet Google Cloud parent.
datasets.patch healthcare.datasets.update sur l'ensemble de données demandé.
datasets.setIAMPolicy healthcare.datasets.setIamPolicy sur l'ensemble de données demandé.
Méthode du magasin DICOM Autorisations requises
datasets.dicomStores.create healthcare.dicomStores.create sur l'ensemble de données parent.
datasets.dicomStores.deidentify
  • healthcare.dicomStores.deidentify sur le datastore DICOM source.
  • healthcare.dicomStores.dicomWebWrite sur le datastore DICOM de destination.
datasets.dicomStores.delete healthcare.dicomStores.delete sur le datastore DICOM demandé.
datasets.dicomStores.export
  • healthcare.dicomStores.export sur le datastore DICOM demandé.
  • Lors de l'exportation vers Cloud Storage : autorisation roles/storage.objectAdmin accordée au compte de service Agent de service Cloud Healthcare du projet. Consultez la section Exporter des données vers Cloud Storage pour obtenir des instructions.
  • Lors de l'exportation vers BigQuery : autorisations roles/bigquery.dataEditor et roles/bigquery.jobUser accordées au compte de service Agent de service Cloud Healthcare du projet. Consultez les autorisations BigQuery pour les datastores DICOM pour obtenir des instructions.
datasets.dicomStores.get healthcare.dicomStores.get sur le datastore DICOM demandé.
datasets.dicomStores.getIamPolicy healthcare.dicomStores.getIamPolicy sur le datastore DICOM demandé.
datasets.dicomStores.import
  • healthcare.dicomStores.import sur le datastore DICOM demandé.
  • Autorisation roles/storage.objectViewer accordée au compte de service Agent de service Cloud Healthcare du projet. Consultez la section Importer des données à partir de Cloud Storage pour obtenir des instructions.
datasets.dicomStores.list healthcare.dicomStores.list sur l'ensemble de données parent.
datasets.dicomStores.patch healthcare.dicomStores.update sur le datastore DICOM demandé.
datasets.dicomStores.searchForInstances healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.searchForSeries healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.searchForStudies healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.setIamPolicy healthcare.dicomStores.setIamPolicy sur le datastore DICOM demandé.
datasets.dicomStores.storeInstances healthcare.dicomStores.dicomWebWrite sur le datastore DICOM demandé.
datasets.dicomStores.studies.delete healthcare.dicomStores.dicomWebDelete sur le datastore DICOM demandé.
datasets.dicomStores.studies.retrieveMetadata healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.retrieveStudy healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.searchForInstances healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.searchForSeries healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.storeInstances healthcare.dicomStores.dicomWebWrite sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.delete healthcare.dicomStores.dicomWebDelete sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.retrieveMetadata healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.retrieveSeries healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.searchForInstances healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.instances.delete healthcare.dicomStores.dicomWebDelete sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.instances.retrieveInstance healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.instances.retrieveMetadata healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.instances.retrieveRendered healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.instances.frames.retrieveFrames healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
datasets.dicomStores.studies.series.instances.frames.retrieveRendered healthcare.dicomStores.dicomWebRead sur le datastore DICOM demandé.
Méthode du magasin FHIR Autorisations requises
datasets.fhirStores.create healthcare.fhirStores.create sur l'ensemble de données parent.
datasets.fhirStores.deidentify
  • healthcare.fhirStores.deidentify sur le datastore FHIR source.
  • healthcare.fhirResources.update sur le datastore FHIR de destination.
datasets.fhirStores.delete healthcare.fhirStores.delete sur le datastore FHIR demandé.
datasets.fhirStores.export
  • healthcare.fhirStores.export sur le datastore FHIR demandé.
  • Lors de l'exportation vers Cloud Storage : autorisations storage.objects.create, storage.objects.delete et storage.objects.list accordées au compte de service Agent de service Cloud Healthcare du projet. Consultez la page Exporter des ressources FHIR vers Cloud Storage pour obtenir des instructions.
  • Lors de l'exportation vers BigQuery : autorisations roles/bigquery.dataEditor et roles/bigquery.jobUser accordées au compte de service Agent de service Cloud Healthcare du projet. Consultez la section Autorisations BigQuery pour les datastores FHIR pour obtenir des instructions.
datasets.fhirStores.get healthcare.fhirStores.get sur le datastore FHIR demandé.
datasets.fhirStores.getIamPolicy healthcare.fhirStores.getIamPolicy sur le datastore FHIR demandé.
datasets.fhirStores.import
  • healthcare.fhirStores.import sur le datastore FHIR demandé.
  • Autorisations storage.objects.get et storage.objects.list accordées au compte de service Agent de service Cloud Healthcare du projet. Consultez la section Importer des ressources FHIR à partir de Cloud Storage pour obtenir des instructions.
datasets.fhirStores.list healthcare.fhirStores.list sur l'ensemble de données parent.
datasets.fhirStores.patch healthcare.fhirStores.update sur le datastore FHIR demandé.
datasets.fhirStores.setIamPolicy healthcare.fhirStores.setIamPolicy sur le datastore FHIR demandé.
datasets.fhirStores.fhir.Observation-lastn healthcare.fhirStores.searchResources sur le datastore FHIR parent.
datasets.fhirStores.fhir.Patient-everything healthcare.fhirResources.get sur chaque ressource renvoyée.
datasets.fhirStores.fhir.Resource-purge healthcare.fhirResources.purge sur la ressource de datastore FHIR demandé.
datasets.fhirStores.fhir.capabilities healthcare.fhirStores.get sur le datastore FHIR demandé.
datasets.fhirStores.fhir.conditionalDelete
  • healthcare.fhirStores.searchResources sur le datastore FHIR parent.
  • healthcare.fhirResources.delete sur la ressource de datastore FHIR demandé.
datasets.fhirStores.fhir.conditionalPatch
  • healthcare.fhirStores.searchResources sur le datastore FHIR parent.
  • healthcare.fhirResources.patch sur la ressource de datastore FHIR demandé.
datasets.fhirStores.fhir.conditionalUpdate
  • healthcare.fhirStores.searchResources sur le datastore FHIR parent.
  • healthcare.fhirResources.update sur la ressource de datastore FHIR demandé.
datasets.fhirStores.fhir.create
  • Pour les interactions Create conditionnelles : autorisations healthcare.fhirResources.create et healthcare.fhirStores.searchResources sur le datastore FHIR parent.
  • Pour les interactions Create : healthcare.fhirResources.create sur le magasin FHIR parent.
datasets.fhirStores.fhir.delete healthcare.fhirResources.delete sur la ressource de datastore FHIR demandé.
datasets.fhirStores.fhir.executeBundle healthcare.fhirResources.executeBundle sur le datastore FHIR demandé, ainsi que des autorisations supplémentaires (telles que healthcare.fhirResources.create et healthcare.fhirResources.update) correspondant à des opérations individuelles dans le groupe. Si l'appelant de l'API dispose des autorisations healthcare.fhirResources.create, mais pas des autorisations healthcare.fhirResources.update, il ne peut exécuter que des groupes contenant des opérations healthcare.fhirResources.create.
datasets.fhirStores.fhir.history healthcare.fhirResources.get sur la ressource de datastore FHIR demandé et chacune de ses versions.
datasets.fhirStores.fhir.patch healthcare.fhirResources.patch sur la ressource de datastore FHIR demandé.
datasets.fhirStores.fhir.read healthcare.fhirResources.get sur la ressource de datastore FHIR demandé.
datasets.fhirStores.fhir.search healthcare.fhirStores.searchResources sur le datastore FHIR parent.
datasets.fhirStores.fhir.update healthcare.fhirResources.update sur la ressource de datastore FHIR demandé.
datasets.fhirStores.fhir.vread healthcare.fhirResources.get sur la version de ressource de datastore FHIR demandé.
Méthode du magasin HL7v2 Autorisations requises
datasets.hl7V2Stores.create healthcare.hl7V2Stores.create sur l'ensemble de données parent.
datasets.hl7V2Stores.delete healthcare.hl7V2Stores.delete sur le datastore HL7v2 demandé.
datasets.hl7V2Stores.get healthcare.hl7V2Stores.get sur le datastore HL7v2 demandé.
datasets.hl7V2Stores.list healthcare.hl7V2Stores.list sur l'ensemble de données parent.
datasets.hl7V2Stores.patch healthcare.hl7V2Stores.update sur le datastore HL7v2 demandé.
datasets.hl7V2Stores.getIamPolicy healthcare.hl7V2Stores.getIamPolicy sur le datastore HL7v2 demandé.
datasets.hl7V2Stores.setIamPolicy healthcare.hl7V2Stores.setIamPolicy sur le datastore HL7v2 demandé.
datasets.hl7V2Stores.messages.create healthcare.hl7V2Messages.create sur le datastore HL7v2 parent.
datasets.hl7V2Stores.messages.delete healthcare.hl7V2Messages.delete sur le message du datastore HL7v2 demandé.
datasets.hl7V2Stores.messages.get healthcare.hl7V2Messages.get sur le message du datastore HL7v2 demandé.
datasets.hl7V2Stores.messages.ingest healthcare.hl7V2Messages.ingest sur le message du datastore HL7v2 demandé.
datasets.hl7V2Stores.messages.list healthcare.hl7V2Messages.list sur le datastore HL7v2 parent.
datasets.hl7V2Stores.messages.patch healthcare.hl7V2Messages.update sur le message du datastore HL7v2 demandé.
Méthode d'opération Autorisation requise
datasets.operations.get healthcare.operations.get sur l'opération demandée.
datasets.operations.list healthcare.operations.list sur l'opération demandée.
datasets.operations.cancel healthcare.operations.cancel sur l'opération demandée.

Rôle

Le tableau suivant répertorie les rôles Cloud IAM pour l'API Cloud Healthcare, y compris les autorisations associées à chaque rôle :

Rôle des ensembles de données Permissions
roles/healthcare.datasetViewer
  • healthcare.datasets.get
  • healthcare.datasets.list
  • healthcare.operations.get
roles/healthcare.datasetAdmin Toutes les autorisations roles/healthcare.datasetViewer et :
  • healthcare.datasets.create
  • healthcare.datasets.delete
  • healthcare.datasets.update
  • healthcare.datasets.getIamPolicy
  • healthcare.datasets.setIamPolicy
  • healthcare.datasets.deidentify
  • healthcare.operations.cancel
  • healthcare.operations.list
Rôle du magasin DICOM Permissions
roles/healthcare.dicomStoreViewer Toutes les autorisations roles/healthcare.datasetViewer et :
  • healthcare.dicomStores.get
  • healthcare.dicomStores.list
roles/healthcare.dicomStoreAdmin Toutes les autorisations roles/healthcare.dicomStoreViewer et :
  • 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 Toutes les autorisations roles/healthcare.dicomStoreViewer et :
  • healthcare.dicomStores.export
  • healthcare.dicomStores.dicomWebRead
roles/healthcare.dicomEditor Toutes les autorisations roles/healthcare.dicomViewer et :
  • healthcare.dicomStores.import
  • healthcare.dicomStores.dicomWebDelete
  • healthcare.dicomStores.dicomWebWrite
  • healthcare.operations.cancel
Rôle du magasin FHIR Permissions
roles/healthcare.fhirStoreViewer Toutes les autorisations roles/healthcare.datasetViewer et :
  • healthcare.fhirStores.get
  • healthcare.fhirStores.list
roles/healthcare.fhirStoreAdmin Toutes les autorisations roles/healthcare.fhirStoreViewer et :
  • 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 Toutes les autorisations roles/healthcare.fhirStoreViewer et :
  • healthcare.fhirResources.get
  • healthcare.fhirStores.searchResources
  • healthcare.fhirStores.executeBundle
roles/healthcare.fhirResourceEditor Toutes les autorisations roles/healthcare.fhirResourceReader et :
  • healthcare.fhirResources.create
  • healthcare.fhirResources.delete
  • healthcare.fhirResources.patch
  • healthcare.fhirResources.update
  • healthcare.operations.cancel
Rôle du magasin HL7v2 Permissions
roles/healthcare.hl7V2StoreViewer Toutes les autorisations roles/healthcare.datasetViewer et :
  • healthcare.hl7V2Stores.get
  • healthcare.hl7V2Stores.list
roles/healthcare.hl7V2StoreAdmin Toutes les autorisations roles/healthcare.hl7V2StoreViewer et :
  • healthcare.hl7V2Stores.create
  • healthcare.hl7V2Stores.update
  • healthcare.hl7V2Stores.delete
  • healthcare.hl7V2Stores.getIamPolicy
  • healthcare.hl7V2Stores.setIamPolicy
  • healthcare.operations.cancel
roles/healthcare.hl7V2Ingest Toutes les autorisations roles/healthcare.hl7V2StoreViewer et :
  • healthcare.hl7V2messages.ingest
roles/healthcare.hl7V2Consumer Toutes les autorisations roles/healthcare.hl7V2StoreViewer et :
  • healthcare.hl7V2messages.get
  • healthcare.hl7V2messages.list
  • healthcare.hl7V2messages.create
  • healthcare.hl7V2messages.update
roles/healthcare.hl7V2Editor Toutes les autorisations roles/healthcare.hl7V2StoreViewer et :
  • healthcare.hl7V2messages.get
  • healthcare.hl7V2messages.list
  • healthcare.hl7V2messages.delete
  • healthcare.hl7V2messages.update
  • healthcare.hl7V2messages.create
  • healthcare.hl7V2Messages.ingest
  • healthcare.operations.cancel

Notez que les rôles roles/owner, roles/editor et roles/viewer incluent également des autorisations pour d'autres services Google Cloud Platform. Pour en savoir plus sur les rôles, consultez la page Comprendre les rôles.

Agent de service Cloud Healthcare

L'agent de service Cloud Healthcare est un compte de service partagé dans votre projet que l'API Cloud Healthcare utilise pour interagir avec d'autres ressources dans Google Cloud.

Par exemple, cet agent de service permet de lire et d'écrire dans des buckets Cloud Storage, d'écrire dans BigQuery ou de publier des messages dans Cloud Pub/Sub à partir de l'API Cloud Healthcare.

Lorsque vous souhaitez exécuter l'une des actions précédentes, vous devez autoriser l'agent de service Cloud Healthcare à accéder au bucket Cloud Storage, à l'ensemble de données BigQuery ou au sujet Cloud Pub/Sub approprié.

Lorsque vous créez un modèle d'autorisations pour votre projet, gardez à l'esprit que l'attribution des rôles répertoriés ci-dessous permet aux utilisateurs d'appeler des opérations qui s'exécutent en tant qu'agent de service Cloud Healthcare. Ils ont donc accès aux données auxquelles l'agent peut accéder, à savoir :

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

De même, l'attribution des autorisations suivantes aux rôles personnalisés permet également aux utilisateurs d'appeler des opérations qui s'exécuteront en tant qu'agent de service Cloud Healthcare, soit :

  • 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

Par exemple, une personne disposant d'autorisations d'importation peut exécuter des opérations en tant qu'agent de service Cloud Healthcare qui a accès à n'importe quel bucket Cloud Storage sur lequel l'agent de service Cloud Healthcare dispose déjà d'un accès en lecture. De même, toute personne disposant d'autorisations d'exportation peut exécuter des opérations en tant qu'agent de service Cloud Healthcare qui a accès au bucket sur lequel l'agent de service dispose déjà d'un accès en écriture.

De même, une personne disposant d'autorisations de création ou de mise à jour de datastore peut configurer des cibles de notification Cloud Pub/Sub ou des destinations de streaming BigQuery envoyées par l'agent de service Cloud Healthcare lorsque des modifications sont apportées au datastore.

Il est recommandé d'exploiter plusieurs projets pour isoler davantage les autorisations accordées à l'agent de service Cloud Healthcare.