Autorisations nécessaires à l'utilisation de AWS Lambda avec Ground Truth - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Autorisations nécessaires à l'utilisation de AWS Lambda avec Ground Truth

Vous devrez peut-être configurer tout ou partie des éléments suivants pour créer et utiliser AWS Lambda avec Ground Truth.

  • Vous devez accorder à un rôle ou à un utilisateur IAM (collectivement, une entité IAM) l'autorisation de créer les fonctions Lambda avant et après l'annotation à l'aide de AWS Lambda, et de les choisir lors de la création de la tâche d'étiquetage.

  • Le rôle d'exécution IAM spécifié, lorsque la tâche d'étiquetage est configurée, doit être autorisé à invoquer les fonctions Lambda de pré-annotation et de post-annotation.

  • Les fonctions Lambda post-annotation peuvent avoir besoin d'une autorisation pour accéder à Amazon S3.

Utilisez les sections suivantes pour apprendre comment créer les entités IAM et accorder des autorisations décrites ci-dessus.

Autoriser la création et la sélection d'une AWS Lambda fonction

Si vous n'avez pas besoin d'autorisations granulaires pour développer des fonctions Lambda avant et après l'annotation, vous pouvez associer AWS la AWSLambda_FullAccess politique gérée à un utilisateur ou à un rôle. Cette politique accorde des autorisations étendues pour utiliser toutes les fonctionnalités Lambda, ainsi que l'autorisation d'effectuer des actions dans d'autres AWS services avec lesquels Lambda interagit.

Pour créer une politique plus précise pour les cas d'utilisation sensibles à la sécurité, reportez-vous à la documentation Politiques IAM basées sur l'identité pour Lambda dans le guide du AWS Lambda développeur pour savoir comment créer une politique IAM adaptée à votre cas d'utilisation.

Stratégies d'utilisation de la console Lambda

Si vous souhaitez autoriser une entité IAM à utiliser la console Lambda, reportez-vous à la section Utilisation de la console Lambda dans le manuel du développeur. AWS Lambda

En outre, si vous souhaitez que l'utilisateur puisse accéder aux fonctions de pré-annotation et de post-annotation de Ground Truth Starter et les déployer AWS Serverless Application Repository à l'aide de la console Lambda, vous devez spécifier l'<aws-region>endroit où vous souhaitez déployer les fonctions (il doit s'agir de la même AWS région que celle utilisée pour créer la tâche d'étiquetage) et ajouter la politique suivante au rôle IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "serverlessrepo:ListApplicationVersions", "serverlessrepo:GetApplication", "serverlessrepo:CreateCloudFormationTemplate" ], "Resource": "arn:aws:serverlessrepo:<aws-region>:838997950401:applications/aws-sagemaker-ground-truth-recipe" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "serverlessrepo:SearchApplications", "Resource": "*" } ] }

Stratégies accordant l'affichage des fonctions Lambda dans la console Ground Truth

Pour accorder à une entité IAM l'autorisation d'afficher les fonctions Lambda dans la console Ground Truth lorsque l'utilisateur crée une tâche d'étiquetage personnalisée, l'entité doit disposer des autorisations décrites dans Autoriser IAM à utiliser la console Amazon SageMaker Ground Truth, y compris les autorisations décrites dans la section Autorisations de flux d'étiquetage personnalisées.

Accorder au rôle d'exécution IAM l'autorisation d'invoquer AWS Lambda des fonctions

Si vous ajoutez la politique gérée par IAM AmazonSageMakerGroundTruthExecutionau rôle d'exécution IAM utilisé pour créer la tâche d'étiquetage, ce rôle est autorisé à répertorier et à invoquer des fonctions Lambda avec l'une des chaînes suivantes dans le nom de la fonction :GtRecipe,,SageMaker, Sagemaker ou. sagemaker LabelingFunction

Si les noms de fonction Lambda de pré-annotation ou de post-annotation n'incluent pas l'un des termes du paragraphe précédent, ou si vous avez besoin d'une autorisation plus détaillée que celles de la stratégie gérée AmazonSageMakerGroundTruthExecution, vous pouvez ajouter une stratégie similaire à la suivante pour donner au rôle d'exécution l'autorisation d'appeler des fonctions de pré-annotation et de post-annotation.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": [ "arn:aws:lambda:<region>:<account-id>:function:<pre-annotation-lambda-name>", "arn:aws:lambda:<region>:<account-id>:function:<post-annotation-lambda-name>" ] } ] }

