如何疑難排解使用 SageMaker Data Wrangler 匯入資料至 Amazon SageMaker Studio 時的錯誤?

1 分的閱讀內容
0

當我嘗試使用 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 Lifecycle 組態的必要許可。

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

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "LifecycleConfig",
      "Effect": "Allow",
      "Action": [
        "s3:GetLifecycleConfiguration",
        "s3:PutLifecycleConfiguration"
      ],
      "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",
      ],
      "Resource": [
        "arn:aws:s3:::sagemaker-us-east-1-1111222233334444",
        "arn:aws:s3:::sagemaker-us-east-1-1111222233334444/*"
      ]
    }
  ]
}
  • 確保 S3 儲存貯體政策或 VPC 端點政策並未明確拒絕 S3 作業的必要許可。
  • 考慮將 AWS KMS key 傳遞至允許在匯入資料的 S3 儲存貯體中解密物件的處理工作。
  • 考慮使用 Amazon S3 伺服器端加密的不同 S3 儲存貯體來匯入已加密無虞的資料。

AWS 官方
AWS 官方已更新 1 年前