Salta al contenuto

Come posso risolvere gli errori che ricevo quando viene tentata l'esecuzione di un processo del notebook pianificato in SageMaker AI Studio?

4 minuti di lettura
0

Desidero risolvere gli errori che ricevo quando i processi del notebook pianificati vengono eseguiti in Amazon SageMaker AI Studio.

Risoluzione

Risolvi gli errori AccessDenied

Quando viene tentata l'esecuzione di un processo del notebook pianificato, potresti ricevere un errore "AccessDenied" per i seguenti motivi:

  • Non disponi delle policy AWS Identity and Access Management (AWS IAM) richieste.
  • Non disponi delle policy per gli endpoint di Amazon Virtual Private Cloud (Amazon VPC) richieste.
  • Sono presenti eccezioni relative ai tag delle risorse.

Problemi relativi alle policy IAM

Assicurati che il notebook abbia la seguente policy associata al ruolo IAM per consentire la relazione di attendibilità di base:

{
  "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"
    }
  ]
}

Verifica che il ruolo IAM abbia le 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 Policy gestite da AWS per notebook SageMaker AI.

Problemi relativi agli endpoint VPC

Se avvii il processo del notebook tramite un endpoint Amazon VPC, controlla la configurazione e la policy dell'endpoint. Applica la procedura richiesta e segue le best practice per l'endpoint del relativo servizio AWS:

Per gli endpoint VPC di Amazon S3, potresti ricevere un errore relativo a un endpoint limitato a un singolo account AWS. Ad esempio, la seguente policy limita l'accesso all'account con ID 111122223333:

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

Per risolvere il problema, devi consentire l'accesso anche al seguente bucket S3 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 abbia le 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"
    }
  }
}

Risolvi gli errori dell'interfaccia utente

Quando tenti di creare, descrivere, aggiornare, arrestare o eliminare un processo del notebook, potresti ricevere un errore dell'interfaccia utente. Potresti ricevere questo errore anche quando utilizzi le definizioni dei processi (processi pianificati). Per risolvere il problema, analizza il messaggio di errore visualizzato nell'interfaccia utente. Il messaggio potrebbe contenere indicazioni o azioni suggerite per ovviare all'errore.

Se non riesci a risolverlo, completa i seguenti passaggi:

  1. Fai uno screenshot dell'errore e 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. Apri il terminale del server Jupyter di SageMaker AI Studio. Scegli File, New, Terminal (File, Nuovo, Terminale).
  4. Controlla nei log in /var/log/apps/app_container.log se sono presenti eccezioni, errori o avvisi nel momento in cui si verifica l'errore dell'interfaccia utente.
  5. Contatta il Supporto AWS. Allega alla richiesta lo screenshot dell'errore, il file app_container.log e il file HAR.
AWS UFFICIALEAggiornata 10 mesi fa