Controle de acesso

Visão geral

A API Cloud Healthcare usa o Cloud Identity and Access Management (Cloud IAM) para controle de acesso.

Na API Cloud Healthcare, o controle de acesso pode ser configurado no nível do projeto, do conjunto de dados ou do armazenamento de dados. Por exemplo, você pode conceder acesso a todos os conjuntos de dados em um projeto para um grupo de desenvolvedores. Para saber como configurar e usar o Cloud IAM com a API Cloud Healthcare, consulte Como controlar o acesso e Como controlar o acesso a outros produtos.

Para uma descrição detalhada do IAM e dos recursos dele, consulte a documentação do Cloud IAM. Especificamente, consulte a seção sobre gerenciamento das políticas do Cloud IAM.

Cada método da API Cloud Healthcare requer que o autor da chamada tenha as permissões necessárias. Para mais informações, consulte Permissões e Papéis.

Permissões

Esta seção resume as permissões da API Cloud Healthcare compatíveis com o Cloud IAM.

Permissões exigidas

As tabelas a seguir listam as permissões do IAM associadas à API Cloud Healthcare. Os nomes dos métodos estão abreviados na tabela. O nome completo de cada método começa com projects.locations.

Método de conjuntos de dados Permissões exigidas
datasets.create healthcare.datasets.create no projeto pai do Google Cloud.
datasets.deidentify
  • healthcare.datasets.deidentify no conjunto de dados de origem.
  • healthcare.datasets.create no projeto do Google Cloud que contém o conjunto de dados de destino.
datasets.delete healthcare.datasets.delete no conjunto de dados solicitado.
datasets.get healthcare.datasets.get no conjunto de dados solicitado.
datasets.getIamPolicy healthcare.datasets.getIamPolicy no conjunto de dados solicitado.
datasets.list healthcare.datasets.list no projeto pai do Google Cloud.
datasets.patch healthcare.datasets.update no conjunto de dados solicitado.
datasets.setIAMPolicy healthcare.datasets.setIamPolicy no conjunto de dados solicitado.
Método de armazenamento DICOM Permissões exigidas
datasets.dicomStores.create healthcare.dicomStores.create no conjunto de dados pai.
datasets.dicomStores.deidentify
  • healthcare.dicomStores.deidentify no armazenamento DICOM de origem.
  • healthcare.dicomStores.dicomWebWrite no armazenamento DICOM de destino.
datasets.dicomStores.delete healthcare.dicomStores.delete no armazenamento DICOM solicitado.
datasets.dicomStores.export
  • healthcare.dicomStores.export no armazenamento DICOM solicitado.
  • Ao exportar para o Cloud Storage: roles/storage.objectAdmin concedido à conta de serviço do Agente de serviço do Cloud Healthcare do projeto. Consulte Como exportar dados para o Cloud Storage para instruções.
  • Ao exportar para o BigQuery: roles/bigquery.dataEditor e roles/bigquery.jobUser concedidos à conta de serviço do Agente de serviço do Cloud Healthcare do projeto. Consulte Permissões do BigQuery para armazenamento DICOM para instruções.
datasets.dicomStores.get healthcare.dicomStores.get no armazenamento DICOM solicitado.
datasets.dicomStores.getIamPolicy healthcare.dicomStores.getIamPolicy no armazenamento DICOM solicitado.
datasets.dicomStores.import
  • healthcare.dicomStores.import no armazenamento DICOM solicitado.
  • roles/storage.objectViewer concedido à conta de serviço do Agente de serviço do Cloud Healthcare do projeto. Consulte Como importar dados do Cloud Storage para instruções.
