Donner aux tâches de transformation des lots l'accès aux ressources de votre Amazon VPC - Amazon SageMaker

Donner aux tâches de transformation des lots l'accès aux ressources de votre Amazon VPC

Pour contrôler l'accès à vos données et à vos tâches de transformation par lots, nous vous recommandons de créer un Amazon VPC privé et de le configurer afin que vos tâches ne soient pas accessibles sur l'Internet public. Vous spécifiez votre configuration de VPC lors de la création d'un modèle en spécifiant les sous-réseaux et les groupes de sécurité. Ensuite, vous spécifiez le même modèle lorsque vous créez une tâche de transformation par lots. Lorsque vous spécifiez les sous-réseaux et les groupes de sécurité, SageMaker crée des interfaces réseau Elastic qui sont associées à vos groupes de sécurité dans l'un des sous-réseaux. Les interfaces réseau permettent à vos conteneurs de modèles de se connecter aux ressources de votre VPC. Pour obtenir des informations sur les interfaces réseau, veuillez consulter Interfaces réseau Elastic dans le Guide de l'utilisateur Amazon VPC.

Ce document explique comment ajouter des configurations Amazon VPC pour les tâches de transformation par lots.

Configuration d'une tâche de transformation par lots 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 CreateModel ou fournissez ces informations lorsque vous créez une tâche d'entraînement dans la console SageMaker. Ensuite, spécifiez le même modèle dans le paramètre de demande ModelName de l'API CreateTransformJob, ou dans le champ Model name (Nom du modèle) lorsque vous créez une tâche de transformation dans la console SageMaker. SageMaker utilise ces informations pour créer des interfaces réseau, puis les attache à vos conteneurs de modèles. Les interfaces réseau fournissent à vos conteneurs de modèles une connexion réseau au sein de votre VPC qui n'est pas connecté à Internet. Elles permettent également à votre tâche de transformation par lots de se connecter aux ressources de votre VPC privé.

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

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

Si vous créez un modèle à l'aide de l'opération d'API CreateModel, le rôle d'exécution IAM que vous utilisez pour créer votre modèle doit inclure les autorisations décrites dans API CreateModel : autorisations de rôle d'exécution, y compris les autorisations suivantes requises pour un VPC privé.

Lorsque vous créez un modèle dans la console, si vous sélectionnez Créer un nouveau rôle dans la section Paramètres du modèle, la politique AmazonSageMakerFullAccess utilisée pour créer le rôle contient déjà ces autorisations. Si vous sélectionnez Enter a custom IAM role ARN (Entrer un ARN de rôle IAM personnalisé) ou Use existing role (Utiliser un rôle existant), l'ARN de rôle que vous spécifiez doit avoir une politique d'exécution associée aux autorisations suivantes.

{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups"

Configuration de votre VPC privé pour la transformation par lots SageMaker

Lorsque vous configurez le VPC privé pour vos tâches de transformation par lots 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 de transformation. 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 de modèle n'aient pas accès à Internet, ces derniers ne peuvent pas se connecter aux compartiments Amazon S3 qui contiennent vos données, 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 autorisez vos conteneurs de modèle à accéder aux compartiments où vous stockez vos données et 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), choisissez com.amazonaws.region.s3, region correspondant au nom de la région où se trouve votre VPC.

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

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

  6. 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 de modèles

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 les emplacements des données dans vos tâches de transformation par lots 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 une transformation par lots distribuée, vous devez autoriser la communication entre les différents conteneurs d'une même tâche de transformation. 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 de transformation par lots qui utilisent ce VPC n'ont pas accès aux ressources en dehors de votre VPC. Si vos tâches de transformation par lots ont besoin d'accéder à des ressources en dehors de votre VPC, accordez-leur l'accès en effectuant l'une des actions suivantes :

  • Si votre tâche de transformation par lots 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 de transformation par lots a besoin d'accéder à un service AWS qui ne prend pas en charge les points de terminaison de 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.