

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
<a name="workflows-vpc-internet"></a>

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](workflows-vpc-networking.md)

**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.

**Topics**
+ [Configurando uma VPC com acesso à Internet](#vpc-internet-setup)
+ [VPC endpoints para serviços AWS](#vpc-endpoints)
+ [Configuração do security group](#vpc-internet-security-groups)
+ [Configuração da tabela de rotas](#vpc-internet-route-tables)
+ [Permissões do IAM para AWS serviços](#vpc-iam-permissions)
+ [Testando a conectividade VPC](#vpc-testing-connectivity)
+ [Exemplos](#vpc-internet-examples)
+ [Práticas recomendadas](#vpc-internet-best-practices)

## Configurando uma VPC com acesso à Internet
<a name="vpc-internet-setup"></a>

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
<a name="vpc-internet-regions-azs"></a>

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.



- **us-west-2**
  - **Nome da zona de disponibilidade:** us-west-2a / **ID da zona de disponibilidade:** usw2-az2
  - **Nome da zona de disponibilidade:** us-west-2b / **ID da zona de disponibilidade:** usw2-az1
  - **Nome da zona de disponibilidade:** us-west-2c / **ID da zona de disponibilidade:** usw2-az3
  - **Nome da zona de disponibilidade:** us-west-2d / **ID da zona de disponibilidade:** usw2-az4

- **us-east-1**
  - **Nome da zona de disponibilidade:** us-east-1a / **ID da zona de disponibilidade:** use1-az4
  - **Nome da zona de disponibilidade:** us-east-1b / **ID da zona de disponibilidade:** use1-az6
  - **Nome da zona de disponibilidade:** us-east-1c / **ID da zona de disponibilidade:** use1-az1
  - **Nome da zona de disponibilidade:** us-east-1d / **ID da zona de disponibilidade:** use1-az2
  - **Nome da zona de disponibilidade:** us-east-1f / **ID da zona de disponibilidade:** use1-az5

- **eu-west-1**
  - **Nome da zona de disponibilidade:** eu-west-1a / **ID da zona de disponibilidade:** euw1-az2
  - **Nome da zona de disponibilidade:** eu-west-1b / **ID da zona de disponibilidade:** euw1-az3
  - **Nome da zona de disponibilidade:** eu-west-1c / **ID da zona de disponibilidade:** euw1-az1

- **eu-central-1**
  - **Nome da zona de disponibilidade:** eu-central-1a / **ID da zona de disponibilidade:** euc1-az2
  - **Nome da zona de disponibilidade:** eu-central-1b / **ID da zona de disponibilidade:** euc1-az3
  - **Nome da zona de disponibilidade:** eu-central-1c / **ID da zona de disponibilidade:** euc1-az1

- **eu-west-2**
  - **Nome da zona de disponibilidade:** eu-west-2a / **ID da zona de disponibilidade:** euw2-az2
  - **Nome da zona de disponibilidade:** eu-west-2b / **ID da zona de disponibilidade:** euw2-az3
  - **Nome da zona de disponibilidade:** eu-west-2c / **ID da zona de disponibilidade:** euw2-az1

- **ap-southeast-1**
  - **Nome da zona de disponibilidade:** ap-sudeste-1a / **ID da zona de disponibilidade:** apse1-az2
  - **Nome da zona de disponibilidade:** ap-sudeste-1b / **ID da zona de disponibilidade:** apse1-az1
  - **Nome da zona de disponibilidade:** ap-sudeste-1c / **ID da zona de disponibilidade:** apse1-az3

- **il-central-1**
  - **Nome da zona de disponibilidade:** il central-1a / **ID da zona de disponibilidade:** ilc1-az1
  - **Nome da zona de disponibilidade:** il central-1b / **ID da zona de disponibilidade:** ilc1-az2
  - **Nome da zona de disponibilidade:** il central-1c / **ID da zona de disponibilidade:** ilc1-az3

- **ap-northeast-2**
  - **Nome da zona de disponibilidade:** ap-nordeste-2a / **ID da zona de disponibilidade:** apne2-az1
  - **Nome da zona de disponibilidade:** ap-nordeste-2b / **ID da zona de disponibilidade:** apne2-az2
  - **Nome da zona de disponibilidade:** ap-nordeste-2c / **ID da zona de disponibilidade:** apne2-az3



1. No console da Amazon VPC, escolha Create **VPC**.

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

1. 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
<a name="vpc-endpoints"></a>

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](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) 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](https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html) Para obter instruções detalhadas de configuração do endpoint, consulte [Acesse AWS os serviços AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html) no *AWS PrivateLink Guia*.

### Requisitos do NAT Gateway
<a name="vpc-nat-gateway-requirements"></a>

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
<a name="vpc-internet-security-groups"></a>

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
<a name="vpc-internet-route-tables"></a>

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
<a name="vpc-iam-permissions"></a>

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
<a name="vpc-iam-common-services"></a>

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.

**Example 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}}"
}
```

**Example 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}}/*"
  ]
}
```
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](https://docs.aws.amazon.com/lake-formation/latest/dg/lake-formation-permissions.html) no *Guia do AWS Lake Formation desenvolvedor*.

**Example 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}}"
}
```

**Example 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}}"
}
```
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
<a name="vpc-testing-connectivity"></a>

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
<a name="vpc-test-workflow"></a>

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
<a name="vpc-run-test"></a>

```
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
<a name="vpc-verify-results"></a>

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
<a name="vpc-internet-examples"></a>

### Acessando dados do NCBI com autenticação de API
<a name="vpc-example-ncbi"></a>

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](https://www.ncbi.nlm.nih.gov/datasets/docs/v2/api/api-keys/).

**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](https://www.ncbi.nlm.nih.gov/datasets/docs/v2/api/api-keys/) Datasets.

## Práticas recomendadas
<a name="vpc-internet-best-practices"></a>

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](#vpc-endpoints).

1. **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.

1. **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.

1. **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.