기본값 인 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)를 소유하고 있지만 오히려 비싸다고 생각합니다.
감사합니다. @tom! 몇 가지 질문이 있습니다. 그래서 객체가 aws를 치고 나면 객체를 암호화합니다. 맞습니까? 공개 키로 aws로 전송되기 전에 개체를 암호화하지 않으시겠습니까? – user3527354
TLS (전송 계층 보안) 1.2를 사용하는 HTTPS를 통해 데이터를 보내면 이미 암호화되어 있어야하지만 완전히 달라집니다. 편집증 수준의 보안을 원한다면 철저히 보안 수준을 높이기 위해 암호화하기 전에 암호를 암호화 할 수도 있습니다. –