View a markdown version of this page

Acceso a Internet para VPC-connected flujos de trabajo - AWS HealthOmics

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso a Internet para VPC-connected flujos de trabajo

Cuando conectas una AWS HealthOmics ejecución a una VPC, la ejecución solo puede acceder a los recursos disponibles en esa VPC. Para que tu ejecución tenga acceso a la Internet pública o a AWS servicios fuera de la VPC, debes configurar tu VPC con los recursos de red adecuados.

En este tema se describe cómo configurar la VPC para que proporcione acceso a Internet y una conectividad eficiente a AWS los servicios para sus ejecuciones. VPC-connected Para obtener información sobre cómo conectar las ejecuciones a una VPC, consulte. Conexión de HealthOmics flujos de trabajo a una VPC

importante

La conexión de una ejecución a una subred pública no le proporciona acceso a Internet ni una dirección IP pública. Utilice siempre subredes privadas con rutas de puerta de enlace NAT para las ejecuciones que requieran conectividad a Internet.

Configurar una VPC con acceso a Internet

Para dar acceso a Internet a tus VPC-connected runs, crea una VPC con subredes privadas que dirijan el tráfico saliente a través de una puerta de enlace NAT.

Esta configuración proporciona:

  • Subredes privadas para tareas de HealthOmics flujo de trabajo

  • Subredes públicas con pasarelas NAT para el acceso saliente a Internet

Regiones y zonas de disponibilidad admitidas

HealthOmics Workflows funciona en las siguientes regiones y zonas de disponibilidad. Al crear la VPC, asegúrese de que las subredes estén en una o más de estas zonas de disponibilidad.

Region Nombre de la zona de disponibilidad ID de zona de disponibilidad
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-sudeest-1a apse1-az2
ap-sudeest-1b apse1-az1
ap-sudeest-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-northeast-2a apne2-az1
ap-nordeest-2b apne2-az2
ap-nordeest-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. En la consola de Amazon VPC, elija Create VPC.

  2. Seleccione VPC y más para crear automáticamente una VPC con subredes públicas y privadas.

  3. Configure los siguientes ajustes:

    • Cantidad de zonas de disponibilidad: 2 o más

    • Cantidad de subredes públicas: una por zona de disponibilidad. En este ejemplo, 2

    • Cantidad de subredes privadas: una por zona de disponibilidad. En este ejemplo, 2

    • Puertas de enlace NAT: 1 por AZ (para producción) o 1 (para development/testing)

    • Puntos de enlace de VPC: punto de enlace de S3 Gateway (opcional: el tráfico de Amazon S3 dentro de la región se enruta a través de la HealthOmics VPC de servicio de forma predeterminada)

Al crear la configuración de la HealthOmics VPC, especifique las subredes privadas. Las ejecuciones utilizan la puerta de enlace NAT de la subred pública para acceder a Internet.

Puntos finales de VPC para AWS servicios

Puede configurar los puntos de enlace de la VPC para permitir que los usuarios accedan a los AWS servicios sin tener que atravesar la Internet pública. Esto mejora la seguridad y puede reducir los costos de transferencia de datos.

importante

Si su definición de flujo de trabajo necesita acceder a AWS servicios (como las consultas de Amazon Athena, las operaciones de Amazon DynamoDB u otras llamadas a la API), debe asegurarse de que los puntos de enlace de la VPC necesarios estén configurados en la VPC. Sin los puntos de enlace adecuados, es posible que su flujo de trabajo falle y provoque errores de autenticación o conectividad.

nota

In-Region El tráfico de Amazon S3 se enruta a través de la VPC de HealthOmics servicio de forma predeterminada. Si configura los puntos de enlace de la interfaz de Amazon S3, en su lugar, el tráfico se dirige a través de la VPC. Recomendamos utilizar los puntos de enlace de Amazon S3 Gateway para optimizar el rendimiento y los costes. Para obtener más información, consulte los puntos de enlace de gateway para Amazon S3 en la AWS PrivateLink guía.

En la siguiente tabla se enumeran los puntos de enlace de VPC que se utilizan con frecuencia para las ejecuciones: HealthOmics

Servicio Tipo de punto de conexión Endpoint name (Nombre del punto de conexión)
Amazon S3 Puerta de enlace com.amazonaws. region.s3
Tablas de Amazon S3 Interfaz com.amazonaws. region.s3 tablas
Amazon ECR (API) Interfaz com.amazonaws. region.ecr.api
Amazon ECR (Docker) Interfaz com.amazonaws. region.ecr.dkr
SSM Interfaz com.amazonaws. region.ssm
CloudWatch Registros Interfaz com.amazonaws. region.logs
Amazon Athena Interfaz com.amazonaws. region.atenea

