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

3분 분량
0

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:encryptkms:decrypt 작업을 허용하는지 확인합니다. 자세한 내용은 SageMaker 역할을 참조하세요.
  • AWS KMS 키 정책은 IAM 역할에 대한 액세스 권한을 부여해야 합니다. 자세한 내용은 AWS KMS에서 키 정책 사용을 참조하세요.
  • 작업의 리소스 구성에서 기계 학습(ML) 스토리지 볼륨에 대한 KMS 키를 사용하는 경우 IAM 정책에서 kms:CreateGrant 작업을 허용해야 합니다. 자세한 내용은 권한 부여 사용을 참조하세요. ML 스토리지 볼륨 암호화에 대한 자세한 내용은 암호화를 사용하여 미사용 데이터 보호를 참조하십시오.
  • Python SDK를 사용하고 Estimator.EstimatorBase 클래스의 추상화를 구현할 때는 kwargs 키워드 인수를 통해 output_kms_keyvolume_kms_key 파라미터를 전달해야 합니다. 이 작업은 상속하는 클래스에 문서화된 사용자가 있는지 여부와 관계없이 수행해야 합니다. 자세한 내용은 추정기를 참조하세요.

권한 경계

실행 역할에 대한 권한 경계를 정의하는 경우 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 키에 액세스할 수 있어야 합니다. 훈련 작업에 AWS KMS 키를 지정하지 않으면 SageMaker가 기본적으로 Amazon S3 서버 측 암호화 키를 사용합니다. 기본 Amazon S3 서버 측 암호화 키는 다른 AWS 계정에서 사용하거나 공유할 수 없습니다.
  • SageMaker 실행 역할 및 S3 버킷 정책에 대한 IAM 정책에 교차 계정 권한이 있는지 확인합니다.

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


관련 정보

Amazon S3의 403 Access Denied 오류를 해결하려면 어떻게 해야 합니까?

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