View a markdown version of this page

Accesso a Internet per i flussi VPC-connected di lavoro - 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à.

Accesso a Internet per i flussi VPC-connected di lavoro

Quando connetti una AWS HealthOmics corsa a un VPC, la corsa può accedere solo alle risorse disponibili all'interno di quel VPC. Per consentire all'utente di accedere a Internet o ai AWS servizi pubblici esterni al VPC, è necessario configurare il VPC con le risorse di rete appropriate.

Questo argomento descrive come configurare il tuo VPC per fornire accesso a Internet e connettività efficiente ai AWS servizi per le tue VPC-connected corse. Per informazioni sulla connessione delle esecuzioni a un VPC, vedere. Connessione HealthOmics dei flussi di lavoro a un VPC

Importante

Il collegamento di una corsa a una sottorete pubblica non le fornisce l'accesso a Internet o un indirizzo IP pubblico. Usa sempre sottoreti private con percorsi NAT Gateway per corse che richiedono connettività Internet.

Configurazione di un VPC con accesso a Internet

Per consentire alle tue VPC-connected corse di accedere a Internet, crea un VPC con sottoreti private che instradano il traffico in uscita attraverso un gateway NAT.

Questa configurazione fornisce:

  • Sottoreti private per le attività del flusso di lavoro HealthOmics

  • Sottoreti pubbliche con gateway NAT per l'accesso a Internet in uscita

Regioni e zone di disponibilità supportate

HealthOmics Workflows opera nelle seguenti regioni e zone di disponibilità. Quando crei il tuo VPC, assicurati che le sottoreti si trovino in una o più di queste zone di disponibilità.