datasets.dicomStores.list healthcare.dicomStores.list no conjunto de dados pai.
datasets.dicomStores.patch healthcare.dicomStores.update no armazenamento DICOM solicitado.
datasets.dicomStores.searchForInstances healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.searchForSeries healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.searchForStudies healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.setIamPolicy healthcare.dicomStores.setIamPolicy no armazenamento DICOM solicitado.
datasets.dicomStores.storeInstances healthcare.dicomStores.dicomWebWrite no armazenamento DICOM solicitado.
datasets.dicomStores.studies.delete healthcare.dicomStores.dicomWebDelete no armazenamento DICOM solicitado.
datasets.dicomStores.studies.retrieveMetadata healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.retrieveStudy healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.searchForInstances healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.searchForSeries healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.storeInstances healthcare.dicomStores.dicomWebWrite no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.delete healthcare.dicomStores.dicomWebDelete no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.retrieveMetadata healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.retrieveSeries healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.searchForInstances healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.instances.delete healthcare.dicomStores.dicomWebDelete no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.instances.retrieveInstance healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.instances.retrieveMetadata healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.instances.retrieveRendered healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.instances.frames.retrieveFrames healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
datasets.dicomStores.studies.series.instances.frames.retrieveRendered healthcare.dicomStores.dicomWebRead no armazenamento DICOM solicitado.
Método de armazenamento FHIR Permissões exigidas
datasets.fhirStores.create healthcare.fhirStores.create no conjunto de dados pai.
datasets.fhirStores.deidentify
  • healthcare.fhirStores.deidentify no armazenamento FHIR de origem.
  • healthcare.fhirResources.update no armazenamento FHIR de destino.
datasets.fhirStores.delete healthcare.fhirStores.delete no armazenamento FHIR solicitado.
datasets.fhirStores.export
  • healthcare.fhirStores.export no armazenamento FHIR solicitado.
  • Ao exportar para o Cloud Storage: storage.objects.create, storage.objects.delete e storage.objects.list concedidos à conta de serviço do Agente de serviço do Cloud Healthcare do projeto. Consulte Como exportar recursos do FHIR para o Cloud Storage para instruções.
  • Ao exportar para o BigQuery: roles/bigquery.dataEditor e roles/bigquery.jobUser concedidos à conta de serviço do Agente de serviço do Cloud Healthcare do projeto. Consulte Permissões do BigQuery para armazenamento FHIR para instruções.
datasets.fhirStores.get healthcare.fhirStores.get no armazenamento FHIR solicitado.
datasets.fhirStores.getIamPolicy healthcare.fhirStores.getIamPolicy no armazenamento FHIR solicitado.
datasets.fhirStores.import
  • healthcare.fhirStores.import no armazenamento FHIR solicitado.
  • storage.objects.get e storage.objects.list concedidos à conta de serviço do Agente de serviço do Cloud Healthcare do projeto. Consulte Como importar recursos do FHIR do Cloud Storage para instruções.
datasets.fhirStores.list healthcare.fhirStores.list no conjunto de dados pai.
datasets.fhirStores.patch healthcare.fhirStores.update no armazenamento FHIR solicitado.
datasets.fhirStores.setIamPolicy healthcare.fhirStores.setIamPolicy no armazenamento FHIR solicitado.
datasets.fhirStores.fhir.Observation-lastn healthcare.fhirStores.searchResources no armazenamento FHIR pai.
datasets.fhirStores.fhir.Patient-everything healthcare.fhirResources.get em cada recurso retornado.
datasets.fhirStores.fhir.Resource-purge healthcare.fhirResources.purge no recurso de armazenamento FHIR solicitado.
datasets.fhirStores.fhir.capabilities healthcare.fhirStores.get no armazenamento FHIR solicitado.
datasets.fhirStores.fhir.conditionalDelete
  • healthcare.fhirStores.searchResources no armazenamento FHIR pai.
  • healthcare.fhirResources.delete no recurso de armazenamento FHIR solicitado.
datasets.fhirStores.fhir.conditionalPatch
  • healthcare.fhirStores.searchResources no armazenamento FHIR pai.
  • healthcare.fhirResources.patch no recurso de armazenamento FHIR solicitado.
datasets.fhirStores.fhir.conditionalUpdate
  • healthcare.fhirStores.searchResources no armazenamento FHIR pai.
  • healthcare.fhirResources.update no recurso de armazenamento FHIR solicitado.
datasets.fhirStores.fhir.create
  • Para interações de criação condicionais: healthcare.fhirResources.create e healthcare.fhirStores.searchResources no armazenamento FHIR pai.
  • Para interações de criação: healthcare.fhirResources.create no armazenamento FHIR pai.
