Amazon S3 오류 응답에 대한 청구

Amazon S3 오류 응답에 대한 청구 (Billing for Amazon S3 error responses)

일반적으로 S3 버킷 소유자는 HTTP 200 OK 성공 응답과 HTTP 4XX 클라이언트 오류 응답이 있는 요청에 대해 청구돼요. 버킷 소유자는 HTTP 503 Slow Down 오류 같은 HTTP 5XX 서버 오류 응답에 대해서는 청구되지 않아요.

버킷이 Requester Pays 버킷으로 구성된 경우 청구 요금에 대한 자세한 내용은 Requester Pays 요금의 작동 방식을 참고하세요.

다음 표는 청구되지 않는 HTTP 3XX 및 4XX 상태 코드 아래의 특정 오류 코드를 나열해요. 웹 사이트 호스팅으로 구성된 버킷의 경우 S3가 사용자 지정 오류 문서를 반환하거나 사용자 지정 리디렉션의 경우 적용 가능한 요청 및 기타 요금이 여전히 부과돼요.

참고 AccessDenied(HTTP 403 Forbidden)의 경우, 요청이 버킷 소유자의 개별 AWS 계정이나 버킷 소유자의 AWS 조직 외부에서 시작된 경우 S3는 버킷 소유자에게 요금을 부과하지 않아요.

본문

