2016-10-19 1 views
1

나는 firebase 백업을하고 있으며 데이터를 안전하게 유지하고 암호화하는 최선의 방법을 찾아 내려하고 있습니다.aws에 업로드 된 파일의 암호화를 최적으로 설정하는 방법은 무엇입니까?

나는 firebase에 공개 PGP 키를 제공하라고 말했지만 AWS에는 키를 생성하는 KMS (Key Management System)도 있습니다. 키를 만들었지 만 공개 키 버전을 어디에서 가져 와서 파이어베이스에 줄지는 모르겠다.

이 작업을 올바르게 수행하고 있는지 확실하지 않지만 버킷 및 데이터의 보안을 최상으로 유지하는 방법에 대한 조언이 있다면 알려 주시기 바랍니다.

답변

1

기본값 인 AES256을 사용하여 "기본"SSE (서버 측 암호화)를 설정할 수 있습니다. 이것과 SSE 헤더가없는 업로드를 거부하는 버킷 정책을 사용하면 괜찮을 것입니다.

각 개체가 고유 한 키로 암호화되어 있고 추가 보호 수단으로 사용하면 꽤 괜찮은 암호화 수준입니다.이 키는 AWS 자체에서 정기적으로 회전하는 마스터 키로 암호화합니다.

{ 
    "Version": "2012-10-17", 
    "Id": "PutObjPolicy", 
    "Statement": [ 
    { 
    "Sid": "DenyIncorrectEncryptionHeader", 
    "Effect": "Deny", 
    "Principal": "*", 
    "Action": "s3:PutObject", 
    "Resource": "arn:aws:s3:::YourBucket/*", 
    "Condition": { 
    "StringNotEquals": { 
     "s3:x-amz-server-side-encryption": "AES256" 
    } 
    } 
}, 
{ 
    "Sid": "DenyUnEncryptedObjectUploads", 
    "Effect": "Deny", 
    "Principal": "*", 
    "Action": "s3:PutObject", 
    "Resource": "arn:aws:s3:::YourBucket/*", 
    "Condition": { 
    "Null": { 
     "s3:x-amz-server-side-encryption": "true" 
    } 
    } 
} 
] 
} 

이는 다음과 같은 요청 헤더가 putObject 요청을 받아 들일 것입니다 :

는 기본적으로 다음과 같은 버킷 정책 적용,이를 설정하는 방법도 설정할 수 있습니다

"x-amz-server-side-encryption":"AES256" 

당신의 KMS (Key Management System)를 소유하고 있지만 오히려 비싸다고 생각합니다.

+0

감사합니다. @tom! 몇 가지 질문이 있습니다. 그래서 객체가 aws를 치고 나면 객체를 암호화합니다. 맞습니까? 공개 키로 aws로 전송되기 전에 개체를 암호화하지 않으시겠습니까? – user3527354

+0

TLS (전송 계층 보안) 1.2를 사용하는 HTTPS를 통해 데이터를 보내면 이미 암호화되어 있어야하지만 완전히 달라집니다. 편집증 수준의 보안을 원한다면 철저히 보안 수준을 높이기 위해 암호화하기 전에 암호를 암호화 할 수도 있습니다. –

관련 문제