AWS KMS 관리형 키로 암호화된 S3 객체에 액세스하려는 경우 “Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4”라는 오류를 해결하려면 어떻게 해야 하나요?

3분 분량
0

AWS Key Management Service(AWS KMS)로 암호화된 Amazon Simple Storage Service(S3) 객체에 액세스하려고 합니다. “Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4”라는 오류가 표시됩니다.

해결 방법

AWS Signature Version 4가 아닌 서명 버전을 사용하여 AWS KMS로 암호화된 객체에 액세스할 때 이 오류가 발생합니다. AWS KMS 키로 암호화된 S3 객체에 액세스할 때는 모든 요청이 AWS Signature Version 4로 서명되었는지 확인하세요.

익명 요청을 하고 있지 않은지 확인

익명 요청을 할 때 이 오류가 발생할 수 있습니다. 익명 요청은 AWS 보안 인증으로 서명되지 않은 요청입니다. 익명 요청의 예로는 브라우저 또는 HTTP 클라이언트에서 객체 URL을 사용하여 S3 객체를 다운로드하는 경우를 들 수 있습니다. S3 객체 URL은 다음과 같습니다.

https://bucketname.s3.region.amazonaws.com/folder/file.txt

curl과 같은 HTTP 클라이언트를 사용하여 다음과 유사한 명령으로 익명 요청을 할 수 있습니다.

curl -vo ./local/path/file.txt https://bucketname.s3.region.amazonaws.com/folder/file.txt

AWS Signature Version 2를 사용하고 있지 않은지 확인

일부 S3 REST API 엔드포인트 및 리전은 여전히 Signature Version 2를 사용하여 서명된 요청을 지원합니다. 하지만 로그인에는 Signature Version 4 를 사용하는 것이 가장 좋습니다. 자세한 내용은 Amazon S3에 대한 AWS Signature Version 2 해제(사용하지 않음)를 참조하세요.

일부 리전은 여전히 Signature Version 2를 지원하므로 Signature Version 2로 서명된 요청을 해당 리전의 버킷에 보낼 수 있습니다. 하지만 AWS KMS에서는 Signature Version 4로 요청에 서명해야 합니다. Signature Version 2를 AWS KMS로 암호화된 객체와 함께 사용하는 경우 다음과 같은 오류가 나타납니다.

Requests specifying Server Side Encryption with AWS KMS managed keys require AWS Signature Version 4.

버킷의 객체에 요청할 때 사용한 서명 버전을 확인하려면 다음과 같이 시도해 보세요.

  • AWS CloudTrail 이벤트 로그를 사용하여 어떤 API 서명 버전이Amazon S3에서 요청에 서명하는 데 사용되었는지 확인할 수 있습니다.
  • API에 대한 인증 헤더를 검토하여 특정 요청이 Signature Version 4를 사용하고 있는지 확인할 수 있습니다. 헤더에는 AWS4-HMAC-SHA256 이 포함되어야 합니다. 미리 서명된 URL을 생성하는 경우 쿼리 파라미터?X-Amz-Algorithm=AWS4-HMAC-SHA256이 포함되어 있는지 확인하세요. 이 쿼리 파라미터를 찾을 수 없는 경우 Signature Version 4를 사용하도록 코드를 수정하세요.

참고: AWS KMS 관리형 키를 지정하는 요청의 경우, 반드시 보안 소켓 계층(SSL) 또는 전송 계층 보안(TLS) 을 사용해야 합니다. (SSL 또는 TLS를 사용하지 않은)비보안 연결을 통해 AWS KMS 키를 지정하는 요청을 하면 다음과 같은 오류가 발생합니다.

An error occurred (InvalidArgument) when calling the <operation_performed> operation: Requests specifying Server Side Encryption with AWS KMS managed keys must be made over a secure connection.

관련 정보

AWS KMS(SSE-KMS)를 사용한 서버 측 암호화 지정

요청 인증(AWS Signature Version 2)

AWS 공식
AWS 공식업데이트됨 일 년 전