Attribuer aux tâches d'entraînement SageMaker l'accès aux ressources de votre Amazon VPC - Amazon SageMaker

Attribuer aux tâches d'entraînement SageMaker l'accès aux ressources de votre Amazon VPC

Note

Pour les tâches d'entraînement, vous pouvez uniquement configurer des sous-réseaux avec un VPC de location par défaut dans lequel votre instance s'exécute sur un matériel partagé. Pour de plus amples informations sur l'attribut de location pour les VPC, veuillez consulter Instances dédiées.

Configuration d'une tâche d'entraînement pour l'accès à Amazon VPC

Pour spécifier les sous-réseaux et les groupes de sécurité dans votre VPC privé, utilisez le paramètre de demande VpcConfig de l'API CreateTrainingJob ou fournissez ces informations lorsque vous créez une tâche d'entraînement dans la console SageMaker. SageMaker utilise ces informations pour créer des interfaces réseau et les attacher à vos conteneurs d'entraînement. Les interfaces réseau fournissent à vos conteneurs d'entraînement une connexion réseau au sein de votre VPC qui n'est pas connecté à Internet. Elles permettent également à votre tâche d'entraînement de se connecter aux ressources de votre VPC privé.

Voici un exemple du paramètre VpcConfig que vous incluez dans votre appel à CreateTrainingJob :

VpcConfig: { "Subnets": [ "subnet-0123456789abcdef0", "subnet-0123456789abcdef1", "subnet-0123456789abcdef2" ], "SecurityGroupIds": [ "sg-0123456789abcdef0" ] }

Configuration de votre VPC privé pour l'entraînement SageMaker

Lorsque vous configurez le VPC privé pour vos tâches d'entraînement SageMaker, suivez les recommandations suivantes. Pour obtenir des informations sur la configuration d'un VPC, veuillez consulter Utilisation de VPC et de sous-réseaux dans le Guide de l'utilisateur Amazon VPC.

S'assurer que les sous-réseaux ont suffisamment d'adresses IP

Vos sous-réseaux VPC doivent avoir au moins deux adresses IP privées pour chaque instance dans une tâche d'entraînement. Pour plus d'informations, veuillez consulter Dimensionnement des VPC et des sous-réseaux pour IPv4 dans le Guide de l'utilisateur Amazon VPC.

Création d'un point de terminaison d'un VPC Amazon S3

Si vous configurez votre VPC afin que les conteneurs d'entraînement n'aient pas accès à Internet, ils ne peuvent pas se connecter aux compartiments Amazon S3 qui contiennent vos données d'entraînement, sauf si vous créez un point de terminaison d'un VPC autorisant l'accès. En créant un point de terminaison de VPC, vous permettez à vos conteneurs d'entraînement d'accéder aux compartiments où vous stockez vos données et les artefacts de modèle. Nous vous recommandons de créer également une stratégie personnalisée autorisant uniquement les demandes d'accès à vos compartiments S3 provenant de votre VPC privé. Pour plus d'informations, veuillez consulter Points de terminaison pour Amazon S3.

Création d'un point de terminaison de VPC S3

  1. Ouvrez la console Amazon VPC à l'adresse https://console.aws.amazon.com/vpc/.

  2. Dans le volet de navigation, choisissez Endpoints (Points de terminaison), puis Create Endpoint (Créer un point de terminaison).

  3. Pour Service Name (Nom de service), recherchez com.amazonaws.region.s3, region correspondant au nom de la région où se trouve votre VPC.

  4. Choisissez le type Gateway (Passerelle).

  5. Pour VPC, choisissez le VPC que vous voulez utiliser pour ce point de terminaison.

  6. Pour Configurer les tables de routage, sélectionnez les tables de routage à utiliser par le point de terminaison. Le service de VPC ajoute automatiquement un routage à chaque table de routage que vous sélectionnez et qui dirige le trafic S3 vers le nouveau point de terminaison.

  7. Pour Policy (Stratégie), choisissez Full Access (Accès total) pour autoriser un accès total au service S3 par n'importe quel utilisateur ou service au sein du VPC. Choisissez Custom (Personnalisé) pour restreindre l'accès davantage. Pour de plus amples informations, veuillez consulter Utilisez une stratégie de point de terminaison personnalisée pour limiter l'accès à S3.