Encontrará la lista completa de los servicios a los que puede acceder a través de AWS PrivateLink terminales en los AWS servicios que se integran con. AWS PrivateLink Para obtener instrucciones detalladas sobre la configuración de los terminales, consulte Acceder a AWS los servicios AWS PrivateLink en la AWS PrivateLink Guía.

Requisitos de NAT Gateway

Para carreras que requieren acceso público a Internet:

  • La puerta de enlace NAT debe implementarse en una subred pública

  • La subred pública debe tener una ruta a una puerta de enlace a Internet

  • Las subredes privadas (donde se ejecutan las ejecuciones) deben tener rutas a la puerta de enlace NAT

nota

Las pasarelas NAT incurren en cargos por hora y tarifas de procesamiento de datos. Para optimizar los costos, considere usar puntos finales de VPC para acceder a los AWS servicios en lugar de enrutarlos a través de NAT Gateway.

Configuración del grupo de seguridad

Configura tus grupos de seguridad para permitir que el tráfico saliente llegue a los destinos a los que tus usuarios necesitan acceder:

  • Acceso público a Internet: permita el tráfico HTTPS saliente (puerto 443). Agregue reglas para otros protocolos según sea necesario, como HTTP (puerto 80).

  • Servicios específicos: configure las reglas en función de sus requisitos.

  • On-premises recursos: permita el tráfico a sus rangos de VPN o CIDR.

El siguiente ejemplo muestra una regla de grupo de seguridad para el acceso público a Internet:

Tipo Protocolo Rango de puerto Destino Description (Descripción)
HTTPS TCP 443 0.0.0. 0/0 Permitir HTTPS a Internet

Configuración de la tabla de rutas

Asegúrese de que sus subredes privadas tengan entradas en la tabla de rutas que dirijan el tráfico de Internet a una puerta de enlace NAT:

Destino Target
10.0.0. 0/16 local
0.0.0. 0/0 nat-xxxxxxxxx

Para acceder a los recursos locales, configure las rutas a una puerta de enlace o puerta de enlace privada virtual.

Permisos de IAM para AWS servicios

Cuando tus tareas de flujo de trabajo accedan a AWS servicios como Amazon Athena, AWS Glue o Amazon DynamoDB en modo de red de VPC, debes añadir los permisos necesarios al rol de servicio que transfieres a la API. StartRun Sin estos permisos, las tareas del flujo de trabajo fallarán o generarán errores. AccessDeniedException UnauthorizedException

importante

Los permisos del rol de servicio son independientes de la configuración de red de la VPC. Incluso con los extremos y grupos de seguridad de la VPC correctamente configurados, su flujo de trabajo fallará si la función de servicio carece de los permisos de IAM necesarios.

Si su flujo de trabajo falla debido a errores de permisos, consulte los CloudWatch registros de registro de la ejecución del flujo de trabajo. Entre los mensajes de error más comunes se incluyen los siguientes: AccessDeniedException: You are not authorized to perform: action on the resource (al rol de servicio le falta el permiso de IAM necesario) o UnrecognizedClientException: The security token included in the request is invalid (la política de confianza del rol de servicio puede estar mal configurada o el ARN del rol al que se ha transferido el ARN StartRun es incorrecto).

Permisos de servicio comunes

Los siguientes ejemplos muestran los permisos de IAM para los AWS servicios de uso común en los flujos de trabajo en modo VPC. Agregue estos permisos a su política de roles de servicio en función de los servicios a los que acceda su flujo de trabajo.

ejemplo permisos

Para los flujos de trabajo que ejecutan consultas:

{ "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StopQueryExecution" ], "Resource": "arn:aws:athena:region:account-id:workgroup/workgroup-name" }
ejemplo AWS Glue Permisos de catálogo de datos

