Octroi des autorisations IAM requises pour utiliser la console Amazon SageMaker Ground Truth - Amazon SageMaker

Octroi des autorisations IAM requises pour utiliser la console Amazon SageMaker Ground Truth

Pour utiliser la zone Ground Truth de la console SageMaker, vous devez autoriser une entité IAM à accéder à SageMaker et à d'autres services AWS avec lesquels Ground Truth interagit. Les autorisations requises pour accéder aux autres services AWS dépendent de votre cas d'utilisation :

  • Les autorisations Amazon S3 sont requises pour tous les cas d'utilisation. Ces autorisations doivent accorder l'accès aux compartiments Amazon S3 qui contiennent des données source et de sortie.

  • AWS MarketplaceLes autorisations sont requises pour utiliser une main-d'œuvre fournisseur.

  • L'autorisation Amazon Cognito est requise pour la configuration d'une équipe de travail privée.

  • Les autorisations AWS KMS sont requises pour afficher les clés AWS KMS disponibles qui peuvent être utilisées pour le chiffrement des données de sortie.

  • Les autorisations IAM sont requises pour répertorier les rôles d'exécution préexistants ou pour en créer un. En outre, vous devez utiliser ajouter une autorisation PassRole pour permettre à SageMaker d'utiliser le rôle d'exécution choisi pour démarrer la tâche d'étiquetage.

Les sections suivantes répertorient les stratégies que vous pourriez accorder à un rôle IAM pour lui permettre d'utiliser une ou plusieurs fonctions de Ground Truth.

Autorisations de la console Ground Truth

Pour autoriser un utilisateur ou un rôle IAM à utiliser la zone Ground Truth de la console SageMaker pour créer une tâche d'étiquetage, attachez la stratégie suivante à l'utilisateur ou au rôle. La stratégie suivante donnera à un rôle IAM l'autorisation de créer une tâche d'étiquetage en utilisant un type de tâche intégré. Si vous souhaitez créer un flux d'étiquetage personnalisé, ajoutez la stratégie qui se trouve dans Autorisations de flux d'étiquetage personnalisées à la stratégie suivante. Chaque Statement inclus dans la politique suivante est décrit ci-dessous ce bloc de code.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerApis", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*" }, { "Sid": "KmsKeysForCreateForms", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:ListAliases" ], "Resource": "*" }, { "Sid": "AccessAwsMarketplaceSubscriptions", "Effect": "Allow", "Action": [ "aws-marketplace:ViewSubscriptions" ], "Resource": "*" }, { "Sid": "SecretsManager", "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Sid": "ListAndCreateExecutionRoles", "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy" ], "Resource": "*" }, { "Sid": "PassRoleForExecutionRoles", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } }, { "Sid": "GroundTruthConsole", "Effect": "Allow", "Action": [ "groundtruthlabeling:*", "lambda:InvokeFunction", "lambda:ListFunctions", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "s3:GetBucketCors", "s3:PutBucketCors", "s3:ListAllMyBuckets", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient" ], "Resource": "*" } ] }

Cette stratégie comprend les déclarations suivantes. Vous pouvez réduire la portée de l'une de ces instructions en ajoutant des ressources spécifiques à la liste de Resource pour cette instruction.

SageMakerApis

Cette déclaration inclut sagemaker:*, qui permet à l'utilisateur d'effectuer toutes les Actions de l'API SageMaker. Vous pouvez réduire la portée de cette stratégie en empêchant les utilisateurs d'effectuer des actions qui ne sont pas utilisées pour créer et surveiller une tâche d'étiquetage.

KmsKeysForCreateForms

Vous n'avez besoin d'inclure cette instruction que si vous souhaitez accorder à un utilisateur l'autorisation de lister et de sélectionner les clés AWS KMS dans la console Ground Truth, qui seront utilisées pour le chiffrement des données de sortie. La stratégie ci-dessus accorde à un utilisateur l'autorisation d'afficher et de sélectionner n'importe quelle clé dans le compte dans AWS KMS. Pour restreindre les clés qu'un utilisateur peut lister et sélectionner, spécifiez ces ARN de clé dans Resource.

SecretsManager

Cette instruction donne à l'utilisateur l'autorisation de décrire, répertorier et créer des ressources dans AWS Secrets Manager, ce qui est nécessaire pour créer la tâche d'étiquetage.

ListAndCreateExecutionRoles

Cette instruction donne à un utilisateur l'autorisation de lister (ListRoles) et créer (CreateRole) des rôles IAM dans votre compte. Il accorde également à l'utilisateur l'autorisation de créer (CreatePolicy) et attacher (AttachRolePolicy) des stratégies aux entités IAM. Celles-ci sont requises pour lister, sélectionner et, si nécessaire, créer un rôle d'exécution dans la console.

Si vous avez déjà créé un rôle d'exécution et que vous souhaitez restreindre la portée de cette instruction de manière à ce que les utilisateurs puissent uniquement sélectionner ce rôle dans la console, spécifiez les ARN des rôles IAM que l'utilisateur doit avoir pour visualiser les Resource et supprimer les actions CreateRole, CreatePolicy et AttachRolePolicy.

