Direkt zum Inhalt

Wie behebe ich Fehler, die auftreten, wenn ein geplanter Notebook-Job in SageMaker AI Studio ausgeführt werden soll?

Lesedauer: 4 Minute
0

Ich möchte Fehler beheben, die auftreten, wenn geplante Notebook-Jobs in Amazon SageMaker AI Studio ausgeführt werden sollen.

Lösung

AccessDenied-Fehler beheben

Wenn ein geplanter Notebook-Job ausgeführt werden soll, kann aus folgenden Gründen die Fehlermeldung „AccessDenied“ angezeigt werden:

  • Du verfügst nicht über die erforderlichen AWS Identity and Access Management (IAM)-Richtlinien.
  • Du verfügst nicht über die erforderlichen Amazon Virtual Private Cloud (Amazon VPC)-Endpunktrichtlinien.
  • Du hast Ausnahmen für Ressourcen-Tags.

Probleme mit IAM-Richtlinien

Stelle sicher, dass dein Notebook über die folgende Richtlinie für die IAM-Rolle verfügt, um die Basisvertrauensbeziehung zu ermöglichen:

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

Stelle sicher, dass deine IAM-Rolle über die folgenden Berechtigungen verfügt:

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

Weitere Informationen findest du unter Von AWS verwaltete Richtlinien für SageMaker AI-Notebooks.

Probleme mit VPC-Endpunkten

Wenn du den Notebook-Job über einen Amazon VPC-Endpunkt startest, überprüfe die Konfiguration und Richtlinie des Endpunkts. Stelle sicher, dass du die erforderlichen Schritte ausführst und die bewährten Methoden für den entsprechenden AWS-Service-Endpunkt befolgst:

Bei Amazon S3 VPC-Endpunkten erhältst du möglicherweise eine Fehlermeldung, die sich auf einen Endpunkt bezieht, der auf ein einzelnes AWS-Konto beschränkt ist. Die folgende Richtlinie schränkt beispielsweise den Zugriff auf ein Konto mit der ID 111122223333 ein:

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

Um dieses Problem zu beheben, musst du auch den folgenden S3-Bucket-Zugriff für die Aktionen des Benutzers zulassen:

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

Ressourcen-Tag-Ausnahmen

Stelle sicher, dass deine IAM-Richtlinie über die folgenden Berechtigungen verfügt:

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

Benutzeroberflächenfehler beheben

Wenn du versuchst, einen Notebook-Job zu erstellen, beschreiben, aktualisieren, anzuhalten oder zu löschen, erhältst du möglicherweise einen Benutzeroberflächenfehler. Dieser Fehler kann auch auftreten, wenn du Job-Definitionen (geplante Jobs) verwendest. Um das Problem zu beheben, überprüfe die Fehlermeldung, die in der Benutzeroberfläche angezeigt wird. Diese Meldung enthält möglicherweise Anweisungen oder Lösungsvorschläge zur Behebung des Problems.

Wenn du den Fehler nicht beheben kannst, gehe wie folgt vor:

  1. Mache einen Screenshot des Fehlers und speichere ihn als Bilddatei.
  2. Erstelle eine HTTP-Archivdatei (HAR), die den Netzwerkdatenverkehr erfasst, wenn der Benutzeroberflächenfehler auftritt.
  3. Öffne das Terminal des SageMaker AI Studio Jupyter-Servers. Wähle Datei, Neu, Terminal aus.
  4. Überprüfe die Protokolle in /var/log/apps/app_container.log auf Ausnahmen, Fehler oder Warnungen zum Zeitpunkt des Benutzeroberflächenfehlers.
  5. Wende dich an den AWS Support. Hänge deiner Anfrage den Screenshot des Fehlers, das app_container.log und die HAR-Datei an.
AWS OFFICIALAktualisiert vor 3 Monaten