Esta página descreve como controlar o acesso aos conjuntos de dados e às bases de dados da Cloud Healthcare API através das autorizações Identity and Access Management (IAM). O IAM permite-lhe controlar quem tem acesso aos seus conjuntos de dados e repositórios de dados. Para saber mais sobre a IAM para a Cloud Healthcare API, consulte o artigo Controlo de acesso.
Vista geral das políticas de IAM
O acesso a um recurso é gerido através de uma política de IAM. Uma política contém uma matriz denominada bindings. Esta matriz contém uma coleção de associações, que são associações entre responsáveis, como uma conta de utilizador ou uma conta de serviço, e uma função. As políticas são representadas através de JSON ou YAML.
A política de exemplo seguinte mostra que user-1@example.com recebeu a função roles/healthcare.datasetAdmin e que user-2@example.com e service-account-13@appspot.gserviceaccount.com receberam a função roles/healthcare.datasetViewer:
{ "etag":"bytes", "bindings": [ { "role":"roles/healthcare.datasetAdmin", "members": [ "user:user-1@example.com" ] }, { "role":"roles/healthcare.datasetViewer", "members": [ "serviceAccount:service-account-13@appspot.gserviceaccount.com", "user:user-2@example.com" ] } ] }
Para atualizar uma política para um recurso, use o padrão ler-modificar-escrever. Não existem métodos separados para criar, modificar e revogar o acesso dos utilizadores.
Para atualizar uma política, conclua os seguintes passos:
- Leia a política atual chamando o método
getIamPolicy()do recurso. Por exemplo, para ler a política atual de um conjunto de dados, chameprojects.locations.datasets.getIamPolicy. - Edite a política devolvida através de um editor de texto ou programaticamente para adicionar ou remover quaisquer responsáveis aplicáveis e as respetivas concessões de funções.
- Escreva a política atualizada chamando o método
setIamPolicy()do recurso. Por exemplo, para escrever a política atualizada de um conjunto de dados, chameprojects.locations.datasets.setIamPolicy.
Usar o IAM com lojas de consentimento
As secções seguintes mostram como obter, modificar e definir uma política para um arquivo de consentimento. Estas secções usam a seguinte política de exemplo como ponto de partida:
{ "etag":"bytes", "bindings": [ { "role":"roles/healthcare.consentStoreAdmin", "members": [ "user:user-1@example.com" ] }, { "role":"roles/healthcare.consentReader", "members": [ "serviceAccount:service-account-13@appspot.gserviceaccount.com", "user:user-2@example.com" ] } ] }
Obter uma política
Os exemplos seguintes mostram como ler uma política de IAM ao nível do armazenamento de consentimento. Para mais informações, consulte
projects.locations.datasets.consentStores.getIamPolicy.
Consola
Para ver a política IAM de um armazenamento de consentimento:
- Na Google Cloud consola, aceda à página Conjuntos de dados.
- Clique no ID do conjunto de dados que contém o arquivo de consentimento e, de seguida, selecione o arquivo de consentimento para o qual quer obter uma política.
- Clique em Mostrar painel de informações.
- Para ver os responsáveis atribuídos a uma função, expanda a função.
gcloud
Para ver a política de IAM de um arquivo de consentimento, execute o comando
gcloud healthcare consent-stores get-iam-policy. Especifique o nome da loja de consentimento, o nome do conjunto de dados e a localização.
gcloud healthcare consent-stores get-iam-policy CONSENT_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION
Se o pedido for bem-sucedido, as associações são apresentadas.
bindings: - members: - user:user-1@example.com role: roles/healthcare.consentStoreAdmin - serviceAccount:service-account-13@appspot.gserviceaccount.com - user:user-2@example.com role: roles/healthcare.consentReader etag: bytes version: VERSION_NUMBER
Node.js
Python
curl
Para ler a política de IAM de um arquivo de consentimento, faça um pedido GET e especifique o nome do conjunto de dados, o nome do arquivo de consentimento e um token de acesso.
O exemplo seguinte mostra um pedido GET com curl:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:getIamPolicy"
A resposta é a seguinte:
{
"etag":"bytes",
"bindings": [
{
"role":"roles/healthcare.consentStoreAdmin",
"members": [
"user:user-1@example.com"
]
},
{
"role":"roles/healthcare.consentReader",
"members": [
"serviceAccount:service-account-13@appspot.gserviceaccount.com",
"user:user-2@example.com"
]
}
]
}
PowerShell
Para ler a política de IAM de um arquivo de consentimento, faça um pedido GET e especifique o nome do conjunto de dados, o nome do arquivo de consentimento e um token de acesso.
O exemplo seguinte mostra um pedido GET através do Windows PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:getIamPolicy" | Select-Object -Expand Content
A resposta é a seguinte:
{
"etag":"bytes",
"bindings": [
{
"role":"roles/healthcare.consentStoreAdmin",
"members": [
"user:user-1@example.com"
]
},
{
"role":"roles/healthcare.consentReader",
"members": [
"serviceAccount:service-account-13@appspot.gserviceaccount.com",
"user:user-2@example.com"
]
}
]
}
Modificar uma política
Os seguintes exemplos concedem a um novo utilizador a função roles/healthcare.consentReader. Para mais informações, consulte projects.locations.datasets.consentStores.setIamPolicy.
Definir uma política
Consola
Para definir uma política IAM ao nível do arquivo de consentimento, conclua os seguintes passos:
- Na Google Cloud consola, aceda à página Conjuntos de dados.
- Clique no ID do conjunto de dados que contém o arquivo de consentimento e, de seguida, selecione o arquivo de consentimento para o qual quer definir uma política.
- Clique em Mostrar painel de informações.
- Clique em Adicionar principal.
- No campo Novos responsáveis, introduza uma ou mais identidades que precisam de acesso ao arquivo de consentimento.
- Na lista Selecionar uma função, em Cloud Healthcare, selecione a autorização que quer conceder. Por exemplo, o visualizador do arquivo de consentimento do Healthcare.
- Clique em Guardar.
gcloud
Conceda ou revogue funções aos utilizadores modificando a política que recuperou, através de programação ou de um editor de texto. O valor etag muda quando a política muda, pelo que tem de especificar o valor atual.
Para conceder a função a um novo utilizador, anexe o respetivo endereço de email à matriz members
no âmbito da associação roles/healthcare.consentReader:
{ "role":"roles/healthcare.consentReader", "members": [ "serviceAccount:service-account-13@appspot.gserviceaccount.com", "user:user-2@example.com", "user:NEW_USER_EMAIL_ADDRESS" ] }
members. Para revogar o acesso do último principal que tem uma função, elimine a matriz bindings para a função. Não pode ter uma matriz bindings vazia na sua política.
Depois de modificar a política para conceder as funções aplicáveis, execute o comando set-iam-policy adequado para fazer as alterações. Para definir uma política ao nível da loja de consentimento, execute o comando gcloud healthcare consent-stores set-iam-policy. Especifique o nome do arquivo de consentimento, o nome do conjunto de dados, a localização e o caminho para o ficheiro de política que criou.
gcloud healthcare consent-stores set-iam-policy CONSENT_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ POLICY_FILE_NAME
Se o pedido for bem-sucedido, o nome da loja de consentimento e as associações são apresentados.
Updated IAM policy for consentStore [CONSENT_STORE_ID]. bindings: - members: - user:user-1@example.com role: roles/healthcare.consentStoreAdmin - serviceAccount:service-account-13@appspot.gserviceaccount.com - user:user-2@example.com - user:NEW_USER_EMAIL_ADDRESS role: roles/healthcare.consentReader etag: bytes version: VERSION_NUMBER