View a markdown version of this page

Acesso à Internet para VPC-connected fluxos de trabalho - AWS HealthOmics

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Acesso à Internet para VPC-connected fluxos de trabalho

Quando você conecta uma AWS HealthOmics execução a uma VPC, a execução só pode acessar os recursos disponíveis dentro dessa VPC. Para dar à sua execução acesso à Internet pública ou aos AWS serviços fora da VPC, você deve configurar sua VPC com os recursos de rede apropriados.

Este tópico descreve como configurar sua VPC para fornecer acesso à Internet e conectividade eficiente aos AWS serviços para suas VPC-connected execuções. Para obter informações sobre como conectar execuções a uma VPC, consulte. Conectando HealthOmics fluxos de trabalho a uma VPC

Importante

Conectar uma execução a uma sub-rede pública não lhe dá acesso à Internet nem a um endereço IP público. Sempre use sub-redes privadas com rotas do NAT Gateway para execuções que exijam conectividade com a Internet.

Configurando uma VPC com acesso à Internet

Para dar às suas VPC-connected execuções acesso à Internet, crie uma VPC com sub-redes privadas que roteiam o tráfego de saída por meio de um gateway NAT.

Essa configuração fornece:

  • Sub-redes privadas para HealthOmics tarefas de fluxo de trabalho

  • Sub-redes públicas com gateways NAT para acesso externo à Internet

Regiões e zonas de disponibilidade

HealthOmics Os fluxos de trabalho operam nas seguintes regiões e zonas de disponibilidade. Ao criar sua VPC, certifique-se de que suas sub-redes estejam em uma ou mais dessas zonas de disponibilidade.

Região Nome da zona de disponibilidade ID da zona de disponibilidade
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
us-east-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-sudeste-1a apse1-az2
ap-sudeste-1b apse1-az1
ap-sudeste-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-nordeste-2a apne2-az1
ap-nordeste-2b apne2-az2
ap-nordeste-2c apne2-az3
  1. No console da Amazon VPC, escolha Create VPC.

  2. Selecione VPC e muito mais para criar automaticamente uma VPC com sub-redes públicas e privadas.

  3. Configure as seguintes opções:

    • Número de zonas de disponibilidade: 2 ou mais

    • Número de sub-redes públicas: uma por AZ. Neste exemplo, 2

    • Número de sub-redes privadas: uma por AZ. Neste exemplo, 2

    • Gateways NAT: 1 por AZ (para produção) ou 1 (para) development/testing

    • Endpoints VPC: endpoint do S3 Gateway (opcional — o tráfego do Amazon S3 na região é roteado pelo serviço VPC por padrão) HealthOmics

Ao criar sua configuração de HealthOmics VPC, especifique as sub-redes privadas. As execuções usam o gateway NAT na sub-rede pública para acessar a Internet.

VPC endpoints para serviços AWS

Você pode configurar VPC endpoints para permitir que execuções acessem AWS serviços sem atravessar a Internet pública. Isso melhora a segurança e pode reduzir os custos de transferência de dados.

Importante

Se sua definição de fluxo de trabalho precisar acessar AWS serviços (como consultas do Amazon Athena, operações do Amazon DynamoDB ou outras chamadas de API), você deve garantir que os endpoints de VPC necessários estejam configurados em sua VPC. Sem os endpoints apropriados, seu fluxo de trabalho pode falhar com erros de autenticação ou conectividade.

nota

In-Region O tráfego do Amazon S3 é roteado por meio do serviço HealthOmics VPC por padrão. Se você configurar endpoints de interface do Amazon S3, o tráfego será roteado por meio de sua VPC. Recomendamos o uso de endpoints de gateway Amazon S3 para obter melhor desempenho e otimização de custos. Para obter mais informações, consulte Endpoints de gateway para Amazon S3 no AWS PrivateLink Guia.

A tabela a seguir lista os endpoints VPC mais usados para execuções: HealthOmics

