如何疑難排解在使用 SageMaker Data Wrangler 將資料匯入我的 Amazon SageMaker Studio 時發生的錯誤?

上次更新日期:2022 年 10 月 25 日

我嘗試使用 Amazon SageMaker Data Wrangler 從 Amazon Simple Storage Service (Amazon S3) 或 Amazon Athena 匯入資料時發生錯誤。

解決方案

生命週期許可錯誤

當您嘗試將資料從 Amazon Athena 匯入 Data Wrangler 時,您可能會收到下列錯誤:

S3LifecyclePermissionError: You don't have permission to read expiration rules from the bucket that you specified.

發生此錯誤的原因是與使用者描述檔相關聯的 SageMaker 執行角色沒有存取用於管理資料保留和到期的 Amazon S3 生命週期組態的必要許可。

若要解決此錯誤,請將下列 AWS Identity and Access Management (IAM) 政策新增至 SageMaker 執行角色 (範例:AmazonSageMaker-ExecutionRole-xxxxxxxxxxxxxxx):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "LifecycleConfig",
      "Effect": "Allow",
      "Action": [
        "s3:GetLifecycleConfiguration",
        "s3:PutLifecycleConfiguration"
      ],
      "Resource": "*"
    }
  ]
}

對於Resource (資源),您僅可包含必須存取的區域特定儲存貯體。GetBucketLifecycleConfiguration 會傳回儲存貯體上設定的生命週期組態資訊,而 PutBucketLifecycleConfiguration 會為儲存貯體建立新的生命週期組態。

拒絕存取錯誤

當您使用未加密的輸出設定執行處理作業時,可能會收到下列錯誤。

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied

可能由於以下原因收到此錯誤:

  • SageMaker 執行角色沒有執行 S3 操作的必要許可。
  • S3 儲存貯體政策或 Amazon Virtual Private Cloud (Amazon VPC) 端點政策已明確拒絕接受 PutObject 的許可。如果您只透過提供特定 AWS Key Management Service (AWS KMS) 金鑰來強制執行與 S3 儲存貯體的加密連線,則可能就是這種情況。

若要解決此錯誤,請執行下列動作:

  • 檢查 SageMaker 執行角色是否具有 S3 儲存貯體操作的最低許可:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:ListBucket",
        "s3:CreateBucket",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::sagemaker-us-east-1-1111222233334444",
        "arn:aws:s3:::sagemaker-us-east-1-1111222233334444/*"
      ]
    }
  ]
}
  • 確保 S3 儲存貯體政策或 VPC 端點政策未明確拒絕 S3 操作所需的許可。
  • 考慮將 AWS KMS 金鑰傳遞至處理作業,以便從匯入資料的 S3 儲存貯體中解密物件。
  • 考慮使用不同的 S3 儲存貯體匯入使用 Amazon S3 伺服器端加密的靜態加密資料。

此文章是否有幫助?


您是否需要帳單或技術支援?