Comment résoudre les problèmes d'autorisations lors de la création d'un groupe de fonctionnalités SageMaker ?

Date de la dernière mise à jour : 21/11/2022

J'essaie de créer un groupe de fonctionnalités Amazon SageMaker, mais le message d'erreur « AccessDenied » (Accès refusé) s'affiche.

Brève description

Les erreurs « AccessDenied » de SageMaker indiquent que le rôle AWS Identity and Access Management (IAM) ne dispose pas des autorisations suffisantes pour effectuer l'opération Create Feature Group (Créer un groupe de fonctionnalités). Le message d'erreur « AccessDenied » peut s'afficher lorsque des autorisations du rôle d'exécution sont manquantes ou mal configurées, comme suit :

  • Politique AmazonSageMakerFeatureStoreAccess et exigences relatives à l'attribution de noms de compartiments Amazon Simple Storage Service (Amazon S3) manquantes
  • Autorisations LakeFormation manquantes
  • Politique AWS Key Management Service (AWS KMS) manquante
  • Politique de compartiment Amazon S3

Solution

Remarque : si vous recevez des erreurs lors de l'exécution des commandes de l'Interface de la ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente de l'AWS CLI.

Pour afficher un message d'erreur détaillé lors de la création du groupe de fonctionnalités, exécutez la commande suivante depuis le terminal et vérifiez la FailureReason (Raison de l'échec) :

$ aws sagemaker describe-feature-group --feature-group-name nameofthefeaturegroup

Politique AmazonSageMakerfeatureStoreAccess et exigences relatives à l'attribution des noms de compartiments Amazon S3 manquantes

Le rôle d'exécution que vous utilisez n'a peut-être pas la politique AmazonSageMakerFeatureStore gérée par Amazon. Passez en revue les politiques attachées au rôle d'exécution. Attachez ensuite la politique AmazonSageMakerFeatureStoreAccess si elle est manquante :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetBucketAcl",
        "s3:PutObjectAcl"
      ],
      "Resource": [
        "arn:aws:s3:::*SageMaker*",
        "arn:aws:s3:::*Sagemaker*",
        "arn:aws:s3:::*sagemaker*"
      ]
    }
  ]
}

La création du groupe de fonctionnalités peut échouer même une fois la politique AmazonSageMakerFeatureStoreAccess ajoutée. Étant donné qu'il s'agit d'une politique gérée par Amazon qui est stockée dans un compartiment S3, le nom du compartiment doit contenir le terme « sagemaker ».

Autorisations Lake Formation manquantes

La création du groupe de fonctionnalités peut échouer en raison d'autorisations AWS Lake Formation insuffisantes. Lorsqu'un groupe de fonctionnalités est créé, une base de données AWS Glue est automatiquement créée. Tous les groupes de fonctionnalités créés à l'aide de SageMaker sont créés sous forme de tables dans cette base de données AWS Glue.

Vérifiez que le rôle d'exécution utilisé est autorisé à créer une base de données AWS Glue. Si ce n'est pas le cas, procédez comme suit :

Remarque : AWS Lake Formation exige que chaque utilisateur ou rôle principal soit autorisé à effectuer des actions sur les ressources gérées Lake Formation.

  1. Ouvrez la console LakeFormation
  2. Dans la barre latérale gauche, choisissez Permissions (Autorisations), puis Data Permissions (Autorisations de données)
  3. Choisissez Grant (Accorder)
  4. Choisissez l'IAM execution role (Rôle d'exécution IAM) dans le menu déroulant Principals (Mandataires), puis accordez les autorisations requises

Pour plus d'informations sur l'octroi d'autorisations de base de données, consultez la section Octroi d'autorisations sur une base de données ou une table partagée avec votre compte (langue Français non garantie).

Politique AWS KMS manquante

L'appel d'API CreateFeatureGroup peut échouer en raison de politiques AWS KMS manquantes. Pour le vérifier, passez en revue les politiques IAM du rôle d'exécution pour voir si les politiques suivantes y sont attachées :

kms:GenerateDataKey
kms:Decrypt
kms: Encrypt

Si ces politiques ne sont pas visibles après l'exécution de la commande de la CLI, attachez les politiques, puis réessayez.

Politique de compartiment S3

Les erreurs « AccessDenied » peuvent également se produire en raison d'une politique de compartiment Amazon S3 interdisant l'accès au compartiment. Passez en revue la politique du compartiment S3, puis vérifiez si le rôle d'exécution utilisé pour créer le groupe de fonctionnalités a accès au compartiment.


Cet article vous a-t-il été utile?


Besoin d'aide pour une question technique ou de facturation ?