View a markdown version of this page

Accès à Internet pour les VPC-connected flux de travail - AWS HealthOmics

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Accès à Internet pour les VPC-connected flux de travail

Lorsque vous connectez une AWS HealthOmics exécution à un VPC, celle-ci ne peut accéder qu'aux ressources disponibles au sein de ce VPC. Pour que vous puissiez accéder à l'Internet public ou à AWS des services extérieurs au VPC, vous devez configurer votre VPC avec les ressources réseau appropriées.

Cette rubrique explique comment configurer votre VPC pour fournir un accès Internet et une connectivité efficace aux AWS services pour vos VPC-connected courses. Pour plus d'informations sur la connexion des runs à un VPC, consultez. Connecter HealthOmics des flux de travail à un VPC

Important

La connexion d'un run à un sous-réseau public ne lui donne pas accès à Internet ni d'adresse IP publique. Utilisez toujours des sous-réseaux privés avec des routes de passerelle NAT pour les exécutions nécessitant une connexion Internet.

Configuration d'un VPC avec accès à Internet

Pour permettre à vos VPC-connected courses d'accéder à Internet, créez un VPC avec des sous-réseaux privés qui acheminent le trafic sortant via une passerelle NAT.

Cette configuration fournit :

  • Sous-réseaux privés pour les HealthOmics tâches de flux de travail

  • Sous-réseaux publics avec passerelles NAT pour l'accès Internet sortant

Régions et zones de disponibilité prises en charge

HealthOmics Workflows fonctionne dans les régions et zones de disponibilité suivantes. Lorsque vous créez votre VPC, assurez-vous que vos sous-réseaux se trouvent dans une ou plusieurs de ces zones de disponibilité.

Région Nom de la zone de disponibilité ID de zone de 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
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-ouest-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. Dans la console Amazon VPC, choisissez Create VPC.

  2. Sélectionnez VPC et plus encore pour créer automatiquement un VPC avec des sous-réseaux publics et privés.

  3. Configurez les paramètres suivants :

    • Nombre de zones de disponibilité : 2 ou plus

    • Nombre de sous-réseaux publics : un par AZ. Dans cet exemple, 2

    • Nombre de sous-réseaux privés : un par AZ. Dans cet exemple, 2

    • Passerelles NAT : 1 par AZ (pour la production) ou 1 (pour development/testing)

    • Points de terminaison VPC : point de terminaison S3 Gateway (facultatif : le trafic Amazon S3 de la région est acheminé par défaut via le HealthOmics service VPC)

Lorsque vous créez votre configuration HealthOmics VPC, spécifiez les sous-réseaux privés. Les exécutions utilisent la passerelle NAT du sous-réseau public pour accéder à Internet.

Points de terminaison VPC pour les services AWS

Vous pouvez configurer les points de terminaison VPC pour permettre aux utilisateurs d'accéder aux AWS services sans passer par l'Internet public. Cela améliore la sécurité et peut réduire les coûts de transfert de données.

Important

Si votre définition de flux de travail doit accéder à AWS des services (tels que des requêtes Amazon Athena, des opérations Amazon DynamoDB ou d'autres appels d'API), vous devez vous assurer que les points de terminaison VPC requis sont configurés dans votre VPC. Sans les points de terminaison appropriés, votre flux de travail peut échouer en raison d'erreurs d'authentification ou de connectivité.

Note

In-Region Le trafic Amazon S3 est acheminé via le HealthOmics service VPC par défaut. Si vous configurez les points de terminaison de l'interface Amazon S3, le trafic est plutôt acheminé via votre VPC. Nous vous recommandons d'utiliser les points de terminaison de la passerelle Amazon S3 pour optimiser les performances et les coûts. Pour plus d'informations, consultez la section Points de terminaison Gateway pour Amazon S3 dans le AWS PrivateLink Guide.

Le tableau suivant répertorie les points de terminaison VPC couramment utilisés pour les exécutions : HealthOmics

Service Type de point de terminaison Nom du point de terminaison
Amazon S3 Passerelle com.amazonaws. region.s3
Tables Amazon S3 Interface com.amazonaws. regiontableaux .s3
Amazon ECR (API) Interface com.amazonaws. region.ecr.api
Amazon ECR (Docker) Interface com.amazonaws. region.ecr .dkr
SSM Interface com.amazonaws. region.ssm
CloudWatch Journaux Interface com.amazonaws. region.journaux
Amazon Athena Interface com.amazonaws. region.athéna

