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