AccessAwsMarketplaceSubscriptions

Ces autorisations sont nécessaires pour afficher et choisir les équipes de travail fournisseur auxquelles vous êtes déjà abonné lors de la création d'une tâche d'étiquetage. Pour accorder à l'utilisateur l'autorisation de s'abonneraux équipes de travail du fournisseur, ajoutez l'instruction qui se trouve dans Autorisations de main-d'œuvre fournisseur à la politique ci-dessus

PassRoleForExecutionRoles

Ceci est nécessaire pour donner au créateur de tâche d'étiquetage l'autorisation d'afficher une prévisualisation de l'interface utilisateur employé et de vérifier que les données source, les étiquettes et les instructions s'affichent correctement. Cette instruction donne à une entité IAM les autorisations de transmettre le rôle d'exécution IAM utilisé pour créer la tâche d'étiquetage à SageMaker pour afficher et afficher une prévisualisation de l'interface utilisateur employé. Pour restreindre la portée de cette stratégie, ajoutez l'ARN de rôle du rôle d'exécution utilisé pour créer la tâche d'étiquetage sous Resource.

GroundTruthConsole

  • groundtruthlabeling – Ceci permet à un utilisateur d'effectuer les actions requises pour utiliser certaines fonctionnalités de la console Ground Truth. Ceux-ci incluent les autorisations pour décrire le statut de la tâche d'étiquetage (DescribeConsoleJob), lister tous les objets du jeu de données dans le fichier manifeste source (ListDatasetObjects), filtrer le jeu de données si l'échantillonnage du jeu de données est sélectionné (RunFilterOrSampleDatasetJob), et pour générer des fichiers manifestes source si l'étiquetage automatisé des données est utilisé (RunGenerateManifestByCrawlingJob). Ces actions ne sont disponibles que lors de l'utilisation de la console Ground Truth et ne peuvent pas être appelées directement à l'aide d'une API.

  • lambda:InvokeFunction et lambda:ListFunctions – Ces actions donnent aux utilisateurs l'autorisation de lister et d'appeler les fonctions Lambda utilisées pour exécuter un flux d'étiquetage personnalisé.

  • s3:* – Toutes les autorisations Amazon S3 incluses dans cette instruction sont utilisées pour afficher les compartiments Amazon S3 en vue de configuration automatisée des données (ListAllMyBuckets), accéder aux données source dans Amazon S3 (ListBucket, GetObject), vérifier et créer une stratégie CORS dans Amazon S3 si nécessaire (GetBucketCors et PutBucketCors), et écrire les fichiers de sortie de travail d'étiquetage dans S3 (PutObject).

  • cognito-idp – Ces autorisations sont utilisées pour créer, afficher et gérer des mains-d'œuvre privées à l'aide d'Amazon Cognito. Pour en savoir plus sur ces actions, veuillez consulter Références d'API Amazon Cognito.

Autorisations de flux d'étiquetage personnalisées

Ajoutez l'instruction suivante à une stratégie similaire à celle de Autorisations de la console Ground Truth pour donner à un utilisateur IAM l'autorisation de sélectionner des fonctions Lambda préexistantes de pré-annotation et de post-annotation lors de la création d'un flux d'étiquetage personnalisé.

{ "Sid": "GroundTruthConsoleCustomWorkflow", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:ListFunctions" ], "Resource": "*" }

Pour savoir comment accorder à une entité IAM l'autorisation de créer et de tester des fonctions Lambda de pré-annotation et de post-annotation, veuillez consulter Autorisations requises pour utiliser Lambda avec Ground Truth.

Autorisations de main-d'œuvre privée

Lorsqu'elle est ajoutée à une stratégie d'autorisations, l'autorisation suivante accorde l'accès à la création et à la gestion d'une main-d'œuvre et d'une équipe de travail privées utilisant Amazon Cognito. Ces autorisations ne sont pas requises pour utiliser une main-d'œuvre OIDC IdP.

{ "Effect": "Allow", "Action": [ "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient" ], "Resource": "*" }

Pour en savoir plus sur la création d'une main-d'œuvre privée à l'aide d'Amazon Cognito, veuillez consulter Création et gestion de mains-d'œuvres Amazon Cognito.

Autorisations de main-d'œuvre fournisseur

Vous pouvez ajouter l'instruction suivante à la stratégie se trouvant dans Octroi des autorisations IAM requises pour utiliser la console Amazon SageMaker Ground Truth pour accorder à une entité IAM l'autorisation de s'abonner à une main-d'œuvre fournisseur.

{ "Sid": "AccessAwsMarketplaceSubscriptions", "Effect": "Allow", "Action": [ "aws-marketplace:Subscribe", "aws-marketplace:Unsubscribe", "aws-marketplace:ViewSubscriptions" ], "Resource": "*" }