La liste complète des services auxquels vous pouvez accéder via les AWS PrivateLink points de terminaison se trouve dans les AWS services intégrés à AWS PrivateLink. Pour obtenir des instructions détaillées sur la configuration des terminaux, reportez-vous à la section Accès aux AWS services AWS PrivateLink dans le AWS PrivateLink Guide.

Exigences relatives à la passerelle NAT

Pour les courses nécessitant un accès public à Internet :

  • La passerelle NAT doit être déployée dans un sous-réseau public

  • Le sous-réseau public doit disposer d'une route vers un Internet Gateway

  • Les sous-réseaux privés (où les exécutions s'exécutent) doivent avoir des routes vers la passerelle NAT

Note

Les passerelles NAT entraînent des frais horaires et des frais de traitement des données. Pour optimiser les coûts, pensez à utiliser des points de terminaison VPC pour l'accès aux AWS services plutôt que le routage via une passerelle NAT.

Configuration du groupe de sécurité

Configurez vos groupes de sécurité pour autoriser le trafic sortant vers les destinations auxquelles vos courses doivent accéder :

  • Accès Internet public : autorise le trafic HTTPS sortant (port 443). Ajoutez des règles pour d'autres protocoles selon vos besoins, tels que HTTP (port 80).

  • Services spécifiques — Configurez les règles en fonction de vos besoins.

  • On-premises ressources — Autorisez le trafic vers vos plages VPN ou CIDR.

L'exemple suivant montre une règle de groupe de sécurité pour l'accès public à Internet :

Type Protocole Plage de ports Destination Description
HTTPS TCP 443 0,0.0. 0/0 Autoriser le HTTPS sur Internet

Configuration de la table de routage

Assurez-vous que vos sous-réseaux privés comportent des entrées de table de routage qui dirigent le trafic Internet vers une passerelle NAT :

Destination Cible
10,0.0. 0/16 local
0,0.0. 0/0 nat-xxxxxxxxx

Pour accéder aux ressources locales, configurez les itinéraires vers une passerelle privée virtuelle ou une passerelle.

Autorisations IAM pour les services AWS

Lorsque vos tâches de flux de travail accèdent à des AWS services tels qu'Amazon Athena, AWS Glue ou Amazon DynamoDB en mode réseau VPC, vous devez ajouter les autorisations nécessaires au rôle de service que vous transmettez à l'API. StartRun Sans ces autorisations, les tâches de votre flux de travail échoueront AccessDeniedException ou entraîneront UnauthorizedException des erreurs.

Important

Les autorisations relatives aux rôles de service sont distinctes de la configuration réseau VPC. Même avec des points de terminaison et des groupes de sécurité VPC correctement configurés, votre flux de travail échouera si le rôle de service ne dispose pas des autorisations IAM requises.

Si votre flux de travail échoue en raison d'erreurs d'autorisation, consultez les CloudWatch journaux relatifs à l'exécution de votre flux de travail. Les messages d'erreur courants incluent AccessDeniedException: You are not authorized to perform: action on the resource (le rôle de service ne dispose pas de l'autorisation IAM requise) ou UnrecognizedClientException: The security token included in the request is invalid (la politique de confiance du rôle de service est peut-être mal configurée ou l'ARN du rôle transmis StartRun est incorrect).

Autorisations de service communes

Les exemples suivants montrent les autorisations IAM pour les AWS services couramment utilisés dans les flux de travail en mode VPC. Ajoutez ces autorisations à votre politique de rôle de service en fonction des services auxquels votre flux de travail accède.

Exemple des autorisations

Pour les flux de travail qui exécutent des requêtes :

{ "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StopQueryExecution" ], "Resource": "arn:aws:athena:region:account-id:workgroup/workgroup-name" }
Exemple AWS Glue Autorisations du catalogue de données

