Autorizzazioni a livello di risorsa - AWS HealthOmics

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 a livello di risorsa

AWS HealthOmics crea e accede a risorse in altri servizi per tuo conto quando gestisci un lavoro o crei un negozio. In alcuni casi, è necessario configurare le autorizzazioni in altri servizi per accedere alle risorse o consentire l'accesso HealthOmics ad esse.

Autorizzazioni Amazon ECR

Prima che il HealthOmics servizio possa eseguire un flusso di lavoro in un container dal tuo repository Amazon ECR privato, devi creare una politica delle risorse per il contenitore. La policy concede l'autorizzazione al HealthOmics servizio di utilizzare il contenitore. Questa politica delle risorse viene aggiunta a ogni repository privato a cui fa riferimento il flusso di lavoro.

Nota

L'archivio privato e il flusso di lavoro devono trovarsi nella stessa area.

Le sezioni seguenti descrivono le configurazioni delle policy richieste.

Crea una politica delle risorse per il repository Amazon ECR

Crea una politica delle risorse per consentire al HealthOmics servizio di eseguire un flusso di lavoro utilizzando un contenitore nel repository. La policy concede l'autorizzazione al responsabile del HealthOmics servizio di accedere alle azioni Amazon ECR richieste.

Segui questi passaggi per creare la policy:

  1. Apri la pagina degli archivi privati nella console Amazon ECR e seleziona il repository a cui concedi l'accesso.

  2. Dalla barra di navigazione laterale, seleziona Autorizzazioni.

  3. Scegli Modifica JSON.

  4. Scegli Aggiungi dichiarazione.

  5. Aggiungi la seguente dichiarazione sulla politica e quindi seleziona Salva politica.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "omics workflow access", "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*" } ] }

Esecuzione di flussi di lavoro con contenitori multiaccount

Se AWS account diversi possiedono il flusso di lavoro e il contenitore, devi configurare le seguenti autorizzazioni tra account:

  1. Aggiorna la policy di Amazon ECR per il repository per concedere esplicitamente l'autorizzazione all'account proprietario del flusso di lavoro.

  2. Aggiorna il ruolo di servizio per l'account proprietario del flusso di lavoro per concedergli l'accesso all'immagine del contenitore.

L'esempio seguente dimostra una politica delle risorse di Amazon ECR che concede l'accesso all'account proprietario del flusso di lavoro.

In questo esempio:

  • ID account Workflow: 111122223333

  • ID dell'account del repository del contenitore: 444455556666

  • Nome del contenitore: samtools

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] }, { "Sid": "allow access to the service role of the account that owns the workflow", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/DemoCustomer" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

Per completare la configurazione, aggiungi la seguente dichiarazione politica al ruolo di servizio dell'account proprietario del flusso di lavoro. La policy concede il permesso al ruolo di servizio di accedere all'immagine del contenitore «samtools». Assicurati di sostituire i numeri di account, il nome del contenitore e la regione con i tuoi valori.

{ "Sid": "CrossAccountEcrRepoPolicy", "Effect": "Allow", "Action": ["ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer"], "Resource": "arn:aws:ecr:us-west-2:444455556666:repository/samtools" }

Politiche di repository Amazon ECR per flussi di lavoro condivisi

Nota

HealthOmics consente automaticamente a un flusso di lavoro condiviso di accedere all'archivio Amazon ECR nell'account del proprietario del flusso di lavoro, mentre il flusso di lavoro è in esecuzione nell'account dell'abbonato. Non è necessario concedere un accesso aggiuntivo al repository per i flussi di lavoro condivisi. Per ulteriori informazioni, consulta Condivisione dei HealthOmics flussi di lavoro.

Per impostazione predefinita, l'abbonato non ha accesso all'archivio Amazon ECR per utilizzare i contenitori sottostanti. Facoltativamente, puoi personalizzare l'accesso al repository Amazon ECR aggiungendo chiavi di condizione alla politica delle risorse del repository. Le seguenti sezioni forniscono esempi di politiche.

Limita l'accesso a flussi di lavoro specifici

È possibile elencare i singoli flussi di lavoro in una dichiarazione condizionale, in modo che solo questi flussi di lavoro possano utilizzare i contenitori nel repository. La chiave di SourceArncondizione specifica l'ARN del flusso di lavoro condiviso. L'esempio seguente concede l'autorizzazione per il flusso di lavoro specificato per utilizzare questo repository.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OmicsAccessPrincipal", "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:omics:us-east-1:111122223333:workflow/1234567" } } } ] }

Limita l'accesso a account specifici

È possibile elencare gli account abbonati in una dichiarazione di condizione, in modo che solo tali account abbiano l'autorizzazione a utilizzare i contenitori nel repository. La chiave SourceAccountcondition specifica il sottoscrittore Account AWS . L'esempio seguente concede l'autorizzazione all'account specificato per utilizzare questo repository.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OmicsAccessPrincipal", "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }

Puoi anche negare le autorizzazioni di Amazon ECR a sottoscrittori specifici, come illustrato nella seguente policy di esempio.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OmicsAccessPrincipal", "Effect": "Allow", "Principal": { "Service": "omics.amazonaws.com" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:SourceAccount": "111122223333" } } } ] }

Autorizzazioni Lake Formation

Prima di utilizzare le funzionalità di analisi in HealthOmics, configura le impostazioni predefinite del database in Lake Formation.

Per configurare le autorizzazioni delle risorse in Lake Formation
  1. Apri la pagina delle impostazioni del catalogo dati nella console Lake Formation.

  2. Deseleziona i requisiti di controllo degli accessi IAM per database e tabelle in Autorizzazioni predefinite per database e tabelle appena creati.

  3. Scegli Save (Salva).

HealthOmics Analytics accetta automaticamente i dati se la policy del servizio dispone delle autorizzazioni RAM corrette, come nell'esempio seguente.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "omics:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:GetResourceShareInvitations" ], "Resource": "*" } ] }