Utilisez une stratégie de point de terminaison personnalisée pour limiter l'accès à S3

Par défaut, la stratégie de point de terminaison autorise un accès total à S3 pour n'importe quel utilisateur ou service au sein de votre VPC. Pour limiter l'accès à S3, créez une stratégie de point de terminaison personnalisé. Pour de plus amples informations, veuillez consulter Utilisation des politiques de point de terminaison pour Amazon S3. Vous pouvez également utiliser une politique de compartiment pour restreindre l'accès à vos compartiments S3 uniquement au trafic issu de votre Amazon VPC. Pour obtenir des informations, veuillez consulter Utilisation de politiques de compartiment Amazon S3.

Restreindre l'installation de packages sur le conteneur d'entraînement

La stratégie de point de terminaison par défaut permet aux utilisateurs d'installer des packages à partir des référentiels Amazon Linux et Amazon Linux 2 sur le conteneur d'entraînement. Si vous ne voulez pas que les utilisateurs installent des packages à partir de ce référentiel, créez une stratégie de point de terminaison personnalisée qui refuse explicitement l'accès aux référentiels Amazon Linux et Amazon Linux 2. Voici un exemple de stratégie qui refuse l'accès à ces référentiels :

{ "Statement": [ { "Sid": "AmazonLinuxAMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::packages.*.amazonaws.com/*", "arn:aws:s3:::repo.*.amazonaws.com/*" ] } ] } { "Statement": [ { "Sid": "AmazonLinux2AMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::amazonlinux.*.amazonaws.com/*" ] } ] }

Configuration des tables de routage

Utilisez les paramètres DNS par défaut pour votre table de routage de point de terminaison, afin que les URL Amazon S3 standard (par exemple, http://s3-aws-region.amazonaws.com/MyBucket) soient résolues. Si vous n'utilisez pas les paramètres DNS par défaut, veillez à ce que les URL que vous utilisez pour spécifier l'emplacement des données dans vos tâches d'entraînement soient résolues en configurant les tables de routage de point de terminaison. Pour obtenir des informations sur les tables de routage de point de terminaison d'un VPC, veuillez consulter Routage des points de terminaison de passerelle dans le Guide de l'utilisateur Amazon VPC.

Configurer le groupe de sécurité VPC

Dans un entraînement distribué, vous devez autoriser la communication entre les différents conteneurs d'une même tâche d'entraînement. Pour ce faire, configurez une règle pour votre groupe de sécurité qui autorise les connexions entrantes entre les membres du même groupe de sécurité. Pour plus d'informations, consultez Règles des groupes de sécurité.

Connexion à des ressources en dehors de votre VPC

Si vous configurez votre VPC de façon à ce qu'il ne dispose pas d'un accès Internet, les tâches d'entraînement qui utilisent ce VPC n'ont pas accès aux ressources en dehors de votre VPC. Si vos tâches d'entraînement ont besoin d'accéder à des ressources en dehors de votre VPC, fournissez-leur l'accès en effectuant l'une des actions suivantes :

  • Si votre tâche d'entraînement a besoin d'accéder à un service AWS qui prend en charge les points de terminaison de VPC d'interface, créez un point de terminaison pour vous connecter à ce service. Pour obtenir la liste des services qui prennent en charge les points de terminaison d'interface, veuillez consulter Points de terminaison d'un VPC dans le Guide de l'utilisateur Amazon VPC. Pour obtenir des informations sur la création d'un point de terminaison d'un VPC d'interface, veuillez consulter Points de terminaison d'un VPC d'interface (AWS) dans le Guide de l'utilisateur Amazon VPC.

  • Si votre tâche d'entraînement a besoin d'accéder à un service AWS qui ne prend pas en charge les points de terminaison d'un VPC d'interface ou à une ressource en dehors d'AWS, créez une passerelle NAT et configurez vos groupes de sécurité pour qu'ils autorisent les connexions sortantes. Pour plus d'informations sur la configuration d'une passerelle NAT pour votre VPC, consultez Scénario 2 : VPC avec des sous-réseaux publics et privés (NAT) dans le Guide de l'utilisateur Amazon Virtual Private Cloud.