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 ID およびアクセス管理 (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 バケットポリシーまたは AWS Key Management Service (AWS KMS) エンドポイントポリシーのいずれかが、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/*"
]
}
]
}