Questa pagina descrive come controllare l'accesso ai set di dati e ai datastore dell'API Cloud Healthcare utilizzando le autorizzazioni di Identity and Access Management (IAM). IAM consente di controllare chi può accedere ai set di dati e ai datastore. Per saperne di più su IAM per l'API Cloud Healthcare, consulta Controllo degli accessi.
Panoramica delle policy IAM
L'accesso a una risorsa viene gestito mediante un criterio IAM. Una criterio contiene un array chiamato bindings. Questo array contiene una raccolta di associazioni tra entità, ad esempio tra un account utente o un account di servizio e un ruolo. I criterio sono rappresentati mediante il formato JSON o YAML.
La seguente policy di esempio mostra user-1@example.com a cui è stato concesso il ruolo roles/healthcare.datasetAdmin e user-2@example.com e service-account-13@appspot.gserviceaccount.com a cui è stato concesso il ruolo 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" ] } ] }
Per aggiornare un criterio per una risorsa, utilizza il pattern read-modify-write. Non esistono metodi separati per creare, modificare e revocare l'accesso agli utenti.
Per aggiornare una policy, completa i seguenti passaggi:
- Leggi la policy corrente chiamando il metodo
getIamPolicy()della risorsa. Ad esempio, per leggere il criterio corrente di un set di dati, chiamaprojects.locations.datasets.getIamPolicy. - Modifica la policy restituita mediante un editor di testo o in modo programmatico per aggiungere o rimuovere eventuali entità applicabili e i rispettivi ruoli concessi.
- Scrivi la policy aggiornata chiamando il metodo
setIamPolicy()della risorsa. Ad esempio, per scrivere il criterio aggiornato di un set di dati, chiamaprojects.locations.datasets.setIamPolicy.
Utilizzo di IAM con gli archivi di consensi
Le sezioni riportate di seguito descrivono come recuperare, modificare e impostare un criterio per un archivio del consenso. In queste sezioni viene utilizzato come punto di partenza il seguente esempio:
{ "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" ] } ] }
Recupero di un criterio
Gli esempi riportati di seguito mostrano come leggere un criterio IAM a livello di archivio del consenso. Per saperne di più, vedi projects.locations.datasets.consentStores.getIamPolicy.
Console
Per visualizzare il criterio IAM per un archivio del consenso:
- Nella console Google Cloud , vai alla pagina Set di dati.
- Fai clic sull'ID del set di dati che contiene l'archivio del consenso, quindi seleziona l'archivio del consenso per cui vuoi ottenere una norma.
- Fai clic su Mostra riquadro informazioni.
- Per visualizzare le entità assegnate a un ruolo, espandi il ruolo.
gcloud
Per visualizzare la policy IAM per un archivio del consenso, esegui il comando gcloud healthcare consent-stores get-iam-policy. Specifica il nome dell'archivio del consenso, il nome del set di dati e la posizione.
gcloud healthcare consent-stores get-iam-policy CONSENT_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION
Se la richiesta ha esito positivo, vengono visualizzati i binding.
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
Per leggere il criterio IAM per un archivio dei consensi, effettua una richiesta GET e specifica il nome del set di dati, il nome dell'archivio dei consensi e un token di accesso.
Il seguente esempio mostra una richiesta GET mediante 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"
La risposta è la seguente:
{
"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
Per leggere il criterio IAM per un archivio dei consensi, effettua una richiesta GET e specifica il nome del set di dati, il nome dell'archivio dei consensi e un token di accesso.
Il seguente esempio mostra una richiesta GET mediante 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
La risposta è la seguente:
{
"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"
]
}
]
}
Modifica di un criterio
I seguenti esempi concedono a un nuovo utente il ruolo roles/healthcare.consentReader. Per saperne di più, consulta projects.locations.datasets.consentStores.setIamPolicy.
Impostazione di un criterio
Console
Per impostare un criterio IAM a livello di archivio del consenso, completa i seguenti passaggi:
- Nella console Google Cloud , vai alla pagina Set di dati.
- Fai clic sull'ID del set di dati che contiene l'archivio del consenso, quindi seleziona l'archivio del consenso per cui vuoi impostare un criterio.
- Fai clic su Mostra riquadro informazioni.
- Fai clic su Aggiungi entità.
- Nel campo Nuove entità, inserisci una o più identità che devono accedere all'archivio del consenso.
- Nell'elenco Seleziona un ruolo, in Cloud Healthcare, seleziona l'autorizzazione che vuoi concedere. Ad esempio, Visualizzatore archivio consensi Healthcare.
- Fai clic su Salva.
gcloud
Concedi o revoca i ruoli agli utenti modificando il criterio recuperato in modo programmatico o utilizzando
un editor di testo. Il valore etag cambia quando il criterio cambia, quindi devi specificare il valore attuale.
Per concedere il ruolo a un nuovo utente, aggiungi il suo indirizzo email all'array members
nell'associazione 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. Per
revocare l'accesso dall'ultima entità che ha un ruolo, elimina l'array bindings per
il ruolo. Nel criterio non può esistere un array bindings vuoto.
Dopo aver modificato il criterio in modo da concedere i ruoli applicabili, esegui il comando set-iam-policy appropriato per apportare le modifiche. Per impostare una policy a livello di archivio del consenso, esegui il comando gcloud healthcare consent-stores set-iam-policy. Specifica il nome dell'archivio del consenso, il nome del set di dati, la località e il
percorso del file della norma che hai creato.
gcloud healthcare consent-stores set-iam-policy CONSENT_STORE_ID \ --dataset=DATASET_ID \ --location=LOCATION \ POLICY_FILE_NAME
Se la richiesta ha esito positivo, vengono visualizzati il nome dell'archivio del consenso e i binding.
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
Node.js
Python
curl
Concedi o revoca i ruoli agli utenti modificando il criterio recuperato in modo programmatico o utilizzando
un editor di testo. Il valore etag cambia quando il criterio cambia, quindi devi specificare il valore attuale.
Per concedere il ruolo a un nuovo utente, aggiungi il suo indirizzo email all'array members
nell'associazione 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. Per
revocare l'accesso dall'ultima entità che ha un ruolo, elimina l'array bindings per
il ruolo. Nel criterio non può esistere un array bindings vuoto.
Dopo aver modificato il criterio in modo da concedere i ruoli applicabili, chiama
projects.locations.datasets.consentStores.setIamPolicy
per apportare gli aggiornamenti.
Per impostare un criterio IAM a livello di archivio dei consensi, effettua una richiesta POST e specifica il nome del set di dati, il nome dell'archivio dei consensi, il criterio e un token di accesso.
L'esempio seguente mostra una richiesta POST mediante curl per concedere a un nuovo utente il ruolo esistente roles/healthcare.consentReader:
Policy.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'policy': { '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', 'user:NEW_USER_EMAIL_ADDRESS' ] } ] } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:setIamPolicy"
La risposta è la seguente:
{
"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",
"user:NEW_USER_EMAIL_ADDRESS"
]
}
]
}
PowerShell
Concedi o revoca i ruoli agli utenti modificando il criterio recuperato in modo programmatico o utilizzando
un editor di testo. Il valore etag cambia quando il criterio cambia, quindi devi specificare il valore attuale.
Per concedere il ruolo a un nuovo utente, aggiungi il suo indirizzo email all'array members
nell'associazione 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. Per
revocare l'accesso dall'ultima entità che ha un ruolo, elimina l'array bindings per
il ruolo. Nel criterio non può esistere un array bindings vuoto.
Dopo aver modificato il criterio in modo da concedere i ruoli applicabili, chiama
projects.locations.datasets.consentStores.setIamPolicy
per apportare gli aggiornamenti.
Per impostare un criterio IAM a livello di archivio dei consensi, effettua una richiesta POST e specifica il nome del set di dati, il nome dell'archivio dei consensi, il criterio e un token di accesso.
Il seguente esempio mostra una richiesta POST mediante Windows PowerShell per concedere a un nuovo utente il ruolo roles/healthcare.consentReader esistente:
Policy.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body "{ 'policy': { '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', 'user:NEW_USER_EMAIL_ADDRESS' ] } ] } }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID:setIamPolicy" | Select-Object -Expand Content
La risposta è la seguente:
{
"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",
"user:NEW_USER_EMAIL_ADDRESS"
]
}
]
}
Utilizzo di IAM con i set di dati
Le sezioni riportate di seguito descrivono come recuperare, modificare e impostare un criterio per un set di dati. In queste sezioni viene utilizzato come punto di partenza il seguente esempio:
{ "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" ] } ] }
Recupero di un criterio
Gli esempi riportati di seguito mostrano come leggere un criterio IAM a livello di set di dati. Per saperne di più, vedi projects.locations.datasets.getIamPolicy.
curl
Per leggere il criterio IAM per un set di dati, effettua una richiesta GET e specifica il nome del set di dati e un token di accesso.
Il seguente esempio mostra una richiesta GET mediante 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:getIamPolicy"
La risposta è la seguente:
{
"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"
]
}
]
}
PowerShell
Per visualizzare il criterio IAM per un set di dati, effettua una richiesta GET e specifica il nome del set di dati e un token di accesso.
Il seguente esempio mostra una richiesta GET mediante 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:getIamPolicy" | Select-Object -Expand Content
La risposta è la seguente:
{
"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"
]
}
]
}
Console
Per visualizzare la policy IAM per un set di dati:- Nella console Google Cloud , vai alla pagina Set di dati.
- Seleziona un set di dati e poi fai clic su Mostra riquadro informazioni.
- Per visualizzare le entità assegnate a un ruolo, espandi il ruolo.
gcloud
Per visualizzare la policy IAM per un set di dati, esegui il comando gcloud healthcare datasets get-iam-policy. Specifica il nome e la posizione del set di dati.
gcloud healthcare datasets get-iam-policy DATASET_ID \ --location=LOCATION
Se la richiesta ha esito positivo, vengono visualizzati i binding.
bindings: - members: - serviceAccount:service-account-13@appspot.gserviceaccount.com - user:user-2@example.com role: roles/healthcare.datasetViewer etag: bytes version: VERSION_NUMBER