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, l'exécution ne peut accéder qu'aux ressources disponibles au sein de ce VPC. Pour vous permettre d'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 de vos VPC-connected courses. Pour plus d'informations sur la connexion des runs à un VPC, consultezConnecter 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 aucune adresse IP publique. Utilisez toujours des sous-réseaux privés avec des itinéraires de passerelle NAT pour les courses nécessitant une connexion Internet.
Rubriques
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-ouest-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-est-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-ouest-2b | euw2-az3 | |
| eu-ouest-2c | euw2-az1 | |
| ap-southeast-1 | ap-sud-est-1a | apse1-az2 |
| ap-sud-est-1b | apse1-az1 | |
| ap-sud-est-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-nord-est-2a | apne2-az1 |
| ap-nord-est-2b | apne2-az2 | |
| ap-nord-est-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 |
-
Dans la console Amazon VPC, choisissez Create VPC.
-
Sélectionnez VPC et plus encore pour créer automatiquement un VPC avec des sous-réseaux publics et privés.
-
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 local est acheminé via le HealthOmics service VPC par défaut)
Lorsque vous créez votre configuration HealthOmics VPC, spécifiez les sous-réseaux privés. Les runs utilisent la passerelle NAT du sous-réseau public pour accéder à Internet.
Points de terminaison VPC pour AWS services
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 la définition de votre 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 acheminé via votre VPC à la place. Nous vous recommandons d'utiliser les points de terminaison de passerelle Amazon S3 pour de meilleures performances et une optimisation des 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 HealthOmics exécutions :
| Service | Type de point de terminaison | Nom du point de terminaison |
|---|---|---|
| Amazon S3 | Passerelle | com.amazonaws. region.s3 |
| Tableaux 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 des AWS PrivateLink terminaux se trouve dans AWS Services qui s'intègrent à 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 avoir une route vers une passerelle Internet
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, envisagez d'utiliser des points de terminaison VPC pour l'accès aux AWS services au lieu d'utiliser le routage via la 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 contiennent 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 des itinéraires vers une passerelle ou une passerelle privée virtuelle.
Autorisations IAM pour AWS services
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 de rôle de service sont distinctes de la configuration réseau du 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 n'a pas 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 relatives au catalogue de données
Pour les flux de travail qui accèdent à des AWS Glue bases de données et à des 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 l'utilisez AWS Lake Formation pour gérer les autorisations pour votre catalogue de AWS Glue données, vous devez également accorder les autorisations appropriées à Lake Formation. Pour plus d'informations, consultez la section Autorisations 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 relatives aux tables Amazon S3
Pour les flux de travail qui lisent ou écrivent dans des 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 Amazon S3 Tables 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 les flux de production, vérifiez que votre configuration 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-idtest-workflow-id\ --role-arnrole-arn\ --output-uri s3://bucket-name/test-outputs/ \ --networking-mode VPC \ --configuration-nameconfiguration-name\ --parameters file://test-parameters.json
Vérifier les résultats
Vérifiez le résultat du flux de travail pour confirmer la bonne connexion :
{ "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 l'accès à 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 peut atteindre 100 Gbit/s sur une période de 60 minutes avec un trafic soutenu. Pour les flux de travail nécessitant un haut débit immédiat, veuillez contacter le AWS support.
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é 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 HealthOmics et seront limitées au débit tiers défini par le NCBI. Vous pouvez rencontrer des échecs d'exécution en raison d'erreurs de régulation pendant les 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 sur les 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 actuelleLe flux de travail utilise HTTPS pour accéder à l'API NCBI Datasets
La clé 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
Utilisez des points de terminaison VPC pour AWS les services. Configurez les points de terminaison VPC pour Amazon S3, Amazon ECR et d'autres AWS services afin de réduire les coûts de passerelle NAT et d'améliorer les performances. Pour de plus amples informations, veuillez consulter Points de terminaison VPC pour AWS services.
Surveillez les coûts du réseau. La mise en réseau VPC entraîne des coûts pour les passerelles NAT, le transfert de données et les ENI. Surveillez votre utilisation avec AWS Cost Explorer.
Planifiez les zones de disponibilité. Assurez-vous que vos sous-réseaux couvrent les zones de disponibilité où HealthOmics opèrent les opérations afin de faciliter le placement des flux de travail.
Utilisez des passerelles NAT dans chaque zone de zone de zone de contrôle. Pour les charges de travail de production, déployez une passerelle NAT dans chaque zone de disponibilité afin d'assurer la redondance.