View a markdown version of this page

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

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

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

Importante

La connessione 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 le 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 indirizzino il traffico in uscita attraverso un gateway NAT.

Questa configurazione fornisce:

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

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

Regioni supportate e zone di disponibilità

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-sudest -1a apse1-az2
ap-sudest-1b apse1-az1
ap-sudest-1c apse1-az3
il-central-1 il-central-1a ilc1-az1
il-central-1b ilc1-az2
il-central-1c ilc1-az3
ap-northeast-2 ap-nordest-2a apne2-az1
ap-nord-est-2b apne2-az2
ap-nord-est-2c apne2-az3
ap-northeast-1 ap-northeast-1a apne1-az4
ap-northeast-1c apne1-az1
ap-northeast-1d apne1-az2
us-east-2 us-east-2a use2-az1
us-east-2b use2-az2
us-east-2c use2-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: per impostazione predefinita, il traffico Amazon S3 nella regione viene indirizzato attraverso il servizio VPC) HealthOmics

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

Endpoint VPC per AWS services

È possibile 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 ai AWS servizi (come query Amazon Athena, 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 con errori di autenticazione o connettività.

Nota

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

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. regiontabelle .s3
Amazon ECR (API) Interfaccia com.amazonaws. region.ecr.api
Amazon ECR (Docker) Interfaccia com.amazonaws. region.ecr.dkr
SSM Interfaccia com.amazonaws. region.ssm
CloudWatch Registri Interfaccia com.amazonaws. region.registri
Amazon Athena Interfaccia com.amazonaws. region.atena

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

Requisiti del gateway NAT

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 NAT Gateway

Nota

I gateway NAT sono soggetti a tariffe orarie e di elaborazione dati. Per l'ottimizzazione dei costi, prendi in considerazione l'utilizzo di endpoint VPC per l'accesso ai AWS servizi 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: consenti il traffico HTTPS in uscita (porta 443). Se necessario, aggiungi regole per altri protocolli, ad esempio HTTP (porta 80).

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

  • On-premises risorse: consenti il traffico verso i tuoi intervalli VPN o CIDR.

L'esempio seguente mostra una regola del 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 di routing

Assicurati che le tue sottoreti private contengano 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 AWS services

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 errori. AccessDeniedException UnauthorizedException

Importante

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

Se il flusso di lavoro non riesce a causa di errori di autorizzazione, controlla CloudWatch i 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 non essere configurata correttamente o il ruolo a cui è stato passato l'ARN non StartRun è 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 politica 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 interrogazioni:

{ "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 del catalogo dati

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 lo utilizzi AWS Lake Formation per gestire le autorizzazioni per il tuo catalogo AWS Glue dati, devi anche concedere le autorizzazioni Lake Formation appropriate. Per ulteriori informazioni, consulta le autorizzazioni di Lake Formation nella Guida per gli AWS Lake Formation sviluppatori.

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. Devi configurare un endpoint VPC per Amazon S3 Tables e assicurarti che il tuo gruppo di sicurezza consenta il traffico HTTPS in uscita (porta 443) verso il servizio Amazon S3 Tables.

Test della connettività VPC

Prima di eseguire i flussi di lavoro di produzione, verificate 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 di 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 sono disponibili un numero sufficiente di ENI.

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

Nota

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

Esempi

Accesso ai dati NCBI con l'autenticazione API

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

Le migliori pratiche per accedere alle risorse dell'NCBI

I clienti devono utilizzare l'API REST ove possibile e utilizzare una chiave API fornita da NCBI. Le richieste di accesso alle risorse dell'NCBI, come le richieste HTTP e FTP per dati pubblici, proverranno HealthOmics e saranno limitate alla tariffa di terze parti stabilita dall'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 delle chiavi API NCBI. https://www.ncbi.nlm.nih.gov/datasets/docs/v2/api/api-keys/

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:

  • <YOUR_API_KEY>Sostituiscila 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 prevede 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 del gateway NAT e migliorare le prestazioni. Per ulteriori informazioni, consulta Endpoint VPC per AWS services.

  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 Cost Explorer. AWS

  3. Pianifica le zone di disponibilità. Assicurati che le tue sottoreti si estendano nelle 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 ciascuna zona di disponibilità per fornire ridondanza.