Construire une instance Sagemaker à partir de zéro (Partie 2)

Construire une instance Sagemaker à partir de zéro (Partie 2)


Dans partie un de cette série Snowflake/Sagemaker en quatre parties, j’ai décrit les avantages de l’apprentissage automatique (ML) et pourquoi il est avantageux de stocker des données pour ML dans Snowflake. Ici, dans la deuxième partie, je vais vous montrer comment démarrer avec Amazon Sagemaker.

La création d’une instance Sagemaker à partir de zéro nécessite une connexion AWS dotée d’un ensemble spécifique d’autorisations. Que vous puissiez ou non accorder ces autorisations vous-même dépend de votre accès à la connexion racine AWS. Si vous avez créé votre propre compte AWS, vous avez accès à la connexion racine. Cependant, si vous utilisez un bac à sable d’entreprise, vous n’avez probablement pas accès à la connexion root. Dans ce cas, demandez de l’aide à votre équipe de sécurité AWS.

Si vous disposez déjà d’une connexion AWS active, vous pouvez ignorer la section « Création d’un nouvel utilisateur » et accéder directement à la section des autorisations. Sinon, suivez simplement les étapes ci-dessous ou demandez à votre équipe de sécurité AWS de vous aider.

Vous pouvez consulter toute la série de blogs ici : Pun art > Deuxième partie > Partie trois > Quatrième partie.

Création d’un nouvel utilisateur

La création d’une connexion AWS est gérée via Identity and Access Management (IAM). Après avoir choisi un nom d’utilisateur (voir capture d’écran ci-dessous), sélectionnez le type d’accès pour votre connexion. Ici, vous souhaitez sélectionner « Accès à la console de gestion AWS ». Vous aurez besoin de ce type d’accès ultérieurement pour créer l’instance Sagemaker via l’interface utilisateur Web AWS. (Remarque : la sélection de « Demander la réinitialisation du mot de passe » est facultative ; cependant, je vous recommande d’utiliser cette fonctionnalité au cas où vous oublieriez votre mot de passe).

Cliquez sur le bouton « Suivant » pour passer à l’écran « Définir les détails de l’utilisateur ».

image11

Sur l’écran « Définir les détails de l’utilisateur », illustré ci-dessous, sélectionnez : « Joindre directement la politique existante », puis localisez et sélectionnez la politique appelée « SagemakerFullAccess ». Ensuite, vous devrez cocher la case à côté de la politique correspondante, puis cliquer sur le bouton « Suivant ».

image5 1

L’écran « Review » suivant s’affiche pour que vous puissiez confirmer vos sélections. Ici, vous voulez sélectionner « Créer un utilisateur ».

image3 1

Sur le même écran de confirmation, sélectionnez « Envoyer un e-mail ». Cela déclenchera un e-mail automatisé avec des instructions sur la façon de se connecter à votre instance AWS.

image7

Suivez les instructions de l’e-mail pour vous connecter à votre instance AWS avec votre nouvelle connexion. Lors de votre première connexion, il vous sera demandé de modifier votre mot de passe. Après avoir changé votre mot de passe, cliquez sur l’onglet « Services » et localisez Sagemaker via le champ de recherche.

image6

Cela vous dirigera vers l’interface utilisateur de Sagemaker. Ici, vous cliquerez sur le bouton « Créer une instance de bloc-notes ».

image2 3

Configuration des autorisations

Lorsque vous tentez de créer une instance Notebook, vous rencontrerez probablement le message d’erreur « Access Denied ». Cela se produit, par défaut, car les autorisations nécessaires pour travailler avec les rôles, les stratégies, les interfaces réseau et les sous-réseaux n’ont pas encore été accordées.

image8

Pour résoudre le problème « AccessDenied », créez une stratégie IAM avec les autorisations décrites ci-dessous. Appelons cela « SagemakerAdditionalPolicy ».

