Amazon SageMaker 훈련 작업에서 Amazon S3 AccessDenied 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 9월 3일

AmazonSageMakerFullAccess 정책이 실행 역할에 연결되어 있는 대도 AccessDenied 오류로 인해 Amazon SageMaker 훈련 작업이 실패했습니다.

간략한 설명

AccessDenied 오류는 AWS Identity and Access Management(IAM) 정책에서 다음 Amazon Simple Storage Service(Amazon S3) 작업을 하나 이상 허용하지 않음을 나타냅니다.

  • s3:ListBucket
  • s3:GetObject
  • s3:PutObject

필요한 권한은 호출하는 SageMaker API에 따라 다릅니다. 예를 들어, CreateModel API에 필요한 유일한 Amazon S3 작업은 s3:GetObject입니다. 그러나 CreateTrainingJob API에는 s3:GetObject, s3:PutObject 및 s3:ListObject가 필요합니다. 각 API에 필요한 권한에 대한 자세한 내용은 SageMaker 역할을 참조하십시오.

​해결방법

AccessDenied 오류는 일반적으로 다음 시나리오에서 발생합니다.

암호화된 입력 버킷

S3 버킷의 데이터가 AWS Key Management Service(AWS KMS)로 암호화되는 경우:

  • 실행 역할에 연결된 IAM 정책이 kms:encrypt 및 kms:decrypt 작업을 허용하는지 확인합니다. 자세한 내용은 SageMaker 역할을 참조하십시오.
  • AWS KMS 키 정책은 IAM 역할에 대한 액세스 권한을 부여해야 합니다. 자세한 내용은 AWS KMS에서 키 정책 사용을 참조하십시오.
  • 작업의 리소스 구성에서 기계 학습(ML) 스토리지 볼륨에 대한 KMS 키를 지정하는 경우 IAM 정책에서 kms:CreateGrant 작업을 허용해야 합니다. 자세한 내용은 권한 부여 사용을 참조하십시오. ML 스토리지 볼륨 암호화에 대한 자세한 내용은 암호화를 사용하여 미사용 데이터 보호를 참조하십시오.

권한 경계

실행 역할에 대한 권한 경계를 정의하는 경우 SageMaker는 IAM 정책과 권한 경계 모두에서 허용되는 작업만 실행할 수 있습니다. IAM 정책 및 권한 경계가 필요한 Amazon S3 작업을 허용하는지 확인합니다.

버킷 정책

입력 버킷이 버킷 정책을 사용하는 경우, 버킷 정책에서 실행 역할이 필요한 Amazon S3 작업을 수행할 수 있도록 허용해야 합니다. 버킷 정책에 대한 자세한 내용은 Amazon S3의 정책 및 권한을 참조하십시오.

다음은 SageMaker 실행 역할에 대한 액세스를 거부하고 AccessDenied 오류를 야기하는 버킷 정책의 예입니다.

{
    "Version": "2012-10-17",
    "Id": "ExamplePolicy01",
    "Statement": [
        {
            "Sid": "ExampleStatement01",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::Account-ID:role/SageMakerExecutionRole"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::awsdoc-example-bucket/*",
                "arn:aws:s3:::awsdoc-example-bucket"
            ]
        }
    ]
}

교차 계정 Amazon S3 액세스

다른 AWS 계정이 Amazon S3 데이터를 소유하고 있는 경우:

  • 두 계정 모두 AWS KMS 고객 마스터 키(CMK)에 액세스할 수 있어야 합니다. 훈련 작업에 CMK를 지정하지 않으면 SageMaker가 기본적으로 Amazon S3 서버 측 암호화 키를 사용합니다. 기본 Amazon S3 서버 측 암호화 키는 다른 AWS 계정에서 사용하거나 공유할 수 없습니다.
  • SageMaker 실행 역할 및 S3 버킷 정책에 대한 IAM 정책에 교차 계정 권한이 있는지 확인합니다.

자세한 내용은 Amazon SageMaker 모델을 다른 AWS 계정에 배포하려면 어떻게 해야 합니까?를 참조하십시오.


이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?