Serviço Endpoint type Nome do endpoint
Amazon S3 Gateway com.amazonaws. region.s3
Tabelas do Amazon S3 Interface com.amazonaws. region.tabelas s3
Amazon ECR (API) Interface com.amazonaws. region.ecr.api
Amazon ECR (Docker) Interface com.amazonaws. region.ecr.dkr
SSM Interface com.amazonaws. region.sms
CloudWatch Registros Interface com.amazonaws. region.registros
Amazon Athena Interface com.amazonaws. region.atena

A lista completa de serviços que você pode acessar por meio de AWS PrivateLink endpoints pode ser encontrada em AWS serviços que se integram a. AWS PrivateLink Para obter instruções detalhadas de configuração do endpoint, consulte Acesse AWS os serviços AWS PrivateLink no AWS PrivateLink Guia.

Requisitos do NAT Gateway

Para corridas que exigem acesso público à Internet:

  • O NAT Gateway deve ser implantado em uma sub-rede pública

  • A sub-rede pública deve ter uma rota para um Internet Gateway

  • As sub-redes privadas (onde as execuções são executadas) devem ter rotas para o NAT Gateway

nota

Os gateways NAT incorrem em cobranças horárias e taxas de processamento de dados. Para otimizar os custos, considere usar VPC endpoints para acesso ao AWS serviço em vez de rotear por meio do NAT Gateway.

Configuração do security group

Configure seus grupos de segurança para permitir o tráfego de saída para os destinos que suas corridas precisam acessar:

  • Acesso público à Internet — Permitir tráfego HTTPS de saída (porta 443). Adicione regras para outros protocolos conforme necessário, como HTTP (porta 80).

  • Serviços específicos — configure regras com base em seus requisitos.

  • On-premises recursos — Permita tráfego para seus intervalos de VPN ou CIDR.

O exemplo a seguir mostra uma regra de grupo de segurança para acesso público à Internet:

Tipo Protocolo Intervalo de portas Destino Description
HTTPS TCP 443 0.0.0. 0/0 Permitir HTTPS na internet

Configuração da tabela de rotas

Certifique-se de que suas sub-redes privadas tenham entradas na tabela de rotas que direcionem o tráfego vinculado à Internet para um gateway NAT:

Destination (Destino) Alvo
10.0.0. 0/16 local
0.0.0. 0/0 nat-xxxxxxxx

Para acessar recursos locais, configure rotas para um gateway ou gateway privado virtual.

Permissões do IAM para AWS serviços

Quando suas tarefas de fluxo de trabalho acessam AWS serviços como Amazon Athena, AWS Glue ou Amazon DynamoDB no modo de rede VPC, você deve adicionar as permissões necessárias à função de serviço que você passa para a API. StartRun Sem essas permissões, suas tarefas de fluxo de trabalho falharão AccessDeniedException ou apresentarão UnauthorizedException erros.

Importante

As permissões da função de serviço são separadas da configuração da rede VPC. Mesmo com endpoints de VPC e grupos de segurança configurados corretamente, seu fluxo de trabalho falhará se a função de serviço não tiver as permissões necessárias do IAM.

Se seu fluxo de trabalho falhar com erros de permissão, verifique os CloudWatch registros de registros da execução do fluxo de trabalho. As mensagens de erro comuns incluem AccessDeniedException: You are not authorized to perform: action on the resource (a função de serviço não tem a permissão necessária do IAM) ou UnrecognizedClientException: The security token included in the request is invalid (a política de confiança da função de serviço pode estar configurada incorretamente ou o ARN da função passado StartRun está incorreto).

Permissões de serviço comuns

Os exemplos a seguir mostram as permissões do IAM para AWS serviços comumente usados nos fluxos de trabalho do modo VPC. Adicione essas permissões à sua política de função de serviço com base nos serviços que seu fluxo de trabalho acessa.

exemplo permissões

Para fluxos de trabalho que executam consultas:

{ "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StopQueryExecution" ], "Resource": "arn:aws:athena:region:account-id:workgroup/workgroup-name" }
exemplo AWS Glue Permissões do catálogo de dados

