Come faccio a risolvere i problemi relativi ai lavori programmati sul notebook in SageMaker Studio?

4 minuti di lettura
0

Quando eseguo un lavoro programmato sul notebook in Amazon SageMaker Studio, ricevo un errore.

Breve descrizione

Esistono due errori comuni che potrebbero impedire un lavoro programmato sul notebook in SageMaker Studio:

  • Errori AccessDenied
  • Errori dell'interfaccia utente quando si tenta di aggiornare un lavoro

Risoluzione

Errori AccessDenied

Gli errori AccessDenied riguardano più comunemente i seguenti problemi:

  • Policy di AWS Identity and Access Management (IAM)
  • Policy degli endpoint del cloud privato virtuale (VPC)
  • Eccezioni relative ai tag delle risorse

Problemi relativi alle policy IAM

Gli errori AccessDenied si verificano più comunemente a causa di errori basati sulle autorizzazioni. Pertanto, segui le best practice per il ruolo IAM di cui hai bisogno per il lavoro del notebook. Per la relazione di attendibilità di base è necessario il seguente ruolo IAM:

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

Inoltre, verifica che il tuo ruolo IAM disponga delle seguenti autorizzazioni:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::*:role/*",
      "Condition": {
        "StringLike": {
          "iam:PassedToService": [
            "sagemaker.amazonaws.com",
            "events.amazonaws.com"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "events:TagResource",
        "events:DeleteRule",
        "events:PutTargets",
        "events:DescribeRule",
        "events:PutRule",
        "events:RemoveTargets",
        "events:DisableRule",
        "events:EnableRule"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:PutBucketVersioning",
        "s3:PutEncryptionConfiguration"
      ],
      "Resource": "arn:aws:s3:::sagemaker-automated-execution-*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListTags"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:user-profile/*",
        "arn:aws:sagemaker:*:*:space/*",
        "arn:aws:sagemaker:*:*:training-job/*",
        "arn:aws:sagemaker:*:*:pipeline/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": [
        "arn:aws:sagemaker:*:*:training-job/*",
        "arn:aws:sagemaker:*:*:pipeline/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:CreateVpcEndpoint",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeRouteTables",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcEndpoints",
        "ec2:DescribeVpcs",
        "ecr:BatchCheckLayerAvailability",
        "ecr:BatchGetImage",
        "ecr:GetDownloadUrlForLayer",
        "ecr:GetAuthorizationToken",
        "s3:ListBucket",
        "s3:GetBucketLocation",
        "s3:GetEncryptionConfiguration",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:GetObject",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace",
        "sagemaker:DescribeStudioLifecycleConfig",
        "sagemaker:DescribeImageVersion",
        "sagemaker:DescribeAppImageConfig",
        "sagemaker:CreateTrainingJob",
        "sagemaker:DescribeTrainingJob",
        "sagemaker:StopTrainingJob",
        "sagemaker:Search",
        "sagemaker:CreatePipeline",
        "sagemaker:DescribePipeline",
        "sagemaker:DeletePipeline",
        "sagemaker:StartPipelineExecution"
      ],
      "Resource": "*"
    }
  ]
}

Per ulteriori informazioni, consulta la sezione Politiche gestite da AWS per SageMaker Notebook.

Problemi con gli endpoint VPC

Se il lavoro del notebook viene avviato tramite un endpoint VPC, verifica la configurazione e la policy dell'endpoint. Accertati di seguire i passaggi e le best practice per l'endpoint del servizio in questione:

Per gli endpoint VPC di Amazon S3, l'errore più comune riguarda un endpoint limitato a un singolo account. Ad esempio, la seguente policy limita l'accesso a un account con ID 111122223333:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowSpecificAccountsPermission",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "s3:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "s3:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}

In questo caso, è necessario consentire anche l'accesso al bucket seguente per le azioni dell'utente:

{
  "Action": [
    "s3:*"
  ],
  "Resource": [
    "arn:aws:s3:::sagemakerheadlessexecution-prod-*",
    "arn:aws:s3:::sagemakerheadlessexecution-prod-*/*"
  ],
  "Effect": "Allow",
  "Sid": "SCTASK14554266"
}

Eccezioni relative ai tag delle risorse

Assicurati che la policy IAM disponga delle seguenti autorizzazioni:

{
  "Effect": "Allow",
  "Action": [
    "events:TagResource",
    "events:DeleteRule",
    "events:PutTargets",
    "events:DescribeRule",
    "events:PutRule",
    "events:RemoveTargets",
    "events:DisableRule",
    "events:EnableRule"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
    }
  }
}

Errori dell'interfaccia utente quando si tenta di aggiornare un lavoro

È possibile che si verifichi un errore di interfaccia utente quando si tenta di creare, descrivere, aggiornare, interrompere o eliminare un lavoro del notebook. Potresti riscontrare questo problema anche con le definizioni dei lavori (lavori programmati). Per risolvere questo problema, annota innanzitutto il messaggio di errore visualizzato nell'interfaccia utente. Questo messaggio contiene spesso indicazioni o suggerimenti e azioni per risolvere il problema.

Se non riesci a risolvere l'errore, completa i seguenti passaggi:

  1. Fai uno screenshot dell'errore e poi salvalo come file immagine.
  2. Crea un file HTTP Archive (HAR) che acquisisca il traffico di rete quando si verifica l'errore dell'interfaccia utente.
  3. Vai al terminale del server Jupyter di SageMaker Studio. Scegli File, Nuovo, Terminale.
  4. Al momento dell'errore dell'interfaccia utente controlla la presenza di eccezioni, errori o avvisi nei log in /var/log/apps/app_container.log.
  5. Contatta il Supporto AWS tramite il Centro di supporto AWS. Nella tua richiesta, allega lo screenshot dell'errore, l'app_container.log e il file HAR.
AWS UFFICIALE
AWS UFFICIALEAggiornata 6 mesi fa