Accorder des autorisations Lambda de post-annotation pour accéder à l'annotation

Comme décrit dans Lambda de post-annotation, la requête Lambda de post-annotation inclut l'emplacement des données d'annotation dans Amazon S3. Cet emplacement est identifié par la chaîne s3Uri dans l'objet payload. Pour traiter les annotations au fur et à mesure de leur arrivée, même pour une simple fonction de passage, vous devez attribuer les autorisations nécessaires au rôle d'exécution Lambda de post-annotation pour lire les fichiers depuis Amazon S3.

Il existe de nombreuses façons de configurer votre Lambda pour accéder aux données d'annotation dans Amazon S3. Deux façons communes sont :

  • Permettez au rôle d'exécution Lambda d'assumer le rôle SageMaker d'exécution identifié dans la demande Lambda roleArn postérieure à l'annotation. Ce rôle SageMaker d'exécution est celui utilisé pour créer la tâche d'étiquetage et a accès au compartiment de sortie Amazon S3 dans lequel les données d'annotation sont stockées.

  • Accordez au rôle d'exécution Lambda l'autorisation d'accéder directement au compartiment de sortie Amazon S3.

Utilisez les sections suivantes pour en savoir plus sur ces options.

Accorder à Lambda l'autorisation d'assumer le rôle d'exécution SageMaker

Pour permettre à une fonction Lambda d'assumer un rôle d' SageMaker exécution, vous devez associer une politique au rôle d'exécution de la fonction Lambda et modifier la relation de confiance du rôle d' SageMaker exécution pour permettre à Lambda de l'assumer.

  1. Associez la politique IAM suivante au rôle d'exécution de votre fonction Lambda pour assumer SageMaker le rôle d'exécution identifié dans. Resource Remplacez 222222222222 par votre ID de compte AWS. Remplacez sm-execution-role par le nom du rôle assumé.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/sm-execution-role" } }
  2. Modifiez la politique de confiance du rôle SageMaker d'exécution pour inclure les éléments suivantsStatement. Remplacez 222222222222 par votre ID de compte AWS. Remplacez my-lambda-execution-role par le nom du rôle assumé.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:role/my-lambda-execution-role" }, "Action": "sts:AssumeRole" } ] }

Accorder au rôle d'exécution Lambda l'autorisation d'accéder à S3

Vous pouvez ajouter une stratégie similaire à la suivante au rôle d'exécution de la fonction Lambda de post-annotation pour lui donner des autorisations de lecture S3. Remplacez DOC-EXEMPLE-BUCKET avec le nom du compartiment de sortie spécifié lorsque vous créez une tâche d'étiquetage.

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

Pour ajouter des autorisations de lecture S3 à un rôle d'exécution Lambda dans la console Lambda, procédez comme suit.

Ajouter des autorisations de lecture S3 à la fonction Lambda de post-annotation :
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Choisissez le nom de la fonction de post-annotation.

  3. Choisissez Configuration (Configuration), puis Permissions (Autorisations).

  4. Sélectionnez le Role name (Nom de rôle) et la page de résumé de ce rôle s'ouvre dans la console IAM dans un nouvel onglet.

  5. Sélectionnez Attach policies (Attacher des stratégies).

  6. Effectuez l’une des actions suivantes :

    • Recherchez et sélectionnez AmazonS3ReadOnlyAccess pour donner à la fonction l'autorisation de lire tous les compartiments et objets du compte.

    • Si vous avez besoin d'autorisations plus détaillées, sélectionnez Create policy (Créer une stratégie) et utilisez l'exemple de stratégie de la section précédente pour créer une stratégie. Notez que vous devez revenir à la page récapitulative du rôle d'exécution après avoir créé la stratégie.

  7. Si vous avez utilisé la stratégie gérée par AmazonS3ReadOnlyAccess, sélectionnez Attacher une stratégie.

    Si vous avez créé une nouvelle stratégie, revenez à la page récapitulative du rôle d'exécution Lambda et attachez la stratégie que vous venez de créer.