Vous pouvez intégrer watsonx.governance as a Service sur AWS avec Amazon SageMaker pour apporter les fonctionnalités de gouvernance, de risque et de conformité de watsonx.governance à vos modèles Amazon SageMaker.
Avant de commencer
Vous devez disposer des services suivants :
- Une instance de watsonx.governance
- Une instance d'Amazon SageMaker
Configurez les services suivants sur AWS:
- CloudTrail: Les événements Amazon SageMaker sont publiés sur CloudTrail.
- Service de file d'attente simple (SQS) : Utilisez ce service pour mettre en place une file d'attente pour vos modèles Amazon SageMaker. Pour plus d'informations, voir Configuration d'Amazon SQS.
- EventBridge: Utilisez ce service pour définir des règles qui extraient les changements de cartes de modèle Amazon SageMaker vers une file d'attente FIFO de Simple Queue Service (SQS).
- Gestionnaire d'accès aux ressources : Ce service permet de créer des registres centraux de modèles et de regrouper les ressources pour les gérer. Pour plus d'informations, voir Paramétrage et configuration de Resource Explorer.
Assurez-vous que les services CloudTrail et EventBridge sont en cours d'exécution.
Planification de la configuration
Informations d'identification pour la connexion
Décidez de la manière dont vous souhaitez configurer l'accès entre watsonx.governance et Amazon SageMaker. Vous pouvez utiliser un rôle ou des clés d'accès inter-comptes.
- Pour utiliser un rôle de compte croisé, voir Configuration d'un rôle de compte croisé.
- Pour utiliser les touches d'accès, voir Configuration des touches d'accès.
Comptes
Chaque connexion à Amazon SageMaker se fait vers un compte qui possède un registre de modèles centralisé. Vous pouvez vous connecter à un maximum de dix comptes différents, chacun avec un modèle de registre. Pour plus d'informations sur l'utilisation de plusieurs registres de modèles centraux, voir Guidance for Multi-Account Machine Learning Model Governance on AWS.
Entités métier
Décidez des entités commerciales que vous souhaitez utiliser. Vous devez créer une entité commerciale distincte pour chaque connexion Amazon SageMaker que vous configurez. Cette entité commerciale doit se situer au niveau de la racine et n'être l'enfant d'aucune autre entité commerciale. Seuls les cas d'utilisation sous l'entité commerciale configurée, ainsi que leurs groupes de modèles et modèles associés, sont régis par watsonx.governance et Amazon SageMaker.
L'entité économique est le parent des cas d'utilisation, mais elle n'a pas besoin d'être le parent principal. Vous pouvez utiliser l'entité commerciale à d'autres fins.
Les utilisateurs doivent sélectionner l'entité commerciale lorsqu'ils créent des cas d'utilisation. Veillez à ce que vos utilisateurs sachent quelle entité commerciale utiliser. Assurez-vous également que les personnes chargées d'approuver les cas d'utilisation vérifient que l'entité commerciale est correctement définie avant d'approuver un cas d'utilisation. Si l'entité métier n'est pas correctement définie avant l'approbation d'un cas d'utilisation, le cas d'utilisation et ses groupes de modèles et modèles enfants ne seront pas synchronisés avec Amazon SageMaker.
Par exemple, si un utilisateur sélectionne un enfant de l'unité économique que vous avez configurée et que le cas d'utilisation est approuvé, la tâche de synchronisation ne synchronise pas le cas d'utilisation avec Amazon SageMaker.
Pour aider les utilisateurs, utilisez des domaines de sécurité pour leur donner accès aux entités commerciales spécifiques dont ils ont besoin.
Effectuez les étapes suivantes :
- Pour chaque connexion, décidez de l'unité économique à utiliser. Si vous souhaitez utiliser une nouvelle entité commerciale, créez-la avant de configurer la connexion à Amazon SageMaker. Pour créer une entité commerciale, vous devez disposer d'autorisations administratives.
- Dans la console de gouvernance, donnez aux utilisateurs l'accès au domaine de sécurité de l'entité commerciale. Par exemple, créez un groupe, ajoutez des utilisateurs au groupe, puis associez le groupe au domaine de sécurité de l'entité commerciale. Pour plus d'informations, voir Domaines de sécurité.
Profil et utilisateur par défaut
Pour chaque connexion, vous avez besoin d'un profil et d'un utilisateur par défaut.
Le profil par défaut est utilisé pour générer les liens pré-signés dans les vues de tâches. Ces liens ouvrent Amazon SageMaker en utilisant le profil par défaut. Donnez au profil par défaut les droits d'accès minimums nécessaires aux utilisateurs de la gouvernance pour obtenir plus d'informations sur les groupes de modèles et les modèles dans Amazon SageMaker.
Le lien pré-signé est valable pendant cinq minutes. Après cette période, les utilisateurs doivent rafraîchir la vue de la tâche pour régénérer le lien.
L'utilisateur par défaut est utilisé dans les cas suivants :
- Lorsqu'un modèle n'a pas de propriétaire assigné, le propriétaire du modèle est défini comme cet utilisateur par défaut.
- Lorsque le propriétaire d'un modèle n'a pas de compte dans la console de gouvernance, le propriétaire du modèle est défini comme cet utilisateur par défaut.
Mise en place des informations d'identification
Vous pouvez utiliser un rôle de compte croisé ou des clés d'accès pour vous connecter à Amazon SageMaker. Envisagez d'utiliser un rôle inter-comptes pour améliorer la sécurité.
Mise en place d'un rôle inter-comptes
Cette tâche est nécessaire si vous souhaitez utiliser un rôle inter-comptes pour intégrer Amazon SageMaker à watsonx.governance Pour plus d'informations, voir Accès aux ressources des comptes croisés dans IAM.
Pour configurer le rôle de compte croisé, procédez comme suit :
- Générer un identifiant externe pour le compte AWS.
- Attachez les politiques suivantes au rôle :
AmazonSageMakerFullAccess
etAmazonSQSFullAccess
. - Ajoutez l'ID externe à la politique de confiance du rôle.
Exemple de définition de rôle
Vous pouvez utiliser le script Terraform suivant comme guide pour créer le rôle inter-comptes.
Le script effectue les actions suivantes :
- Le script crée un rôle IAM appelé
Aws_Sagemaker_Sqs_Cross_Account_Role
. - Le script attribue l'ID externe
123456
au rôle. - Le script donne au rôle l'accès aux services suivants :
sqs.amazonaws.com
sagemaker.amazonaws.com
- Le script attache ensuite les politiques suivantes au rôle :
AmazonSQSFullAccess
AmazonSageMakerFullAccess
Dans la ligne suivante, remplacez 999999999999
par l'ID du compte de production watsonx.governance
+ AWS = "arn:aws:iam::999999999999:root"
Où :
arn:aws:iam::767397658217:root
est l'ID du compte de production watsonx.governance lorsque le client installe une instance depuis AWS Marketplace.arn:aws:iam::384547875043:root
est l'identifiant du compte de production watsonx.governance lorsque l'utilisateur installe une instance à partir d' IBM# module.iam.aws_iam_role.aws_sagemaker_sqs_cross_account_role[0] will be created + resource "aws_iam_role" "aws_sagemaker_sqs_cross_account_role" { + arn = (known after apply) + assume_role_policy = jsonencode( { + Statement = [ + { + Action = "sts:AssumeRole" + Condition = { + StringEquals = { + "sts:ExternalId" = "123456" } } + Effect = "Allow" + Principal = { + AWS = "arn:aws:iam::999999999999:root" + Service = [ + "sqs.amazonaws.com", + "sagemaker.amazonaws.com", ] } }, ] + Version = "2012-10-17" } ) + create_date = (known after apply) + force_detach_policies = false + id = (known after apply) + managed_policy_arns = (known after apply) + max_session_duration = 3600 + name = "Aws_Sagemaker_Sqs_Cross_Account_Role" + name_prefix = (known after apply) + path = "/" + tags_all = (known after apply) + unique_id = (known after apply) } # module.iam.aws_iam_role_policy_attachment.AmazonSQSFullAccess_role_policy_attach[0] will be created + resource "aws_iam_role_policy_attachment" "AmazonSQSFullAccess_role_policy_attach" { + id = (known after apply) + policy_arn = "arn:aws:iam::aws:policy/AmazonSQSFullAccess" + role = "Aws_Sagemaker_Sqs_Cross_Account_Role" } # module.iam.aws_iam_role_policy_attachment.AmazonSageMakerFullAccess_cross_role_policy_attach[0] will be created + resource "aws_iam_role_policy_attachment" "AmazonSageMakerFullAccess_cross_role_policy_attach" { + id = (known after apply) + policy_arn = "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess" + role = "Aws_Sagemaker_Sqs_Cross_Account_Role" }
Mise en place d'une clé d'accès
Effectuez cette tâche si vous souhaitez utiliser des clés d'accès pour connecter Amazon SageMaker à watsonx.governance
Dans AWS, configurez une clé d'accès à long terme pour l'intégration avec watsonx.governance Vos informations d'identification doivent avoir les accès suivants :
- Accès programmatique à Simple Queue Service (SQS)
- Accès programmatique aux API d'Amazon SageMaker
- Autorisations pour la mise à jour des fiches modèles dans Amazon SageMaker
Pour plus d'informations, voir les informations d'identification de sécuritéAWS.
Configuration des services AWS pour l'intégration
Effectuez les étapes suivantes :
- Mise en place d'une file d'attente SQS
- Mettre en place un Amazon EventBridge rule and add your SQS queue as the target for the rule.
Mise en place d'une file d'attente SQS
L'intégration utilise une file d'attente SQS pour recevoir des notifications en cas de modification des groupes de modèles et des modèles.
Pour chaque connexion, configurez une file d'attente SQS dans le compte.
Pour configurer une file d'attente SQS, procédez comme suit :
- Dans la console AWS, sélectionnez le service Simple Queue.
- Cliquez sur Créer une file d'attente.
- Saisissez un nom pour la file d'attente, puis entrez les informations suivantes :
- Type: FIFO
- Délai de visibilité: 30 secondes
- Période de conservation des messages: 4 jours
- Taille maximale du message: 256 KB
- Délai de livraison: 0
- Temps d'attente pour la réception d'un message: 0
- Sous Paramètres de la file d'attente FIFO, activez les options suivantes :
- Déduplication basée sur le contenu
- File d'attente FIFO à haut débit
La file d'attente SQS est définie. Ensuite, configurez une règle EventBridge.
Mise en place d'une règle EventBridge
Pour configurer une règle EventBridge et ajouter votre file d'attente SQS comme cible, procédez comme suit :
- Dans la console AWS, sélectionnez le service Amazon EventBridge.
- Cliquez sur Créer une règle.
- Saisissez un nom pour la règle, puis cliquez sur Suivant.
- Pour la source de l'événement, cliquez sur Autre.
- Pour la méthode de création, cliquez sur Modèle personnalisé (éditeur JSON), puis saisissez le JSON suivant pour le modèle d'événement :
{ "source": ["aws.sagemaker"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["sagemaker.amazonaws.com"], "eventName": ["CreateModelPackage", "CreateModelPackageGroup" "DeleteModelPackage", "DeleteModelPackageGroup", "UpdateModelPackage"] } }
- Cliquez sur Suivant.
- Définissez la cible sur la file d'attente SQS que vous avez créée.
- Cliquez sur Suivant dans les pages restantes, puis sur Créer une règle.
Vous avez maintenant une règle EventBridge avec votre file d'attente SQS comme cible de la règle.
Configuration de l'intégration
Pour ce faire, vous devez disposer d'informations d'identification AWS.
- Si vous utilisez un rôle inter-comptes, vous avez besoin des informations suivantes :
- Le nom de ressource Amazon (ARN) du rôle.
- L'identifiant externe du rôle.
- L' URL service Amazon SQS que vous avez configuré pour l'intégration.
- L'ARN du profil par défaut pour les URL présignées.
- Si vous utilisez des clés d'accès, vous avez besoin des informations suivantes :
- Votre identifiant de compte AWS.
- L'ID de la clé d'accès et l'ID du secret que vous avez configurés pour l'intégration.
- L' URL service Amazon SQS que vous avez configuré pour l'intégration.
- L'ARN du profil par défaut pour les URL présignées.
Autorisation requise : Vous devez disposer de l'autorisation All/SOX/Administration/SageMaker dans la console de gouvernance.
Pour configurer l'intégration, procédez comme suit :
- Connectez-vous à la console de gouvernance en tant qu'administrateur.
- Cliquez sur > Intégrations > Amazon SageMaker.
- Cliquez sur Nouvelle connexion.
- Sous Configuration générale, procédez comme suit :
- Entrez une description.
- Sélectionnez l'entité commerciale mère pour cette connexion Amazon SageMaker. Utilisez une entité commerciale différente pour chaque connexion que vous configurez. Pour plus d'informations, voir Entités économiques.
- Sélectionnez un utilisateur par défaut. Pour plus d'informations, voir Profil par défaut et utilisateur par défaut.
- Dans le champ " AWS account credentials", entrez les informations d'identification de votre compte AWS et votre région.
- Dans le champ ARN du profil par défaut, saisissez l'ARN du profil par défaut que vous avez créé pour votre compte.
- Entrez vos données d'identification.
- Pour configurer l'accès à l'aide d'un rôle, cliquez sur Rôle inter-comptes. Saisissez l' ARN du rôle et l' ID externe.
- Pour configurer l'accès à l'aide de clés, cliquez sur Clés d'accès. Saisissez l'ID de votre compte AWS, l'ID de votre clé d'accès et l'ID de votre clé secrète.
- Saisissez la région de votre instance watsonx.governance, par exemple
us-east-1
.
- Dans l' URL modèle SQS, entrez l' URL de la file d'attente SQS que vous avez configurée pour le compte.
- Cliquez sur Tester la connexion, puis sur Enregistrer.
- Cliquez sur le bouton pour activer l'intégration. Le processus de synchronisation automatique démarre. Pour voir la progression, cliquez sur Autres > Processus en arrière-plan. Ce processus synchronise les mises à jour à partir de ce moment.
- Si vous avez des modèles existants dans Amazon SageMaker, vous devez effectuer une synchronisation manuelle. Cliquez sur Synchroniser les informations du modèle existant. La table des synchronisations SageMaker indique l'état d'avancement de la synchronisation manuelle du compte.
Vos modèles Amazon SageMaker sont maintenant disponibles dans la console de gouvernance.
Si vous avez déjà des groupes de modèles et des modèles dans Amazon SageMaker qui ont été créés en dehors du workflow des cas d'utilisation watsonx.governance, vous devez lier les groupes de modèles à leurs cas d'utilisation associés manuellement.
Synchronisation des données
Le processus de synchronisation automatique est à l'écoute des actions suivantes :
- Création d'un paquet modèle dans Amazon SageMakerCreateModelPackage )
- Mise à jour du package de modèle dans Amazon SageMakerUpdateModelPackage )
- Suppression d'un paquet modèle dans Amazon SageMakerDeleteModelPackage )
- Création d'un groupe de modèles CreateModelPackageGroup
- Groupe de modèles supprimé DeleteModelPackageGroup )
Pour afficher l'état des processus de synchronisation automatisés, cliquez sur Autres > Processus en arrière-plan.
Pour afficher l'état des processus de synchronisation manuelle, cliquez sur > Intégrations > Amazon SageMaker La table des synchronisations de SageMaker liste les processus de synchronisation manuelle pour toutes les connexions. Pour connaître l'état d'une connexion spécifique, cliquez sur son nom dans le tableau des connexions.
En savoir plus
En savoir plus sur ces flux de processus :
Sujet parent : Configuration de l'environnement watsonx.governance sur AWS