Para los flujos de trabajo que acceden a AWS Glue bases de datos y tablas (que se utilizan habitualmente 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

Si lo usa AWS Lake Formation para administrar los permisos de su catálogo de AWS Glue datos, también debe otorgar los permisos apropiados de Lake Formation. Para obtener más información, consulte los permisos de Lake Formation en la Guía para AWS Lake Formation desarrolladores.

ejemplo Permisos de DynamoDB

Para los flujos de trabajo que leen tablas de DynamoDB o escriben en ellas:

{ "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:region:account-id:table/table-name" }
ejemplo Permisos de tablas de Amazon S3

Para los flujos de trabajo que leen o escriben en tablas de Amazon S3:

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

Amazon S3 Tables utiliza un punto final diferente al de Amazon S3. Debe configurar un punto de enlace de VPC para las tablas de Amazon S3 y asegurarse de que su grupo de seguridad permita el tráfico HTTPS saliente (puerto 443) al servicio Amazon S3 Tables.

Probar la conectividad de la VPC

Antes de ejecutar los flujos de trabajo de producción, compruebe que la configuración de la VPC permite la conectividad con los servicios externos necesarios.

Cree un flujo de trabajo de prueba

Cree un flujo de trabajo sencillo que pruebe la conectividad con su servicio externo. Por ejemplo, cree un flujo de trabajo que intente establecer una conexión TCP a un punto final del servicio de destino.

Ejecute la prueba

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 los resultados

Compruebe el resultado del flujo de trabajo para confirmar que la conectividad se ha realizado correctamente:

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

Si la prueba falla, compruebe lo siguiente:

  • Las reglas del grupo de seguridad permiten el tráfico saliente a los puertos y destinos requeridos.

  • Las tablas de rutas dirigen el tráfico a una puerta de enlace NAT para acceder a Internet.

  • Se puede acceder al servicio externo desde la red.

  • Hay suficientes ENI disponibles en su cuenta.

  • La puerta de enlace NAT se encuentra en una subred pública con una ruta a una puerta de enlace de Internet.

nota

El rendimiento de la red comienza en 10 Gbps por ENI y se amplía hasta 100 Gbps en un período de 60 minutos con un tráfico sostenido. Para flujos de trabajo con requisitos inmediatos de alto rendimiento, póngase en contacto con el servicio de asistencia. AWS

Ejemplos

Acceso a los datos del NCBI con la autenticación mediante API

En este ejemplo se muestra cómo acceder a los datos del NCBI mediante la API de conjuntos de datos del NCBI con autenticación.

Mejores prácticas para acceder a los recursos del NCBI

Los clientes deben usar la API REST siempre que sea posible y utilizar una clave de API proporcionada por NCBI. Las solicitudes de acceso a los recursos del NCBI, como las solicitudes HTTP y FTP de datos públicos, procederán del NCBI HealthOmics y se limitarán a la tarifa de terceros establecida por el NCBI. Es posible que se produzcan errores de ejecución debido a errores de limitación durante los picos de uso. Recomendamos a los usuarios que obtengan su propia clave de API del NCBI y utilicen API especializadas para permitir una mayor concurrencia y una mejor experiencia de desarrollo.

Para obtener tu clave de API de NCBI, consulta la documentación sobre las claves de API de NCBI.

Ejemplo de definición de flujo de trabajo:

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

Puntos clave:

  • <YOUR_API_KEY>Sustitúyala por tu clave de API NCBI actual

  • El flujo de trabajo usa HTTPS para acceder a la API de conjuntos de datos del NCBI

  • La clave de API se pasa como parámetro de URL

  • Este enfoque proporciona límites de velocidad más altos (10 solicitudes por segundo) en comparación con el acceso no autenticado (5 solicitudes por segundo)

Para obtener más información sobre las claves de la API del NCBI y los límites de velocidad, consulte la documentación de la API de conjuntos de datos del NCBI.

Prácticas recomendadas

  1. Utilice los puntos de enlace de la VPC para los servicios. AWS Configure los puntos de enlace de VPC para Amazon S3, Amazon ECR y otros AWS servicios para reducir los costos de las pasarelas NAT y mejorar el rendimiento. Para obtener más información, consulte Puntos finales de VPC para AWS servicios.

  2. Supervise los costos de la red. Las redes de VPC generan costos para las pasarelas NAT, la transferencia de datos y las ENI. Supervise su uso con Cost Explorer. AWS

  3. Planifique las zonas de disponibilidad. Asegúrese de que sus subredes abarquen las zonas de disponibilidad en las que HealthOmics opera para permitir la colocación del flujo de trabajo.

  4. Utilice puertas de enlace NAT en cada zona de disponibilidad. Para las cargas de trabajo de producción, implemente una puerta de enlace NAT en cada zona de disponibilidad para proporcionar redundancia.