Amazon SageMaker Data Wrangler를 사용하여 Amazon Simple Storage Service(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 버킷 정책 또는 Amazon Virtual Private Cloud(VPC) 엔드포인트 정책에서 PutObject에 대한 권한을 명시적으로 거부했습니다.
특정 AWS Key Management Service(AWS KMS) 키를 제공하여 S3 버킷에 대한 암호화된 연결만 적용하는 경우 이 문제가 발생할 수 있습니다.
이 오류를 해결하려면 다음을 수행하세요.L
- 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 작업에 필요한 권한을 명시적으로 거부하지 않는지 확인합니다.
-
데이터를 가져오는 곳에서 S3 버킷의 개체를 해독할 수 있는 처리 작업에 AWS KMS 키를 전달하는 것을 고려하세요.
-
Amazon S3 서버 측 암호화를 사용하여 미사용 시 암호화된 데이터를 가져올 때 다른 S3 버킷을 사용하는 것이 좋습니다.