Saltar al contenido

¿Cómo soluciono los errores que recibo cuando un trabajo de cuaderno programado intenta ejecutarse en SageMaker AI Studio?

4 minutos de lectura
0

Quiero solucionar los errores que recibo cuando los trabajos de cuaderno programados intentan ejecutarse en Amazon SageMaker AI Studio.

Resolución

Solución de errores AccessDenied

Cuando un trabajo de cuaderno programado intenta ejecutarse, es posible que veas el error «AccessDenied» por los siguientes motivos:

  • No tienes las políticas de AWS Identity and Access Management (IAM) necesarias.
  • No tienes las políticas de punto de enlace de Amazon Virtual Private Cloud (Amazon VPC) necesarias.
  • Hay excepciones en las etiquetas de recursos.

Problemas relacionados con la política de IAM

Asegúrate de que tu cuaderno tenga la siguiente política asociada al rol de IAM para permitir una relación de confianza básica:

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

Comprueba que el rol de IAM tenga los siguientes permisos:

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

Para obtener más información, consulta AWS managed policies for SageMaker notebooks (Políticas gestionadas de AWS para cuadernos de SageMaker).

Problemas relacionados con los puntos de enlace de VPC

Si inicias el trabajo de cuaderno a través de un punto de enlace de VPC, comprueba la configuración y la política del punto de enlace. Asegúrate de completar los pasos necesarios y de seguir las prácticas recomendadas para el punto de enlace del servicio de AWS correspondiente:

En el caso de los puntos de enlace de VPC de Amazon S3, es posible que veas un error relacionado con un punto de enlace restringido a una sola cuenta de AWS. Por ejemplo, la siguiente política restringe el acceso a una cuenta con el ID 111122223333:

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

Para resolver este problema, también debes permitir el acceso al siguiente bucket de S3 para las acciones del usuario:

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

Excepciones de las etiquetas de recursos

Asegúrate de que tu política de IAM tenga los permisos siguientes:

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

Solución de errores de interfaz de usuario

Es posible que veas un error en la interfaz de usuario al intentar crear, describir, actualizar, detener o eliminar un trabajo de cuaderno. También puedes ver este error al usar definiciones de trabajos (trabajos programados). Para solucionar el problema, revisa el mensaje de error que aparece en la interfaz de usuario. Este mensaje puede contener instrucciones o sugerencias de acciones para resolver el problema.

Si no puedes resolver el error, sigue estos pasos:

  1. Haz una captura de pantalla del error y, a continuación, guárdala como archivo de imagen.
  2. Crea un archivo HTTP Archive (HAR) que capture el tráfico de red cuando se produzca el error de la interfaz de usuario.
  3. Abre el terminal del servidor Jupyter de SageMaker AI Studio. Elige Archivo, Nuevo, Terminal.
  4. Comprueba los registros de /var/log/apps/app_container.log para ver si hay excepciones, errores o advertencias en el momento del error de la interfaz de usuario.
  5. Contacto con AWS Support. En tu solicitud, adjunta la captura de pantalla del error, el app_container.log y el archivo HAR.
OFICIAL DE AWSActualizada hace 9 meses