Ajoutez les autorisations requises à utiliser 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.

Ajoutez les autorisations requises à utiliser 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 IAM rôle ou à un utilisateur (collectivement, une IAM entité) 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 IAM d'exécution spécifié lors de la configuration de la tâche d'étiquetage doit être autorisé pour appeler les fonctions Lambda avant et après l'annotation.

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

Utilisez les sections suivantes pour savoir comment créer les IAM entités et accorder les 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 en termes de sécurité, reportez-vous à la documentation IAMPolitiques basées sur l'identité pour Lambda dans le guide du développeur AWS Lambda pour savoir comment créer IAM une politique adaptée à votre cas d'utilisation.

Stratégies d'utilisation de la console Lambda

Si vous souhaitez autoriser une IAM entité à utiliser la console Lambda, consultez 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 <aws-region> 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 IAM rôle.

{ "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 autoriser une IAM entité à consulter 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 dansIAMAutoriser l'utilisation de 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 IAM d'exécution l'autorisation d'invoquer AWS Lambda des fonctions

Si vous ajoutez la politique IAM gérée AmazonSageMakerGroundTruthExecutionau rôle IAM d'exécution utilisé pour créer la tâche d'étiquetage, ce rôle est autorisé à répertorier et à invoquer les fonctions Lambda avec l'une des chaînes suivantes dans le nom de la fonction :GtRecipe,, SageMaker Sagemakersagemaker, ou. 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 IAM politique suivante au rôle d'exécution de votre fonction Lambda pour assumer le rôle SageMaker 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 amzn-s3-demo-bucket avec le nom du compartiment de sortie que vous spécifiez lorsque vous créez une tâche d'étiquetage.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-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 nom du rôle et la page récapitulative de ce rôle s'ouvre dans un nouvel onglet dans la IAM console.

  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.