Region Nome della zona di disponibilità ID zona di disponibilità
us-west-2 us-west-2a usw2-az2
us-west-2b usw2-az1
us-west-2c usw2-az3
us-west-2d usw2-az4
us-east-1 us-east-1a use1-az4
us-east-1b use1-az6
us-east-1c use1-az1
Stati Uniti est-1d use1-az2
us-east-1f use1-az5
eu-west-1 eu-west-1a euw1-az2
eu-west-1b euw1-az3
eu-west-1c euw1-az1
eu-central-1 eu-central-1a euc1-az2
eu-central-1b euc1-az3
eu-central-1c euc1-az1
eu-west-2 eu-west-2a euw2-az2
eu-west-2b euw2-az3
eu-west-2c euw2-az1
ap-southeast-1 ap-sud-est-1a apse1-az2
ap-sudest-1b apse1-az1
ap-sud-est-1c apse1-az3
il-central-1 il-central-1a ilc1-az1
il-centrale-1b ilc1-az2
il-centrale-1c ilc1-az3
ap-northeast-2 ap-nord-est-2a apne2-az1
ap-nord-est-2b apne2-az2
ap-nord-est-2c apne2-az3
  1. Nella console Amazon VPC, scegli Crea VPC.

  2. Seleziona VPC e altro per creare automaticamente un VPC con sottoreti pubbliche e private.

  3. Configura le impostazioni seguenti:

    • Numero di zone di disponibilità: 2 o più

    • Numero di sottoreti pubbliche: una per AZ. In questo esempio, 2

    • Numero di sottoreti private: una per AZ. In questo esempio, 2

    • Gateway NAT: 1 per AZ (per la produzione) o 1 (per) development/testing

    • Endpoint VPC: endpoint S3 Gateway (opzionale: il traffico Amazon S3 all'interno della regione viene instradato tramite il servizio VPC per impostazione predefinita) HealthOmics

Quando crei la configurazione HealthOmics VPC, specifica le sottoreti private. Le esecuzioni utilizzano il gateway NAT nella sottorete pubblica per raggiungere Internet.

Endpoint VPC per servizi AWS

Puoi configurare gli endpoint VPC per consentire alle esecuzioni di accedere ai AWS servizi senza attraversare la rete Internet pubblica. Ciò migliora la sicurezza e può ridurre i costi di trasferimento dei dati.

Importante

Se la definizione del flusso di lavoro deve accedere a AWS servizi (come le query Amazon Athena, le operazioni Amazon DynamoDB o altre chiamate API), devi assicurarti che gli endpoint VPC richiesti siano configurati nel tuo VPC. Senza gli endpoint appropriati, il flusso di lavoro potrebbe fallire a causa di errori di autenticazione o connettività.

Nota

In-Region Per impostazione predefinita, il traffico Amazon S3 viene instradato tramite il servizio HealthOmics VPC. Se configuri gli endpoint dell'interfaccia Amazon S3, il traffico viene invece instradato attraverso il tuo VPC. Ti consigliamo di utilizzare gli endpoint gateway Amazon S3 per ottimizzare al massimo le prestazioni e i costi. Per ulteriori informazioni, consulta Endpoint Gateway per Amazon S3 nella AWS PrivateLink Guida.

La tabella seguente elenca gli endpoint VPC comunemente usati per le esecuzioni: HealthOmics

Servizio Tipo di endpoint Nome endpoint
Simple Storage Service (Amazon S3) Gateway com.amazonaws. region.s3
Tabelle di Amazon S3 Interfaccia com.amazonaws. region.s3 tabelle
Amazon ECR (API) Interfaccia com.amazonaws. region.ecr.api
Amazon ECR (Docker) Interfaccia com.amazonaws. region.ecr.dkr
SSM Interfaccia com.amazonaws. region.sms
CloudWatch Registri Interfaccia com.amazonaws. region.registri
Amazon Athena Interfaccia com.amazonaws.it. region.atena

L'elenco completo dei servizi a cui puoi accedere tramite gli AWS PrivateLink endpoint è disponibile nei AWS servizi che si integrano con. AWS PrivateLink Per istruzioni dettagliate sulla configurazione degli endpoint, consulta Accedere ai AWS servizi AWS PrivateLink nella AWS PrivateLink Guida.

Requisiti NAT Gateway

Per le corse che richiedono l'accesso pubblico a Internet:

  • NAT Gateway deve essere distribuito in una sottorete pubblica

  • La sottorete pubblica deve avere un percorso verso un Internet Gateway

  • Le sottoreti private (dove vengono eseguite le esecuzioni) devono avere percorsi verso il gateway NAT

Nota

I gateway NAT prevedono tariffe orarie e costi di elaborazione dei dati. Per l'ottimizzazione dei costi, prendi in considerazione l'utilizzo di endpoint VPC per l'accesso al AWS servizio anziché il routing tramite NAT Gateway.

Configurazione del gruppo di sicurezza

Configura i tuoi gruppi di sicurezza per consentire il traffico in uscita verso le destinazioni a cui le tue corse devono accedere:

  • Accesso pubblico a Internet: consente il traffico HTTPS in uscita (porta 443). Aggiungi regole per altri protocolli, se necessario, come HTTP (porta 80).

  • Servizi specifici: configura le regole in base ai tuoi requisiti.

  • On-premises risorse: consenti il traffico verso le tue gamme VPN o CIDR.

L'esempio seguente mostra una regola di gruppo di sicurezza per l'accesso pubblico a Internet:

Tipo Protocollo Intervallo porte Destinazione Description
HTTPS TCP 443 0.0.0. 0/0 Consenti l'accesso a Internet da HTTPS

Configurazione della tabella delle rotte

Assicurati che le tue sottoreti private abbiano voci nella tabella di routing che indirizzano il traffico diretto a Internet verso un gateway NAT:

Destinazione Target
10.0.0. 0/16 local
0,0,0. 0/0 nat-xxxxxxxxx

Per accedere alle risorse locali, configura i percorsi verso un gateway o gateway privato virtuale.

Autorizzazioni IAM per i servizi AWS

Quando le attività del flusso di lavoro accedono a AWS servizi come Amazon Athena, AWS Glue o Amazon DynamoDB in modalità di rete VPC, devi aggiungere le autorizzazioni necessarie al ruolo di servizio che passi all'API. StartRun Senza queste autorizzazioni, le attività del flusso di lavoro falliranno con o errori. AccessDeniedException UnauthorizedException

Importante

Le autorizzazioni del ruolo di servizio sono separate dalla configurazione di rete VPC. Anche con endpoint VPC e gruppi di sicurezza configurati correttamente, il flusso di lavoro fallirà se il ruolo di servizio non dispone delle autorizzazioni IAM richieste.

Se il flusso di lavoro fallisce a causa di errori di autorizzazione, controlla CloudWatch i log dei log relativi all'esecuzione del flusso di lavoro. I messaggi di errore più comuni includono AccessDeniedException: You are not authorized to perform: action on the resource (al ruolo di servizio manca l'autorizzazione IAM richiesta) o UnrecognizedClientException: The security token included in the request is invalid (la policy di attendibilità del ruolo di servizio potrebbe essere configurata male o il ruolo StartRun a cui è passato l'ARN non è corretto).

Autorizzazioni di servizio comuni

Gli esempi seguenti mostrano le autorizzazioni IAM per i AWS servizi di uso comune nei flussi di lavoro in modalità VPC. Aggiungi queste autorizzazioni alla tua policy sui ruoli di servizio in base ai servizi a cui accede il tuo flusso di lavoro.

Esempio autorizzazioni

Per i flussi di lavoro che eseguono query:

{ "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StopQueryExecution" ], "Resource": "arn:aws:athena:region:account-id:workgroup/workgroup-name" }
Esempio AWS Glue Autorizzazioni Data Catalog

