Autorisations et sécurité dans Amazon Augmented AI - Amazon SageMaker

Autorisations et sécurité dans Amazon Augmented AI

Lorsque vous utilisez Amazon Augmented AI (Amazon A2I) pour créer un flux de vérification humaine pour votre application ML/IA, vous créez et configurez des ressources dans Amazon SageMaker, par exemple des modèles de tâches d'employés et une main-d'œuvre humaine. Pour configurer et démarrer une boucle humaine, vous intégrez Amazon A2I avec d'autres services AWS tels que Amazon Textract ou Amazon Rekognition, ou vous utilisez l'API d'exécution Amazon Augmented AI. Pour créer un flux de vérification humaine et démarrer une boucle humaine, vous devez attacher certaines stratégies à votre rôle ou utilisateur AWS Identity and Access Management (IAM). En particulier :

  • Lorsque vous démarrez une boucle humaine à l'aide de données d'entrée d'image le 12 janvier 2020 ou après, vous devez ajouter une stratégie d'en-tête CORS au compartiment Amazon S3 qui contient vos données d'entrée. Pour en savoir plus, veuillez consulter la section Autorisations CORS requises.

  • Lorsque vous créez une définition de flux, vous devez fournir un rôle qui accorde à Amazon A2I l'autorisation d'accéder à Amazon S3, tant pour lire les objets qui sont rendus dans une interface utilisateur de tâche humaine que pour écrire les résultats de la vérification humaine.

    Ce rôle doit également être associé à une stratégie d'approbation pour accorder à SageMaker l'autorisation d'assumer le rôle. Cela permet à Amazon A2I d'exécuter des actions conformément aux autorisations qui sont attachées au rôle.

    Veuillez consulter Ajouter des autorisations au rôle IAM utilisé pour créer une définition de flux pour obtenir des exemples de stratégies que vous pouvez modifier et attacher au rôle que vous utilisez pour créer une définition de flux. Ces stratégies seront attachées au rôle IAM créé dans la section Human review workflows (flux de vérification humaine) de la zone Amazon A2I de la console SageMaker.

  • Pour créer et démarrer des boucles humaines, vous utilisez soit une opération d'API à partir d'un type de tâche intégré (DetectModerationLabel ou AnalyzeDocument, par ex.), soit l'opération d'API d'exécution Amazon A2I StartHumanLoop dans une application ML personnalisée. Vous devez attacher la stratégie gérée AmazonAugmentedAIFullAccess à l'utilisateur IAM qui appelle ces opérations d'API pour accorder à ces services l'autorisation d'utiliser des opérations Amazon A2I. Pour savoir comment procéder, veuillez consulter la section Création d'un utilisateur IAM pouvant appeler des opérations d'API Amazon A2I.

    Cette stratégie n'accorde pas l'autorisation d'appeler les opérations API du service AWS associé aux types de tâches intégrés. Par exemple, AmazonAugmentedAIFullAccess n'accorde pas l'autorisation d'appeler l'opération d'API Amazon Rekognition DetectModerationLabel ou une opération d'API Amazon Textract AnalyzeDocument. Vous pouvez également utiliser la stratégie plus générale, AmazonAugmentedAIIntegratedAPIAccess, pour accorder ces autorisations. Pour de plus amples informations, veuillez consulter Créer un utilisateur IAM disposant des autorisations requises pour appeler les opérations d'API Amazon A2I, Amazon Textract et Amazon Rekognition. C'est une bonne solution si vous voulez accorder à un utilisateur IAM des autorisations étendues pour utiliser Amazon A2I et intégrer des opérations d'API de services AWS.

    Si vous voulez configurer des autorisations de façon plus précise, consultez Amazon Rekognition Identity-Based Policy Examples (Exemples de stratégies basées sur l'identité Amazon Rekognition et Amazon Textract Identity-Based Policy Examples (Exemples de stratégies basées sur l'identité Amazon Textract pour les stratégies basées sur l'identité que vous pouvez utiliser pour accorder l'autorisation d'utiliser ces services individuels.

  • Pour prévisualiser votre modèle d'interface utilisateur de tâche d'employé personnalisé, vous avez besoin d'un rôle IAM disposant d'autorisations de lecture d'objets Amazon S3 qui sont rendus sur votre interface utilisateur. Veuillez consulter un exemple de stratégie dans Activation des aperçus du modèle de tâche de travail .

Autorisations CORS requises

Plus tôt en 2020, les navigateurs largement utilisés comme Chrome et Firefox ont changé leur comportement par défaut pour la rotation d'images en fonction de métadonnées d'image, que l'on appelle les données EXIF. Auparavant, les images s'affichaient toujours dans les navigateurs de la façon exacte dont elles sont stockées sur le disque, c'est-à-dire généralement sans rotation. Après la modification, les images tournent désormais en fonction d'un élément de métadonnées d'image appelé valeur d'orientation. Cela impacte l'ensemble de la communauté du machine learning (ML). Par exemple, si l'orientation EXIF n'est pas prise en compte, les applications d'annotation d'images peuvent afficher des images dans des orientations inattendues et entraîner des étiquettes incorrectes.

À partir de Chrome 89, AWS ne peut plus empêcher automatiquement la rotation des images, car le groupe de normes web W3C a décrété que la possibilité de contrôler la rotation des images violait la stratégie de même origine du web. Par conséquent, pour garantir que les travailleurs humains annotent vos images d'entrée dans une orientation prévisible lorsque vous envoyez des demandes de création d'une boucle humaine, vous devez ajouter une stratégie d'en-tête CORS aux compartiments S3 qui contiennent vos images d'entrée.

Important

Si vous n'ajoutez pas de configuration CORS aux compartiments S3 qui contiennent vos données d'entrée, les tâches de vérification humaine pour ces objets de données en entrée échouent.

Vous pouvez ajouter une stratégie CORS à un compartiment S3 qui contient des données d'entrée dans la console Amazon S3. Pour définir les en-têtes CORS requis dans le compartiment S3 qui contient vos images d'entrée dans la console S3, suivez les instructions détaillées dans How do I add cross-domain resource sharing with CORS? (Comment ajouter le partage des ressources inter-domaines avec le partage CORS ?). Utilisez le code de configuration CORS suivant pour les compartiments qui hébergent vos images. Si vous utilisez la console Amazon S3 pour ajouter la stratégie à votre compartiment, vous devez utiliser le format JSON.

JSON

[{ "AllowedHeaders": [], "AllowedMethods": ["GET"], "AllowedOrigins": ["*"], "ExposeHeaders": [] }]

xml

<CORSConfiguration> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> </CORSRule> </CORSConfiguration>

Le GIF suivant illustre les instructions figurant dans la Documentation Amazon S3 pour ajouter une stratégie d'en-tête CORS à l'aide de la console Amazon S3.

Ajouter des autorisations au rôle IAM utilisé pour créer une définition de flux

Pour créer une définition de flux, attachez les stratégies de cette section au rôle que vous utilisez lors de la création d'un flux de vérification humaine dans la console SageMaker ou de l'utilisation de l'opération d'API CreateFlowDefinition.

  • Si vous utilisez la console pour créer un flux de vérification humaine, entrez l'Amazon Resource Name (ARN) du rôle dans le champ IAM role (Rôle IAM) lors de la création d'un flux de vérification humaine dans la console.

  • Lorsque vous créez une définition de flux à l'aide de l'API, attachez ces stratégies au rôle transmis au paramètre RoleArn de l'opération CreateFlowDefinition.

Lorsque vous créez un flux de vérification humaine (définition de flux), Amazon A2I appelle Amazon S3 pour terminer votre tâche. Pour accorder à Amazon A2I l'autorisation de récupérer et de stocker vos fichiers dans votre compartiment Amazon S3, créez la stratégie suivante et attachez-la à votre rôle. Par exemple, si les images, documents et autres fichiers que vous envoyez pour vérification humaine sont stockés dans un compartiment S3 nommé my_input_bucket, et que vous souhaitez que les vérifications humaines soient stockées dans un compartiment nommé my_output_bucket, vous devez créer la stratégie suivante.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my_input_bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my_output_bucket/*" ] } ] }

En outre, le rôle IAM doit avoir la stratégie d'approbation suivante pour accorder à SageMaker l'autorisation d'assumer ce rôle. Pour en savoir plus sur les stratégies d'approbation IAM, veuillez consulter la section Resource-Based Policies (Stratégies basées sur les ressources) dans Policies and Permissions (Stratégies et autorisations) dans la documentation Identity and Access Management AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSageMakerToAssumeRole", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Pour de plus amples informations sur la création et la gestion des rôles IAM et des stratégies, veuillez consulter les rubriques suivantes dans le Guide de l'utilisateur AWS Identity and Access Management :

Création d'un utilisateur IAM pouvant appeler des opérations d'API Amazon A2I

Pour utiliser Amazon A2I pour la création et le démarrage de boucles humaines pour Amazon Rekognition, Amazon Textract ou l'API d'exécution Amazon A2I, vous devez utiliser un utilisateur IAM disposant des autorisations requises pour appeler des opérations Amazon A2I. Pour ce faire, utilisez la console IAM pour attacher la stratégie gérée AmazonAugmentedAIFullAccess à un utilisateur IAM nouveau ou existant.

Cette stratégie accorde à un utilisateur IAM l'autorisation d'appeler des opérations d'API à partir de l'API SageMaker pour la création et la gestion de définitions de flux, et de l'API d'exécution Amazon Augmented AI pour la création et la gestion de boucles humaines. Pour en savoir plus sur ces opérations d'API, consultez Utiliser les API dans Amazon Augmented AI.

AmazonAugmentedAIFullAccess n'accorde pas d'autorisations pour l'utilisation d'opérations d'API Amazon Rekognition ou Amazon Textract.

Note

Vous pouvez également attacher la stratégie AmazonAugmentedAIFullAccess à un rôle IAM utilisé pour créer et démarrer une boucle humaine.

Pour créer l'utilisateur IAM requis

  1. Connectez-vous à la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Choisissez Users (Utilisateurs) et choisissez un utilisateur existant, ou créez un nouvel utilisateur en choisissant Add user (Ajouter un utilisateur). Pour apprendre à créer un nouvel utilisateur, veuillez consulter Creating an IAM User in Your AWS Account (Création d'un utilisateur IAM dans votre compte AWS) dans le Guide de l'utilisateur AWS Identity and Access Management.

    • Si vous avez choisi d'attacher la stratégie à un utilisateur existant, choisissez Add permissions (Ajouter des autorisations).

    • Lors de la création d'un nouvel utilisateur, suivez l'étape suivante sur la page Réglez les permissions.

  3. Choisissez Attacher directement les stratégies existantes.

  4. Dans la barre de recherche saisissez AmazonAugmentedAIFullAccess et cochez la case en regard de cette stratégie.

    Pour permettre à cet utilisateur IAM de créer une définition de flux avec l'équipe de travail publique, attachez également la stratégie gérée AmazonSageMakerMechanicalTurkAccess.

  5. Après avoir attaché la ou les stratégies :

    1. Si vous utilisez un utilisateur existant, choisissez Suivant : Vérifier, puis choisissez Add permissions (Ajouter des autorisations).

    2. Si vous créez un nouvel utilisateur, choisissez Suivant : Balises et terminez le processus de création de votre utilisateur.

Pour de plus amples informations, veuillez consulter Adding and Removing IAM Identity Permissions (Ajout et suppression d'autorisations basées sur l'identité IAM) dans le Guide de l'utilisateur AWS Identity and Access Management.

Créer un utilisateur IAM disposant des autorisations requises pour appeler les opérations d'API Amazon A2I, Amazon Textract et Amazon Rekognition

Pour créer un utilisateur IAM disposant de l'autorisation d'appeler les opérations d'API utilisées par les types de tâches intégrés (c'est-à-dire DetectModerationLables pour Amazon Rekognition et AnalyzeDocument pour Amazon Textract) et de l'autorisation d'utiliser toutes les opérations d'API Amazon A2I, attachez la stratégie gérée IAM AmazonAugmentedAIIntegratedAPIAccess. Vous pouvez vouloir utiliser cette stratégie pour accorder des autorisations étendues à un utilisateur IAM qui utilise Amazon A2I avec plusieurs types de tâches. Pour en savoir plus sur ces opérations d'API, consultez Utiliser les API dans Amazon Augmented AI.

Note

Vous pouvez également attacher la stratégie AmazonAugmentedAIIntegratedAPIAccess à un rôle IAM utilisé pour créer et démarrer une boucle humaine.

Pour créer l'utilisateur IAM requis

  1. Connectez-vous à la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Choisissez Users (Utilisateurs) et choisissez un utilisateur existant, ou créez un nouvel utilisateur en choisissant Add user (Ajouter un utilisateur). Pour apprendre à créer un nouvel utilisateur, veuillez consulter Creating an IAM User in Your AWS Account (Création d'un utilisateur IAM dans votre compte AWS) dans le Guide de l'utilisateur AWS Identity and Access Management.

    • Si vous avez choisi d'attacher la stratégie à un utilisateur existant, choisissez Add permissions (Ajouter des autorisations).

    • Lors de la création d'un nouvel utilisateur, suivez l'étape suivante sur la page Réglez les permissions.

  3. Choisissez Attach existing policies directly (Attacher directement les stratégies existantes).

  4. Dans la barre de recherche saisissez AmazonAugmentedAIIntegratedAPIAccess et cochez la case en regard de cette stratégie.

    Pour permettre à cet utilisateur IAM de créer une définition de flux à l'aide d'Amazon Mechanical Turk, attachez également la stratégie gérée AmazonSageMakerMechanicalTurkAccess.

  5. Après avoir attaché la ou les stratégies :

    1. Si vous utilisez un utilisateur existant, choisissez Suivant : Vérifier, puis choisissez Add permissions (Ajouter des autorisations).

    2. Si vous créez un nouvel utilisateur, choisissez Suivant : Balises et terminez le processus de création de votre utilisateur.

Pour de plus amples informations, veuillez consulter Adding and Removing IAM Identity Permissions (Ajout et suppression d'autorisations basées sur l'identité IAM) dans le Guide de l'utilisateur AWS Identity and Access Management.

Activation des aperçus du modèle de tâche de travail

Pour personnaliser l'interface et les instructions que vos collaborateurs voient lorsqu'ils travaillent sur vos tâches, créez un modèle de tâche de travail. Vous pouvez créer le modèle à l'aide de l'opération CreateHumanTaskUi ou de la console SageMaker.

Pour prévisualiser votre modèle, vous avez besoin d'un rôle IAM disposant des autorisations suivantes pour lire les objets Amazon S3 qui sont rendus sur votre interface utilisateur.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my_input_bucket/*" ] } ] }

Pour les types de tâches Amazon Rekognition et Amazon Textract, vous pouvez prévisualiser votre modèle à l'aide de la section Amazon Augmented AI de la console SageMaker. Pour les types de tâches personnalisés, vous prévisualisez votre modèle en appelant l'opération RenderUiTemplate. Pour prévisualiser votre modèle, suivez les instructions relatives à votre type de tâche :

  • Types de tâches Amazon Rekognition et Amazon Textract : dans la console SageMaker, utilisez l'Amazon Resource Name (ARN) du rôle dans la procédure décrite dans Créer un modèle de tâche d'employé.

  • Types de tâches personnalisés : dans l'opération RenderUiTemplate, utilisez l'ARN du rôle dans le paramètre RoleArn.

Utilisation d'Amazon A2I avec AWS KMS Encrypted Buckets (Compartiments chiffrés avec KMS)

Si vous spécifiez une clé AWS Key Management Service (AWS KMS) gérée par le client pour chiffrer les données de sortie dans OutputConfig de CreateFlowDefinition, vous devez ajouter à cette clé une politique IAM semblable à celle qui suit. Cette stratégie donne au rôle d'exécution IAM que vous utilisez pour créer vos boucles humaines l'autorisation d'utiliser cette clé pour effectuer toutes les actions répertoriées dans "Action". Pour de plus amples informations sur ces actions, veuillez consulter autorisations AWS KMS dans le Guide du développeur AWS Key Management Service.

Pour utiliser cette stratégie, remplacez l'ARN de la fonction du service IAM dans "Principal" par l'ARN du rôle d'exécution que vous utilisez pour créer le flux de vérification humaine (définition de flux). Lorsque vous créez une tâche d'étiquetage à l'aide de CreateFlowDefinition, il s'agit de l'ARN que vous spécifiez pour RoleArn. Notez que vous ne pouvez pas fournir de KmsKeyId lorsque vous créez une définition de flux dans la console.

{ "Sid": "AllowUseOfKmsKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/service-role/example-role" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Autorisations supplémentaires et ressources de sécurité