datasets.fhirStores.fhir.delete healthcare.fhirResources.delete no recurso de armazenamento FHIR solicitado.
datasets.fhirStores.fhir.executeBundle healthcare.fhirResources.executeBundle no armazenamento FHIR solicitado e permissões adicionais (como healthcare.fhirResources.create e healthcare.fhirResources.update) correspondentes a operações individuais no pacote. Se o chamador da API tiver permissões healthcare.fhirResources.create, mas não permissões healthcare.fhirResources.update, ele só poderá executar pacotes que contenham operações healthcare.fhirResources.create.
datasets.fhirStores.fhir.history healthcare.fhirResources.get no recurso de armazenamento FHIR solicitado e em cada uma das versões dele.
datasets.fhirStores.fhir.patch healthcare.fhirResources.patch no recurso de armazenamento FHIR solicitado.
datasets.fhirStores.fhir.read healthcare.fhirResources.get no recurso de armazenamento FHIR solicitado.
datasets.fhirStores.fhir.search healthcare.fhirStores.searchResources no armazenamento FHIR pai.
datasets.fhirStores.fhir.update healthcare.fhirResources.update no recurso de armazenamento FHIR solicitado.
datasets.fhirStores.fhir.vread healthcare.fhirResources.get na versão do recurso de armazenamento FHIR solicitado.
Método de armazenamento HL7v2 Permissões exigidas
datasets.hl7V2Stores.create healthcare.hl7V2Stores.create no conjunto de dados pai.
datasets.hl7V2Stores.delete healthcare.hl7V2Stores.delete no armazenamento HL7v2 solicitado.
datasets.hl7V2Stores.get healthcare.hl7V2Stores.get no armazenamento HL7v2 solicitado.
datasets.hl7V2Stores.list healthcare.hl7V2Stores.list no conjunto de dados pai.
datasets.hl7V2Stores.patch healthcare.hl7V2Stores.update no armazenamento HL7v2 solicitado.
datasets.hl7V2Stores.getIamPolicy healthcare.hl7V2Stores.getIamPolicy no armazenamento HL7v2 solicitado.
datasets.hl7V2Stores.setIamPolicy healthcare.hl7V2Stores.setIamPolicy no armazenamento HL7v2 solicitado.
datasets.hl7V2Stores.messages.create healthcare.hl7V2Messages.create no armazenamento HL7v2 pai.
datasets.hl7V2Stores.messages.delete healthcare.hl7V2Messages.delete na mensagem do armazenamento HL7v2 solicitado.
datasets.hl7V2Stores.messages.get healthcare.hl7V2Messages.get na mensagem do armazenamento HL7v2 solicitado.
datasets.hl7V2Stores.messages.ingest healthcare.hl7V2Messages.ingest na mensagem do armazenamento HL7v2 solicitado.
datasets.hl7V2Stores.messages.list healthcare.hl7V2Messages.list no armazenamento HL7v2 pai.
datasets.hl7V2Stores.messages.patch healthcare.hl7V2Messages.update na mensagem do armazenamento HL7v2 solicitado.
Método de operação Permissão necessária
datasets.operations.get healthcare.operations.get na operação solicitada.
datasets.operations.list healthcare.operations.list na operação solicitada.
datasets.operations.cancel healthcare.operations.cancel na operação solicitada.

Papel

A tabela a seguir lista os papéis do Cloud IAM da API Cloud Healthcare, incluindo as permissões associadas a cada papel:

Papel de conjuntos de dados Permissões
roles/healthcare.datasetViewer
  • healthcare.datasets.get
  • healthcare.datasets.list
  • healthcare.operations.get
roles/healthcare.datasetAdmin Todas as permissões roles/healthcare.datasetViewer e:
  • healthcare.datasets.create
  • healthcare.datasets.delete
  • healthcare.datasets.update
  • healthcare.datasets.getIamPolicy
  • healthcare.datasets.setIamPolicy
  • healthcare.datasets.deidentify
  • healthcare.operations.cancel
  • healthcare.operations.list
Papel de armazenamento DICOM Permissões
roles/healthcare.dicomStoreViewer Todas as permissões roles/healthcare.datasetViewer e:
  • healthcare.dicomStores.get
  • healthcare.dicomStores.list
roles/healthcare.dicomStoreAdmin Todas as permissões roles/healthcare.dicomStoreViewer e:
  • 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 Todas as permissões roles/healthcare.dicomStoreViewer e:
  • healthcare.dicomStores.export
  • healthcare.dicomStores.dicomWebRead
roles/healthcare.dicomEditor Todas as permissões roles/healthcare.dicomViewer e:
  • healthcare.dicomStores.import
  • healthcare.dicomStores.dicomWebDelete
  • healthcare.dicomStores.dicomWebWrite
  • healthcare.operations.cancel
Papel de armazenamento FHIR Permissões
roles/healthcare.fhirStoreViewer Todas as permissões roles/healthcare.datasetViewer e:
  • healthcare.fhirStores.get
  • healthcare.fhirStores.list
