SageMaker Studio でスケジュールされたノートブックジョブのトラブルシューティングを行うにはどうすればよいですか?

所要時間2分
0

Amazon SageMaker Studio でスケジュールされたノートブックジョブを実行しようとすると、エラーが発生します。

簡単な説明

SageMaker Studio でのノートブックジョブのスケジューリングを妨げる可能性のある一般的な問題には、次の 2 種類があります。

  • AccessDenied エラー
  • ジョブを更新しようとすると表示される UI エラー

解決策

AccessDenied エラー

AccessDenied エラーには、最も一般的には次の問題が関係しています。

  • AWS Identity and Access Management (IAM) ポリシー
  • 仮想プライベートクラウド (VPC) エンドポイントポリシー
  • リソースタグの例外

IAM ポリシーの問題

AccessDenied エラーは、最も一般的には権限ベースのエラーが原因で発生します。そのため、ノートブックジョブに必要な IAM ロールのベストプラクティスに従ってください。基本信頼関係には次の 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"
    }
  ]
}

また、IAM ロールに以下の権限があることを確認してください。

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

詳細については、「AWS managed policies for SageMaker notebooks」を参照してください。

VPC エンドポイントの問題

VPC エンドポイントからノートブックジョブを開始する場合は、エンドポイントの設定とポリシーを確認してください。関連するサービスエンドポイントの手順とベストプラクティスに必ず従ってください。

Amazon S3 VPC エンドポイントで最もよくあるエラーは、1 つのアカウントに制限されているエンドポイントに関するものです。たとえば、次のポリシーは、ID 111122223333 のアカウントへのアクセス権を制限します。

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

この場合、ユーザーのアクションに対して次のバケットアクセスを許可する必要もあります。

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

リソースタグの例外

IAM ポリシーに次の権限があることを確認してください。

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

ジョブを更新しようとすると表示される UI エラー

ノートブックジョブを作成説明更新停止、または削除しようとすると、UI エラーが発生することがあります。ジョブの定義 (スケジュールされたジョブ) でもこの問題が発生する可能性があります。これをトラブルシューティングするには、まず UI に表示されるエラーメッセージを書き留めておきます。このメッセージには、多くの場合、問題を解決するための指示または提案アクションが含まれています。

エラーを解決できない場合は、次の手順を実行してください。

  1. エラーのスクリーンショットを撮り、画像ファイルとして保存します。
  2. UI エラーが発生したときにネットワークトラフィックをキャプチャする HTTP アーカイブ (HAR) ファイルを作成します。
  3. SageMaker Studio の Jupyter サーバーターミナルにアクセスしてください。[File]、[New]、[Terminal] を選択します。
  4. /var/log/apps/app_container.log のログをチェックして、UI エラー発生時の例外、エラー、または警告を確認します。
  5. AWS サポートセンターから AWS サポートにお問い合わせください。お問い合わせには、エラーのスクリーンショット、app_container.log、HAR ファイルを添付してください。
AWS公式
AWS公式更新しました 6ヶ月前