Pour les flux de travail qui accèdent aux AWS Glue bases de données et aux tables (couramment utilisés avec 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/*" ] }
Note

Si vous utilisez AWS Lake Formation pour gérer les autorisations pour votre catalogue de AWS Glue données, vous devez également accorder les autorisations Lake Formation appropriées. Pour plus d'informations, consultez la section Permissions de Lake Formation dans le guide du AWS Lake Formation développeur.

Exemple Autorisations DynamoDB

Pour les flux de travail qui lisent ou écrivent dans des tables DynamoDB :

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

Pour les flux de travail qui lisent ou écrivent dans les tables Amazon S3 :

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

Amazon S3 Tables utilise un point de terminaison différent de celui d'Amazon S3. Vous devez configurer un point de terminaison VPC pour les tables Amazon S3 et vous assurer que votre groupe de sécurité autorise le trafic HTTPS sortant (port 443) vers le service Amazon S3 Tables.

Tester la connectivité VPC

Avant d'exécuter des flux de production, vérifiez que la configuration de votre VPC permet la connectivité aux services externes requis.

Création d'un flux de travail de test

Créez un flux de travail simple qui teste la connectivité à votre service externe. Par exemple, créez un flux de travail qui tente d'établir une connexion TCP vers un point de terminaison de service cible.

Exécutez le 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

Vérifier les résultats

Vérifiez le résultat du flux de travail pour confirmer que la connectivité est réussie :

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

Si le test échoue, vérifiez les points suivants :

  • Les règles des groupes de sécurité autorisent le trafic sortant vers les ports et destinations requis.

  • Les tables de routage dirigent le trafic vers une passerelle NAT pour accéder à Internet.

  • Le service externe est accessible depuis votre réseau.

  • Un nombre suffisant d'ENI sont disponibles sur votre compte.

  • La passerelle NAT se trouve dans un sous-réseau public avec une route vers une passerelle Internet.

Note

Le débit du réseau commence à 10 Gbit/s par ENI et augmente jusqu'à 100 Gbit/s sur une période de 60 minutes avec un trafic soutenu. Pour les flux de travail nécessitant un débit élevé immédiat, veuillez contacter le Support AWS .

Exemples

Accès aux données NCBI avec authentification par API

Cet exemple montre comment accéder aux données NCBI à l'aide de l'API NCBI Datasets avec authentification.

Meilleures pratiques pour accéder aux ressources du NCBI

Les clients doivent utiliser l'API REST dans la mesure du possible et utiliser une clé d'API fournie par le NCBI. Les demandes d'accès aux ressources du NCBI, telles que les requêtes HTTP et FTP pour les données publiques, proviendront de tiers HealthOmics et seront limitées au taux fixé par le NCBI. Il est possible que vous rencontriez des échecs d'exécution en raison d'erreurs de régulation lors des pics d'utilisation. Nous encourageons les utilisateurs à obtenir leur propre clé d'API NCBI et à utiliser des API spécialisées pour permettre une plus grande simultanéité et une meilleure expérience de développement.

Pour obtenir votre clé d'API NCBI, consultez la documentation des clés d'API NCBI.

Exemple de définition de flux de travail :

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

Points clés :

  • <YOUR_API_KEY>Remplacez-la par votre clé d'API NCBI actuelle

  • Le flux de travail utilise le protocole HTTPS pour accéder à l'API NCBI Datasets

  • La clé d'API est transmise en tant que paramètre d'URL

  • Cette approche fournit des limites de débit plus élevées (10 demandes par seconde) par rapport à l'accès non authentifié (5 demandes par seconde)

Pour plus d'informations sur les clés d'API NCBI et les limites de débit, consultez la documentation de l'API NCBI Datasets.

Bonnes pratiques

  1. Utilisez les points de terminaison VPC pour les services. AWS Configurez les points de terminaison VPC pour Amazon S3, Amazon ECR et d'autres AWS services afin de réduire les coûts des passerelles NAT et d'améliorer les performances. Pour de plus amples informations, veuillez consulter Points de terminaison VPC pour les services AWS.

  2. Surveillez les coûts du réseau. Le réseau VPC entraîne des coûts pour les passerelles NAT, le transfert de données et les ENI. Surveillez votre consommation avec AWS Cost Explorer.

  3. Planifiez les zones de disponibilité. Assurez-vous que vos sous-réseaux couvrent les zones de disponibilité dans lesquelles HealthOmics opère le placement des flux de travail.

  4. Utilisez des passerelles NAT dans chaque AZ. Pour les charges de travail de production, déployez une passerelle NAT dans chaque zone de disponibilité afin d'assurer la redondance.