Para fluxos de trabalho que acessam AWS Glue bancos de dados e tabelas (normalmente usados com o 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 você usa AWS Lake Formation para gerenciar permissões para seu Catálogo de AWS Glue Dados, também deve conceder as permissões apropriadas do Lake Formation. Para obter mais informações, consulte as permissões do Lake Formation no Guia do AWS Lake Formation desenvolvedor.

exemplo Permissões do DynamoDB

Para fluxos de trabalho que leem ou gravam em tabelas do DynamoDB:

{ "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:region:account-id:table/table-name" }
exemplo Permissões de tabelas do Amazon S3

Para fluxos de trabalho que leem ou gravam nas tabelas do Amazon S3:

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

O Amazon S3 Tables usa um endpoint diferente do Amazon S3. Você deve configurar um VPC endpoint para tabelas do Amazon S3 e garantir que seu grupo de segurança permita tráfego HTTPS de saída (porta 443) para o serviço Amazon S3 Tables.

Testando a conectividade VPC

Antes de executar fluxos de trabalho de produção, valide se sua configuração de VPC permite conectividade com os serviços externos necessários.

Crie um fluxo de trabalho de teste

Crie um fluxo de trabalho simples que teste a conectividade com seu serviço externo. Por exemplo, crie um fluxo de trabalho que tente uma conexão TCP com um endpoint de serviço de destino.

Execute o teste

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

Verificar os resultados

Verifique a saída do fluxo de trabalho para confirmar a conectividade bem-sucedida:

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

Se o teste falhar, verifique o seguinte:

  • As regras do grupo de segurança permitem tráfego de saída para as portas e destinos necessários.

  • As tabelas de rotas direcionam o tráfego para um gateway NAT para acesso à Internet.

  • O serviço externo pode ser acessado pela sua rede.

  • ENIs suficientes estão disponíveis em sua conta.

  • O gateway NAT está em uma sub-rede pública com uma rota para um gateway da Internet.

nota

A taxa de transferência da rede começa em 10 Gbps por ENI e aumenta até 100 Gbps em um período de 60 minutos com tráfego sustentado. Para fluxos de trabalho com requisitos imediatos de alto rendimento, entre em contato com o Support. AWS

Exemplos

Acessando dados do NCBI com autenticação de API

Este exemplo demonstra como acessar dados do NCBI usando a API de conjuntos de dados do NCBI com autenticação.

Melhores práticas para acessar os recursos do NCBI

Os clientes devem usar a API REST sempre que possível e utilizar uma chave de API fornecida pelo NCBI. As solicitações para acessar recursos do NCBI, como solicitações HTTP e FTP para dados públicos, virão HealthOmics e serão limitadas de acordo com a taxa de terceiros definida pelo NCBI. Você pode ter falhas de execução devido a erros de limitação durante o pico de uso. Recomendamos que os usuários obtenham sua própria chave de API NCBI e utilizem APIs especializadas para permitir maior simultaneidade e uma melhor experiência de desenvolvimento.

Para obter sua chave de API NCBI, visite a documentação de chaves de API NCBI.

Exemplo de definição de fluxo de trabalho:

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" } }

Pontos-chave:

  • <YOUR_API_KEY>Substitua por sua chave de API NCBI real

  • O fluxo de trabalho usa HTTPS para acessar a API de conjuntos de dados NCBI

  • A chave de API é passada como um parâmetro de URL

  • Essa abordagem fornece limites de taxa mais altos (10 solicitações por segundo) em comparação com o acesso não autenticado (5 solicitações por segundo)

Para obter mais informações sobre chaves e limites de taxa da API NCBI, consulte a documentação da API NCBI Datasets.

Práticas recomendadas

  1. Use endpoints VPC para serviços. AWS Configure endpoints VPC para Amazon S3, Amazon ECR e outros AWS serviços para reduzir os custos do gateway NAT e melhorar o desempenho. Para obter mais informações, consulte VPC endpoints para serviços AWS.

  2. Monitore os custos da rede. A rede VPC gera custos com gateways NAT, transferência de dados e ENIs. Monitore seu uso com o AWS Cost Explorer.

  3. Planeje as zonas de disponibilidade. Certifique-se de que suas sub-redes abranjam as zonas de disponibilidade onde HealthOmics opera para apoiar o posicionamento do fluxo de trabalho.

  4. Use gateways NAT em cada AZ. Para cargas de trabalho de produção, implante um gateway NAT em cada zona de disponibilidade para fornecer redundância.