HTTP 상태 코드 오류 코드 오류 코드 설명
301 Moved Permanently PermanentRedirect 접근하려는 버킷은 지정된 엔드포인트로 주소를 지정해야 해요. 향후 모든 요청을 이 엔드포인트로 보내요.
PermanentRedirectControlError 접근하려는 API 작업은 지정된 엔드포인트로 주소를 지정해야 해요. 향후 모든 요청을 이 엔드포인트로 보내요.
307 Temporary Redirect TemporaryRedirect DNS(Domain Name System) 서버가 업데이트되는 동안 버킷으로 리디렉션되고 있어요.
400 Bad Request AuthorizationHeaderMalformed 제공한 인증 헤더가 유효하지 않아요.
AuthorizationQueryParametersError 제공한 인증 쿼리 파라미터가 유효하지 않아요.
ConnectionClosedByRequester WriteGetObjectResponse 본문을 읽는 동안 오류가 발생하면 원래 호출자에게 반환돼요.
DeviceNotActiveError 디바이스가 현재 활성화되어 있지 않아요.
EndpointNotFound 올바른 엔드포인트로 요청을 직접 보내요.
ExpiredToken 제공한 토큰이 만료됐어요.
IllegalLocationConstraintException 버킷이 존재하는 리전이 아닌 다른 리전에서 버킷에 접근하려고 해요. 이 오류를 방지하려면 --region 옵션을 사용해요. 예: aws s3 cp awsexample.txt s3://amzn-s3-demo-bucket/ --region ap-east-1.
InvalidArgument 이 오류는 다음 이유로 발생할 수 있어요: 지정된 인수가 유효하지 않음, 요청에 필수 헤더가 누락됨, 지정된 인수가 불완전하거나 잘못된 형식, 지정된 인수의 길이가 3보다 크거나 같아야 함.
InvalidBucketOwnerAWSAccountID 예상 버킷 소유자 파라미터의 값은 AWS 계정 ID여야 해요.
InvalidDigest 지정한 Content-MD5 또는 체크섬 값이 유효하지 않아요.
InvalidEncryptionAlgorithmError 지정한 암호화 요청이 유효하지 않아요. 유효한 값은 AES256이에요.
InvalidHostHeader 요청에 제공된 호스트 헤더가 잘못된 스타일 주소 지정을 사용했어요.
InvalidHttpMethod 예기치 않은 HTTP 메서드로 요청이 이루어졌어요.
InvalidRequest 이 오류는 다음 이유로 발생할 수 있어요: 요청이 잘못된 서명 버전을 사용함(AWS4-HMAC-SHA256, Signature Version 4 사용), 액세스 포인트는 기존 버킷에만 만들 수 있음, 액세스 포인트가 삭제할 수 있는 상태가 아님, 액세스 포인트는 기존 버킷에만 나열할 수 있음, 다음 토큰이 유효하지 않음, 수명주기 규칙에 최소 하나의 작업을 지정해야 함, 최소 하나의 수명주기 규칙을 지정해야 함, 수명주기 규칙 수는 허용 한도인 1000개 규칙을 초과할 수 없음, MaxResults 파라미터의 범위가 유효하지 않음, SOAP 요청은 HTTPS 연결을 통해 이루어져야 함, Amazon S3 Transfer Acceleration은 DNS 호환 이름이 아닌 버킷에 지원되지 않음, Amazon S3 Transfer Acceleration은 이름에 마침표(.)가 있는 버킷에 지원되지 않음, Amazon S3 Transfer Acceleration 엔드포인트는 가상 스타일 요청만 지원함, 이 버킷에 Amazon S3 Transfer Acceleration이 구성되지 않음, 이 버킷에서 Amazon S3 Transfer Acceleration이 비활성화됨, 이 버킷에서는 Amazon S3 Transfer Acceleration이 지원되지 않음(도움이 필요하면 Support에 문의), 이 버킷에서 Amazon S3 Transfer Acceleration을 활성화할 수 없음(도움이 필요하면 Support에 문의), HTTP 헤더와 쿼리 파라미터에 상충하는 값이 제공됨, HTTP 헤더와 POST 양식 필드에 상충하는 값이 제공됨, 크기가 5GB보다 큰 객체에 대해 CopyObject 요청이 이루어짐.
InvalidSessionException 세션이 시간 초과되거나 만료되어 더 이상 존재하지 않으면 반환돼요.
InvalidSignature 서버가 계산한 요청 서명이 제공한 서명과 일치하지 않아요. AWS 비밀 액세스 키와 서명 방법을 확인해요. 자세한 내용은 REST 요청 서명 및 인증을 참고하세요.
InvalidSOAPRequest SOAP 요청 본문이 유효하지 않아요.
InvalidStorageClass 지정한 스토리지 클래스가 유효하지 않아요.
InvalidTag 요청에 유효하지 않은 태그 입력이 포함되어 있어요. 예를 들어 요청에 중복 키, 너무 긴 키나 값, 시스템 태그가 포함될 수 있어요.
InvalidToken 제공한 토큰이 잘못되었거나 그 외에 유효하지 않아요.
InvalidURI 지정한 URI를 구문 분석할 수 없었어요.
KeyTooLongError 키가 너무 길어요.
KMS.DisabledException 지정된 KMS 키가 활성화되지 않아 요청이 거부됐어요.
KMS.InvalidKeyUsageException 다음 이유 중 하나로 요청이 거부됐어요: KMS 키의 KeyUsage 값이 API 작업과 호환되지 않음, 작업에 지정된 암호화 알고리즘 또는 서명 알고리즘이 KMS 키(KeySpec)의 키 자료 유형과 호환되지 않음. 데이터 키를 암호화·복호화·재암호화·생성하려면 KeyUsage가 ENCRYPT_DECRYPT여야 해요. 메시지 서명·검증에는 SIGN_VERIFY, 메시지 인증 코드(MAC) 생성·검증에는 GENERATE_VERIFY_MAC, 키 합의 비밀 파생에는 KEY_AGREEMENT여야 해요. KMS 키의 KeyUsage를 찾으려면 DescribeKey 작업을 사용해요. 특정 KMS 키에 대해 지원되는 암호화 또는 서명 알고리즘을 찾으려면 DescribeKey 작업을 사용해요.
KMS.KMSInvalidStateException 지정된 리소스의 상태가 이 요청에 유효하지 않아 요청이 거부됐어요. 이 예외는 다음 중 하나를 의미해요: KMS 키의 키 상태가 작업과 호환되지 않음. 키 상태를 찾으려면 DescribeKey 작업을 사용해요. 각 KMS 작업과 호환되는 키 상태에 대한 자세한 내용은 AWS Key Management Service Developer Guide의 AWS KMS 키 상태를 참고하세요. 사용자 지정 키 스토어의 KMS 키에 대한 암호화 작업의 경우 이 예외는 많은 가능한 원인이 있는 일반적 실패를 나타내요. 원인을 파악하려면 예외와 함께 제공된 오류 메시지를 확인해요.
KMS.NotFoundException 지정된 엔터티 또는 리소스를 찾을 수 없어 요청이 거부됐어요.
LambdaInvalidResponse WriteGetObjectResponse가 AWS Lambda에 ValidationError로 응답하면 원래 호출자에게 반환돼요. 자세한 내용은 ValidationError 메시지를 참고하세요. 모든 ValidationError 사례가 LambdaInvalidResponse 오류를 초래하는 것은 아니에요.
LambdaInvocationFailed Lambda 함수 호출이 실패했어요. S3 Object Lambda가 구성된 Lambda 함수를 성공적으로 호출할 수 없으면 호출자가 다음 오류를 받을 수 있어요. 오류 메시지에는 함수를 호출할 때 AWS Lambda 서비스가 반환하는 최종 오류에 대한 세부 정보(예: 상태 코드, 오류 코드, 오류 메시지, 요청 ID)가 포함될 수 있어요.
MalformedACLError 제공한 ACL이 제대로 구성되지 않았거나 게시된 스키마에 대해 검증되지 않았어요.
MalformedPOSTRequest POST 요청의 본문이 잘 구성되지 않은 multipart/form-data예요.
MalformedXML 제공한 XML이 제대로 구성되지 않았거나 게시된 스키마에 대해 검증되지 않았어요.
MaxPostPreDataLengthExceededError 업로드 파일 앞의 POST 요청 필드가 너무 컸어요.
MetadataTooLarge 메타데이터 헤더가 허용된 최대 메타데이터 크기를 초과해요.
MissingAttachment SOAP 첨부 파일이 예상됐지만 찾을 수 없었어요.
MissingRequestBodyError 빈 XML 문서를 요청으로 보냈어요.
MissingSecurityHeader 요청에 필수 헤더가 누락됐어요.
NoLoggingStatusForKey 키에 대한 로깅 상태 하위 리소스는 존재하지 않아요.
NotDeviceOwnerError 토큰을 생성한 디바이스가 인증된 사용자의 소유가 아니에요.
ResponseInterrupted WriteGetObjectResponse 본문을 읽는 동안 오류가 발생하면 원래 호출자에게 반환돼요.
RequestHeaderSectionTooLarge 요청을 만드는 데 사용된 요청 헤더와 쿼리 파라미터가 허용된 최대 크기를 초과해요.
TokenCodeInvalidError 제공한 일련번호 및/또는 토큰 코드가 유효하지 않아요.
UnexpectedContent 이 요청에 지원되지 않는 콘텐츠가 포함되어 있어요.
UnsupportedArgument 요청에 지원되지 않는 인수가 포함되어 있어요.
UnsupportedSignature 제공한 요청이 지원되지 않는 STS 토큰 버전으로 서명되었거나 서명 버전이 지원되지 않아요.
UserKeyMustBeSpecified 버킷 POST 요청에 지정된 필드 이름이 포함되어야 해요. 지정된 경우 필드 순서를 확인해요.
IncorrectEndpoint 지정된 버킷이 다른 리전에 존재해요. 올바른 엔드포인트로 요청을 직접 보내요.
ValidationError WriteGetObjectResponse API 작업에서 검증 오류가 반환될 수 있으며 여러 이유로 발생할 수 있어요. 자세한 내용은 오류 메시지를 참고하세요.
403 Forbidden RequestTimeTooSkewed 요청 시간과 서버 시간의 차이가 너무 커요.
SignatureDoesNotMatch 서버가 계산한 요청 서명이 제공한 서명과 일치하지 않아요. AWS 비밀 액세스 키와 서명 방법을 확인해요. 자세한 내용은 REST 인증과 SOAP 인증을 참고하세요.
NotSignedUp 계정이 Amazon S3 서비스에 가입되어 있지 않아요. Amazon S3를 사용하려면 먼저 가입해야 해요. https://aws.amazon.com/s3 에서 가입할 수 있어요.
InvalidSecurity 제공한 보안 자격 증명이 유효하지 않아요.
InvalidPayer 이 객체에 대한 모든 액세스가 비활성화됐어요. 자세한 도움말은 Contact Us를 참고하세요.
InvalidAccessKeyId 제공한 AWS 액세스 키 ID가 기록에 존재하지 않아요.
AccountProblem 작업을 성공적으로 완료하지 못하게 하는 AWS 계정 문제가 있어요. 자세한 도움말은 Contact Us를 참고하세요.
UnauthorizedAccessError 중국 리전에만 적용돼요. ICP 라이선스가 없는 버킷에 요청할 때 반환돼요. 자세한 내용은 ICP Recordal을 참고하세요.
UnexpectedIPError 중국 리전에만 적용돼요. IP가 예기치 않았기 때문에 요청이 거부됐어요.
MissingAuthenticationToken 요청이 서명되지 않았어요.
LambdaPermissionError 호출자가 Lambda 함수를 호출할 권한이 없어요. 호출자에게 Lambda 함수를 호출할 권한이 있어야 해요. 호출자에 연결된 정책을 확인하고 구성된 함수에 lambda:Invoke 사용이 허용되었는지 확인해요. 오류 메시지에는 함수를 호출할 때 Lambda 서비스가 반환하는 최종 오류에 대한 세부 정보가 포함될 수 있어요.
404 Not Found LambdaNotFound AWS Lambda 함수를 찾을 수 없었어요. 호출을 시도할 때 구성된 Lambda 함수, 버전 또는 별칭을 찾을 수 없었어요. S3 Object Lambda 액세스 포인트 구성이 올바른 Lambda 함수 ARN을 가리키는지 확인해요. 오류 메시지에는 함수를 호출할 때 Lambda 서비스가 반환하는 최종 오류에 대한 세부 정보가 포함될 수 있어요.
NoSuchAsyncRequest 지정된 요청을 찾을 수 없었어요.
NoSuchObjectLockConfiguration 지정된 객체에 ObjectLock 구성이 없어요.
NoSuchUpload 지정된 멀티파트 업로드가 존재하지 않아요. 업로드 ID가 유효하지 않거나 멀티파트 업로드가 중단 또는 완료되었을 수 있어요.
NoSuchWebsiteConfiguration 지정된 버킷에 웹 사이트 구성이 없어요.
NoTransformationDefined 이 Object Lambda 액세스 포인트에 대한 변환을 찾을 수 없어요.
ObjectLockConfigurationNotFoundError 이 버킷에 대한 Object Lock 구성이 존재하지 않아요.
405 Method Not Allowed MethodNotAllowed 지정된 메서드가 이 리소스에 대해 허용되지 않아요.
409 Conflict BucketAlreadyExists 요청한 버킷 이름을 사용할 수 없어요. 버킷 네임스페이스는 시스템의 모든 사용자가 공유해요. 다른 이름을 지정하고 다시 시도해요.
InvalidBucketState 요청이 버킷의 현재 상태에 유효하지 않아요.
OperationAborted 이 리소스에 대해 상충하는 조건부 작업이 현재 진행 중이에요. 다시 시도해요.
411 Length Required MissingContentLength Content-Length HTTP 헤더를 제공해야 해요.
412 Precondition Failed RequestIsNotMultiPartContent 버킷 POST 요청은 enclosure 유형의 multipart/form-data여야 해요.
416 Requested Range Not Satisfiable InvalidRange 요청한 범위가 요청에 유효하지 않아요. 다른 범위를 시도해요.

출처: 문서

더 알아보기