Per i flussi di lavoro che accedono a AWS Glue database e tabelle (comunemente usati con Amazon Athena):

{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetTable", "glue:GetPartitions", "glue:CreateTable", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/database-name", "arn:aws:glue:region:account-id:table/database-name/*" ] }
Nota

Se utilizzi AWS Lake Formation per gestire le autorizzazioni per il tuo AWS Glue Data Catalog, devi anche concedere le autorizzazioni Lake Formation appropriate. Per ulteriori informazioni, consulta le autorizzazioni di Lake Formation nella AWS Lake Formation Developer Guide.

Esempio Autorizzazioni DynamoDB

Per i flussi di lavoro che leggono o scrivono su tabelle DynamoDB:

{ "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:region:account-id:table/table-name" }
Esempio Autorizzazioni Amazon S3 Tables

Per i flussi di lavoro che leggono o scrivono su Amazon S3 Tables:

{ "Effect": "Allow", "Action": [ "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": "arn:aws:s3tables:region:account-id:bucket/bucket-name/table/table-id" }
Nota

Amazon S3 Tables utilizza un endpoint diverso da Amazon S3. È necessario configurare un endpoint VPC per Amazon S3 Tables e assicurarsi che il gruppo di sicurezza consenta il traffico HTTPS in uscita (porta 443) al servizio Amazon S3 Tables.

Test della connettività VPC

Prima di eseguire i flussi di lavoro di produzione, verifica che la configurazione del VPC consenta la connettività ai servizi esterni richiesti.

Crea un flusso di lavoro di test

Crea un flusso di lavoro semplice che verifichi la connettività al tuo servizio esterno. Ad esempio, crea un flusso di lavoro che tenti una connessione TCP a un endpoint del servizio di destinazione.

Esegui il test

aws omics start-run \ --workflow-id test-workflow-id \ --role-arn role-arn \ --output-uri s3://bucket-name/test-outputs/ \ --networking-mode VPC \ --configuration-name configuration-name \ --parameters file://test-parameters.json

Verificare i risultati

Controlla l'output del flusso di lavoro per confermare la corretta connettività:

{ "connectivity_test.result": "Testing connection to external service...\nSUCCESS: Connection successful!\nTest completed" }

Se il test fallisce, verifica quanto segue:

  • Le regole del gruppo di sicurezza consentono il traffico in uscita verso le porte e le destinazioni richieste.

  • Le tabelle di routing indirizzano il traffico verso un gateway NAT per l'accesso a Internet.

  • Il servizio esterno è accessibile dalla rete.

  • Nel tuo account è disponibile un numero sufficiente di ENI.

  • Il gateway NAT si trova in una sottorete pubblica con un percorso verso un gateway Internet.

Nota

La velocità di trasmissione della rete parte da 10 Gbps per ENI e sale fino a 100 Gbps in un periodo di 60 minuti con traffico sostenuto. Per flussi di lavoro con requisiti immediati di produttività elevata, contatta l'assistenza. AWS

Esempi

Accesso ai dati NCBI con autenticazione API

Questo esempio dimostra come accedere ai dati NCBI utilizzando l'API NCBI Datasets con autenticazione.

Le migliori pratiche per accedere alle risorse NCBI

I clienti devono utilizzare l'API REST ove possibile e utilizzare una chiave API fornita da NCBI. Le richieste di accesso alle risorse NCBI, come le richieste HTTP e FTP per dati pubblici, proverranno HealthOmics e verranno limitate alla tariffa di terze parti stabilita da NCBI. È possibile che si verifichino errori di esecuzione dovuti a errori di limitazione durante i picchi di utilizzo. Incoraggiamo gli utenti a procurarsi la propria chiave API NCBI e a utilizzare API specializzate per consentire una maggiore concorrenza e una migliore esperienza di sviluppo.

Per ottenere la tua chiave API NCBI, consulta la documentazione sulle chiavi API NCBI.

Esempio di definizione del flusso di lavoro:

version 1.0 #WORKFLOW DEFINITION # Meant to be used as integration test for public internet access via VPC tunnel workflow TestFlow { input { String ncbi_api_url = "https://api.ncbi.nlm.nih.gov/datasets/v2/gene/accession/NM_021803.4?api_key=<YOUR_API_KEY>" } call DataProcessTask{ input: ncbi_api_url = ncbi_api_url, } output { File output_file = DataProcessTask.output_file } } #Task Definitions task DataProcessTask { input { String ncbi_api_url } command <<< set -eu # Download file from NCBI Datasets API with API key curl -fsSL "~{ncbi_api_url}" -o gene_data.json # Add data processing task here cat gene_data.json > processed_data.json # Echo the content to output file cat processed_data.json > outfile.txt >>> output { File output_file = "outfile.txt" } }

Punti chiave:

  • Sostituisci <YOUR_API_KEY> con la tua attuale chiave API NCBI

  • Il flusso di lavoro utilizza HTTPS per accedere all'API NCBI Datasets

  • La chiave API viene passata come parametro URL

  • Questo approccio offre limiti di velocità più elevati (10 richieste al secondo) rispetto all'accesso non autenticato (5 richieste al secondo)

Per ulteriori informazioni sulle chiavi API NCBI e sui limiti di velocità, consulta la documentazione dell'API NCBI Datasets.

Best practice

  1. Usa gli endpoint VPC per i servizi. AWS Configura gli endpoint VPC per Amazon S3, Amazon ECR e altri AWS servizi per ridurre i costi dei gateway NAT e migliorare le prestazioni. Per ulteriori informazioni, consulta Endpoint VPC per servizi AWS.

  2. Monitora i costi di rete. La rete VPC comporta costi per i gateway NAT, il trasferimento dei dati e gli ENI. Monitora il tuo utilizzo con AWS Cost Explorer.

  3. Pianifica le zone di disponibilità. Assicurati che le sottoreti coprano le zone di disponibilità in cui HealthOmics opera per supportare il posizionamento del flusso di lavoro.

  4. Utilizza i gateway NAT in ogni AZ. Per i carichi di lavoro di produzione, implementa un gateway NAT in ogni zona di disponibilità per fornire ridondanza.