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

Al conectar una AWS HealthOmics ejecución a una VPC, la ejecución solo puede acceder a los recursos disponibles en esa VPC. Para permitir que su ejecución acceda a la Internet pública o a AWS los servicios externos a la VPC, debe configurar la VPC con los recursos de red adecuados.

En este tema se describe cómo configurar la VPC para proporcionar acceso a Internet y una conectividad eficiente a AWS los servicios durante sus VPC-connected carreras. Para obtener información sobre la conexión de 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 carreras que requieran conectividad a Internet.

Configuración de una VPC con acceso a Internet

Para que sus VPC-connected carreras tengan acceso a Internet, cree una VPC con subredes privadas que enruten 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 puertas de enlace NAT para el acceso saliente a Internet

Regiones y zonas de disponibilidad admitidas

HealthOmics Los flujos de trabajo funcionan 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-southeast-1a apse1-az2
ap-southeast-1b apse1-az1
ap-southeast-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-northeast-2b apne2-az2
ap-northeast-2c apne2-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:

    • Número de zonas de disponibilidad: 2 o más

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

    • Número 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 en la región se enruta a través de la VPC del HealthOmics servicio de forma predeterminada)

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

Terminales de VPC para servicios AWS

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

importante

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

nota

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

En la siguiente tabla se enumeran los puntos finales de VPC que se utilizan con más 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. regionTablas.s3
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.athena

La lista completa de los servicios a los que puede acceder a través de los AWS PrivateLink puntos finales se encuentra en AWS los 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 un Internet Gateway

  • 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 por procesamiento de datos. Para optimizar los costos, considere usar puntos finales de VPC para el acceso al AWS servicio en lugar de enrutarlo a través de NAT Gateway.

Configuración del grupo de seguridad

Configure sus grupos de seguridad para permitir que el tráfico saliente llegue a los destinos a los que deben acceder sus carreras:

  • 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 que el tráfico llegue 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 el acceso a HTTPS a Internet

Configuración de la tabla de rutas

Asegúrese de que sus subredes privadas tengan entradas en la tabla de enrutamiento que dirijan el tráfico con destino a 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 los servicios AWS

Cuando sus tareas de flujo de trabajo accedan a AWS servicios como Amazon Athena, AWS Glue o Amazon DynamoDB en el modo de red de VPC, debe añadir los permisos necesarios al rol de servicio que transfiere a la API. StartRun Sin estos permisos, las tareas de flujo de trabajo fallarán o se producirán errores. AccessDeniedException UnauthorizedException

importante

Los permisos de la función de servicio son independientes de la configuración de red de la VPC. Incluso con los puntos finales de VPC y los grupos de seguridad configurados correctamente, el 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, compruebe los CloudWatch registros correspondientes a la ejecución del flujo de trabajo. Los mensajes de error más comunes incluyen AccessDeniedException: You are not authorized to perform: action on the resource (al rol de servicio le falta el permiso de IAM requerido) 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 le StartRun ha pasado es incorrecto).

Permisos de servicio comunes

Los siguientes ejemplos muestran los permisos de IAM para los AWS servicios que se utilizan con más frecuencia 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 del catálogo de datos

Para los flujos de trabajo que acceden a AWS Glue bases de datos y tablas (normalmente se utilizan 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 utiliza AWS Lake Formation para administrar los permisos de su catálogo de AWS Glue datos, también debe conceder los permisos de Lake Formation correspondientes. Para obtener más información, consulta 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 o escriben en tablas de DynamoDB:

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

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 de enlace diferente al de Amazon S3. Debe configurar un punto de enlace de VPC para Amazon S3 Tables y asegurarse de que su grupo de seguridad permita el tráfico HTTPS saliente (puerto 443) al servicio Amazon S3 Tables.

Prueba de conectividad de VPC

Antes de ejecutar los flujos de trabajo de producción, compruebe que la configuración de la VPC permita 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 no es satisfactoria, compruebe lo siguiente:

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

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

  • Se puede acceder al servicio externo desde su 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 tráfico continuo. Para flujos de trabajo con requisitos inmediatos de alto rendimiento, póngase en contacto con Support AWS .

Ejemplos

Acceso a los datos del NCBI con 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 el NCBI. Las solicitudes de acceso a los recursos del NCBI, como las solicitudes HTTP y FTP de datos públicos, procederán de terceros HealthOmics y se limitarán según la tarifa de terceros establecida por el NCBI. Es posible que se produzcan errores de ejecución debido a errores de aceleració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 simultaneidad y una mejor experiencia de desarrollo.

Para obtener su clave de API del NCBI, consulte la documentación sobre las claves de API del 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 API NCBI actual

  • El flujo de trabajo utiliza 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 y los límites de velocidad del NCBI, consulte la documentación de la API de conjuntos de datos del NCBI.

Prácticas recomendadas

  1. Utilice puntos finales de VPC para los servicios. AWS Configure los puntos de enlace de VPC para Amazon S3, Amazon ECR y otros AWS servicios a fin de reducir los costes de las puertas de enlace NAT y mejorar el rendimiento. Para obtener más información, consulte Terminales de VPC para servicios AWS.

  2. Supervise los costos de la red. Las redes de VPC generan costos por las puertas de enlace NAT, la transferencia de datos y los ENI. Supervise su consumo con AWS Cost Explorer.

  3. Planifique las zonas de disponibilidad. Asegúrese de que sus subredes abarquen las zonas de disponibilidad en las que HealthOmics opera para respaldar la ubicació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.