{
    "Version": "2012-10-17",

    "Statement": [

        {

            "Sid": "VisualEditor0",

            "Effect": "Allow",

            "Action": [

                "ec2:DescribeNetworkInterfaces",

                "ec2:DescribeVpcs",

                "kms:ListAliases",

                "iam:ListRoles",

                "ec2:DescribeSubnets",

                "ec2:DescribeSecurityGroups",

                "ec2:CreateNetworkInterface",

                "iam:CreatePolicy",

                "ec2:DeleteNetworkInterface",

                "iam:CreateRole",

                "iam:AttachRolePolicy"

            ],

            "Resource": "*"

        }

    ]

}

Après avoir attribué la politique de sécurité à votre connexion, les autorisations IAM doivent ressembler à l’écran ci-dessous. Il comprend la politique de changement de mot de passe standard AWS, la politique SagemakerFullAccess et la politique personnalisée que vous venez de créer (SagemakerAdditionalPolicy).

image10

Ensuite, vous devez créer un compartiment S3. Le compartiment S3 agit comme l’emplacement où vous stockerez les données pour divers processus ML, y compris la transmission des données de formation et de test aux algorithmes ML, les données temporaires et la sortie des algorithmes ML (par exemple, les fichiers de modèle). Assurez-vous de créer le compartiment S3 dans la même région que celle dans laquelle vous avez l’intention de créer l’instance Sagemaker.

En ce qui concerne les processus sur lesquels nous nous concentrons ici, il n’est pas nécessaire d’ouvrir l’accès à votre compartiment S3 depuis le monde extérieur. Il est également recommandé de ne pas autoriser l’accès externe à un compartiment S3, sauf si cela est absolument nécessaire.

image4 1

L’étape suivante consiste à créer un rôle d’exécution Sagemaker, dont le but est de fournir au moteur d’exécution les autorisations appropriées. Assurez-vous de spécifier le compartiment S3 que vous venez de créer. Le rôle d’exécution (y compris les autorisations appropriées) sera créé automatiquement lorsque vous cliquerez sur le bouton « Créer un rôle ».

image9

Vous êtes maintenant prêt à créer votre première instance Sagemaker. (Remarque : la sélection d’un VPC est facultative).

image12

La création de la nouvelle instance Sagemaker prendra quelques minutes. Une fois le processus terminé, cliquez sur le lien « Ouvrir » dans la console Sagemaker pour afficher le Jupyter Notebook.

image1 3

Exigences de sécurité

Si vous travaillez dans une instance AWS d’entreprise, votre équipe de sécurité peut classer les autorisations supplémentaires comme intrusives. Pourquoi? Parce qu’il vous permet, via votre connexion, de créer non seulement des rôles AWS ou des interfaces réseau pour Sagemaker, mais également pour le compte AWS en général. Cela peut être acceptable dans un compte Sandbox, mais pas dans un environnement géré comme Dev/QA/ ou Prod. Si tel est le cas dans votre cas, vous pouvez réduire les autorisations requises de deux manières :

Tout d’abord, votre identifiant n’a pas exiger [ “iam:CreatePolicy”,  “iam:CreateRole”, “iam:AttachRolePolicy”] si votre équipe de sécurité peut créer le rôle d’exécution Sagemaker pour vous. En utilisant leurs propres informations d’identification, le moyen le plus simple pour votre équipe de sécurité de créer le rôle d’exécution Sagemaker consiste à suivre les étapes décrites ci-dessus.

Deuxièmement, les actes [“ec2:CreateNetworkInterface”,  “ec2:DeleteNetworkInterface”] ne sont nécessaires que si vous créez une instance Notebook dans un VPC. La création d’une instance de bloc-notes dans un VPC n’est nécessaire que si vous consommez des ressources supplémentaires telles que les données d’un cluster EMR.

Conclusion

Dans la partie 2, nous avons parcouru le processus de création d’une instance Sagemaker à partir de zéro, y compris la création d’une nouvelle connexion AWS, l’octroi des autorisations nécessaires et la création de l’instance Sagemaker via l’interface utilisateur Sagemaker.

Dans la troisième partie, je décrirai comment connecter Sagemaker et Snowflake via le connecteur Snowflake Python.

Vous pouvez consulter toute la série de blogs ici : Pun art > Deuxième partie > Partie trois > Quatrième partie.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.