roles/healthcare.fhirStoreAdmin Todas as permissões roles/healthcare.fhirStoreViewer e:
  • 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 Todas as permissões roles/healthcare.fhirStoreViewer e:
  • healthcare.fhirResources.get
  • healthcare.fhirStores.searchResources
  • healthcare.fhirStores.executeBundle
roles/healthcare.fhirResourceEditor Todas as permissões roles/healthcare.fhirResourceReader e:
  • healthcare.fhirResources.create
  • healthcare.fhirResources.delete
  • healthcare.fhirResources.patch
  • healthcare.fhirResources.update
  • healthcare.operations.cancel
Papel de armazenamento HL7v2 Permissões
roles/healthcare.hl7V2StoreViewer Todas as permissões roles/healthcare.datasetViewer e:
  • healthcare.hl7V2Stores.get
  • healthcare.hl7V2Stores.list
roles/healthcare.hl7V2StoreAdmin Todas as permissões roles/healthcare.hl7V2StoreViewer e:
  • healthcare.hl7V2Stores.create
  • healthcare.hl7V2Stores.update
  • healthcare.hl7V2Stores.delete
  • healthcare.hl7V2Stores.getIamPolicy
  • healthcare.hl7V2Stores.setIamPolicy
  • healthcare.operations.cancel
roles/healthcare.hl7V2Ingest Todas as permissões roles/healthcare.hl7V2StoreViewer e:
  • healthcare.hl7V2messages.ingest
roles/healthcare.hl7V2Consumer Todas as permissões roles/healthcare.hl7V2StoreViewer e:
  • healthcare.hl7V2messages.get
  • healthcare.hl7V2messages.list
  • healthcare.hl7V2messages.create
  • healthcare.hl7V2messages.update
roles/healthcare.hl7V2Editor Todas as permissões roles/healthcare.hl7V2StoreViewer e:
  • healthcare.hl7V2messages.get
  • healthcare.hl7V2messages.list
  • healthcare.hl7V2messages.delete
  • healthcare.hl7V2messages.update
  • healthcare.hl7V2messages.create
  • healthcare.hl7V2Messages.ingest
  • healthcare.operations.cancel

Os papéis roles/owner, roles/editor e roles/viewer incluem também permissões para outros serviços do Google Cloud Platform. Para mais informações sobre papéis, consulte Noções básicas sobre papéis.

Agente de serviço do Cloud Healthcare

O Agente de serviço do Cloud Healthcare é uma conta de serviço compartilhada no projeto que a API Cloud Healthcare usa para interagir com outros recursos no Google Cloud.

Por exemplo, esse agente de serviço é usado para ler e gravar em buckets do Cloud Storage, gravar no BigQuery ou publicar mensagens no Pub/Sub da API Cloud Healthcare.

Sempre que você quiser executar qualquer uma das ações anteriores, conceda ao Agente de serviço do Cloud Healthcare acesso ao bucket relevante do Cloud Storage, ao conjunto de dados do BigQuery ou ao tópico do Pub/Sub.

Ao criar o modelo de permissão para seu projeto, lembre-se de que a concessão de qualquer um dos papéis listados abaixo permite que o usuário invoque operações que serão executadas como o Agente de serviço do Cloud Healthcare e tenham acesso a todos os dados a que agente tem acesso:

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

Da mesma forma, atribuir as seguintes permissões a papéis personalizados também permite que o usuário invoque operações que serão executadas como o Agente de serviço do 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 exemplo, uma pessoa com permissões de importação pode executar operações que atuam como o Agente de serviço do Cloud Healthcare, que acessa qualquer bucket do Cloud Storage a que o Agente de serviço do Cloud Healthcare já tenha acesso de leitura. Da mesma forma, qualquer pessoa que tenha permissões de exportação pode executar operações que atuam como o Agente de serviço do Cloud Healthcare, que acessa qualquer bucket a que o agente de serviço já tenha acesso de gravação.

Da mesma forma, uma pessoa que cria ou atualiza permissões de armazenamento de dados pode configurar destinos de notificação do Pub/Sub ou destinos de streaming do BigQuery, que são enviados pelo Agente de serviço do Cloud Healthcare quando são feitas alterações no armazenamento de dados.

Como prática recomendada, aproveite vários projetos para isolar ainda mais as permissões concedidas ao Agente de serviço do Cloud Healthcare.