Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Autorizzazioni per l'accesso ai dati tramite Amazon S3 URIs
Puoi accedere ai dati dell'archivio di sequenza utilizzando le operazioni HealthOmics API o le operazioni API di Amazon S3.
Per l'accesso alle HealthOmics API, HealthOmics le autorizzazioni vengono gestite tramite una policy IAM. Tuttavia, S3 Access richiede due livelli di configurazione: autorizzazione esplicita nella policy di accesso S3 dello Store e una policy IAM. Per saperne di più sull'utilizzo delle policy IAM con HealthOmics, consulta Service roles for. HealthOmics
Esistono tre modi per condividere la capacità di leggere oggetti utilizzando Amazon APIs S3:
-
Condivisione basata su policy: questa condivisione richiede l'abilitazione del principio IAM sia nella policy di accesso di S3 che la scrittura di una policy IAM e il suo collegamento al principio IAM. Per maggiori dettagli, consulta l'argomento successivo.
-
Prefirmato URLs : puoi anche generare un URL prefirmato condivisibile per un file nel Sequence Store. Per ulteriori informazioni sulla creazione di prefirmati URLs con Amazon S3, consulta Using URLs presigned nella documentazione di Amazon S3. La policy di accesso di Sequence Store S3 supporta istruzioni per limitare le funzionalità degli URL predefiniti.
-
Ruoli presunti: crea un ruolo all'interno dell'account del proprietario dei dati con una politica di accesso che consenta agli utenti di assumere quel ruolo.
Condivisione basata su policy
Se accedi ai dati dell'archivio di sequenza utilizzando un URI S3 diretto, HealthOmics fornisce misure di sicurezza avanzate per la politica di accesso ai bucket S3 associata.
Le seguenti regole si applicano alle nuove politiche di accesso S3. Per le politiche esistenti, le regole si applicano al successivo aggiornamento della politica:
-
Le policy di accesso di S3 supportano i seguenti elementi di policy
-
Versione, Id, Dichiarazione, Sid, Effetto, Principal, Azione, Risorsa, Condizione
-
-
Le politiche di accesso S3 supportano le seguenti chiavi di condizione:
-
s3:ExistingObjectTag/<key>, s3:prefix, s3:signatureversion, s3: TlsVersion
-
Le policy supportano anche aws: con i seguenti operatori di condizione: e PrincipalArn ArnEquals ArnLike
-
Se provi ad aggiungere o aggiornare una politica per includere un elemento o una condizione non supportati, il sistema rifiuta la richiesta.
Argomenti
Politica di accesso S3 predefinita
Quando crei un archivio di sequenze, HealthOmics crea una politica di accesso S3 predefinita che concede all'account root del proprietario del data store le seguenti autorizzazioni per tutti gli oggetti accessibili nel sequence store: S3:GetObject, S3 e S3:. GetObjectTagging ListBucket La policy creata di default è:
Personalizzazione della politica di accesso
Se la policy di accesso S3 è vuota, non è consentito l'accesso a S3. Se esiste una policy esistente e devi rimuovere l'accesso s3, usa per rimuovere tutti deleteS3AccessPolicy
gli accessi.
Per aggiungere restrizioni alla condivisione o concedere l'accesso ad altri account, puoi aggiornare la politica utilizzando l'PutS3AccessPolicy
API. Gli aggiornamenti alla policy non possono andare oltre il prefisso per l'archivio delle sequenze o le azioni specificate.
Policy IAM
Per consentire a un utente o a un principale IAM l'accesso tramite Amazon S3 APIs, oltre all'autorizzazione nella policy di accesso S3, è necessario creare e allegare una policy IAM al principale per concedere l'accesso. Una policy che consente l'accesso all'API Amazon S3 può essere applicata a livello di archivio di sequenza o a livello di set di lettura. A livello di set di lettura, l'autorizzazione può essere limitata tramite il prefisso o utilizzando filtri di tag di risorsa per modelli di ID campione o soggetto.
Se l'archivio delle sequenze utilizza una chiave gestita dal cliente (CMK), il principale deve disporre anche dei diritti per utilizzare la chiave KMS per la decrittografia. Per ulteriori informazioni, consulta Accesso KMS su più account nella Guida per gli sviluppatori. AWS Key Management Service
L'esempio seguente fornisce a un utente l'accesso a un archivio di sequenze. È possibile ottimizzare l'accesso con condizioni aggiuntive o filtri basati sulle risorse.
Controllo degli accessi basato su tag
Per utilizzare il controllo degli accessi basato su tag, è necessario prima aggiornare l'archivio delle sequenze per propagare le chiavi dei tag che verranno utilizzate. Questa configurazione viene impostata durante la creazione o l'aggiornamento dell'archivio di sequenze. Una volta che i tag sono stati propagati, è possibile utilizzare le condizioni dei tag per aggiungere ulteriori restrizioni. Le restrizioni possono essere inserite nella policy di S3 Access o nella policy IAM. Di seguito è riportato un esempio di policy di accesso S3 basata su schede che verrebbe impostata:
{ "Sid": "tagRestrictedGets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<target_restricted_account_id>:root" }, "Action": [ "s3:GetObject", "s3:GetObjectTagging" ], "Resource": "arn:aws:s3:us-west-2:222222222222:accesspoint/111111111111-1234567890/object/111111111111/sequenceStore/1234567890/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/tagKey1": "tagValue1", "s3:ExistingObjectTag/tagKey2": "tagValue2" } } }
Esempio di restrizione
Scenario: creazione di una condivisione in cui il proprietario dei dati possa limitare la capacità di un utente di scaricare i dati «ritirati».
In questo scenario, un proprietario dei dati (account #111111111111) gestiva un archivio dati. Questo proprietario dei dati condivide i dati con un'ampia gamma di utenti terzi, tra cui un ricercatore (account #999999999999). Nell'ambito della gestione dei dati, il proprietario dei dati riceve periodicamente richieste di ritiro dei dati di un partecipante. Per gestire questa revoca, il proprietario dei dati limita innanzitutto l'accesso diretto al download dopo aver ricevuto la richiesta e infine elimina i dati in base alle proprie esigenze.
Per soddisfare questa esigenza, il proprietario dei dati imposta un archivio di sequenze e ogni set di lettura riceve un tag per lo «stato» che verrà impostato su «ritirato» se la richiesta di prelievo arriva. Per i dati con il tag impostato su questo valore, vogliono assicurarsi che nessun utente possa eseguire «getObject» su questo file. Per eseguire questa configurazione, il proprietario dei dati dovrà assicurarsi che vengano eseguiti due passaggi.
Fase 1: Per l'archivio delle sequenze, assicuratevi che il tag di stato sia aggiornato per essere propagato. Questo viene fatto aggiungendo la chiave «status» nel campo «propogatedSetLevelTags
when call» o createSequenceStore
updateSequenceStore.
Fase 2: Aggiorna la politica di accesso s3 dello store per limitare getObject agli oggetti con il tag di stato impostato su withdrawn. Questo viene fatto aggiornando la politica di accesso ai negozi utilizzando l'API. PutS3AccesPolicy
La seguente politica consentirebbe ai clienti di continuare a visualizzare i file ritirati quando elencano gli oggetti, ma impedirebbe loro di accedervi:
Dichiarazione 1 (restrictedGetWithdrawal): L'account 9999 non può recuperare gli oggetti che vengono ritirati.
Dichiarazione 2 (ownerGetAll): L'account 1111, il proprietario dei dati, può recuperare tutti gli oggetti, inclusi gli oggetti che vengono ritirati.
Dichiarazione 3 (everyoneListAll): Tutti gli account condivisi, +1 1111 e «9999», possono eseguire l'ListBucketoperazione sull'intero prefisso.