0

데이터 유실시 암호화되도록 유성 앱에서 S3에 업로드하려고합니다. 나는 this package을 사용하고 있지만 SSE를 지정하는 것을 지원하지 않기 때문에 수정했다. (나는 이것을 issue로 만들었다.)S3로 업로드하면 서버 측 암호화 (SSE)를 지정할 때 금지됨

if ops.server_side_encryption 
    form_data.append "x-amz-server-side-encryption", "AES256" 

true로 ops.server_side_encryption를 설정하는 방법 : 코드의 내 포크 버전에서

, 나는 this file의 아래쪽에 uploadFile 기능이 라인을 추가했다.

이것은 모두 매우 간단하며 게시 된 form_data에 x-amz-server-side-encryption": "AES256"을 성공적으로 추가합니다. 문제는이 매개 변수를 추가하면 s3의 403 Forbidden 응답이 발생한다는 것입니다.

AWS docs don't say 버킷은 에 대해 특별한 것이어야하며이 새로운 매개 변수이므로 SSE를 허용해야합니다. 그들은 에 대해 클라이언트 요청이 암호화를 지정하고이 정책을 아무 쓸모 없게 추가하려고했으나 (이 매개 변수를 허용하려면 특수 정책이 필요하다고 말하지 않기 때문에 작동하지 않을 것이라고 생각합니다) .

클라이언트 업로드 요청에서 SSE 매개 변수를 허용하기 위해 필요한 일부 구성에 대한 정보가 누락 되었습니까?

+0

S3 버킷에 AES256 암호화 사용을 방해하는 사용자 지정 정책이있을 가능성이 있습니까? –

+0

정책이 공백이기 때문에 아니오라고 말하고, SSE를 지정하지 않은 요청을 성공적으로 허용하지 않았지만 SSE를 지정하는 요청을 성공적으로 허용 할 수없는 정책을 가지고 주위를 둘러 보았습니다. – tscizzle

+0

위 코드를 주석 처리하면 암호화되지 않은 파일 이외의 다른 문제없이 업로드 할 수 있습니까? –

답변

0

(I 마크 B의 의견 덕분에 있음) 대답은 이것이다 : 나는 S3에 파일을 업로드하는 폼 POST 방법을 사용했다

. 게시물의 정책 문서에 특정 제한 사항이 포함될 수 있다는 사실을 잊었습니다. 전송할 정책 문서가 암호화를 허용해야합니다 (내 조건 중 하나 인 {"x-amz-server-side-encryption": "AES256"}).

관련 문제