Amazon web services 如何最好地为上传到aws的文件设置加密?
我正在做firebase备份,并试图找出保持数据安全和加密的最佳方法 firebase告诉我提供一个公共PGP密钥,但AWS也有一个密钥管理系统(KMS)来创建密钥。我创建了一个密钥,但不确定从何处获取该密钥的公钥版本以提供给firebase 不确定我是否做得对,但请告诉我您是否有关于如何最好地保护存储桶及其数据的建议 您可以使用默认的AES256设置“基本”SSE(服务器端加密)。有了这个,再加上一个拒绝任何没有SSE头的上传的bucket策略,你应该可以了 这是一个相当不错的加密级别,因为每个对象都使用一个唯一的密钥进行加密,并且作为额外的保护措施,它使用AWS自身定期旋转的主密钥对所述密钥进行加密 要进行设置,基本上您可以应用以下bucket策略:Amazon web services 如何最好地为上传到aws的文件设置加密?,amazon-web-services,firebase,Amazon Web Services,Firebase,我正在做firebase备份,并试图找出保持数据安全和加密的最佳方法 firebase告诉我提供一个公共PGP密钥,但AWS也有一个密钥管理系统(KMS)来创建密钥。我创建了一个密钥,但不确定从何处获取该密钥的公钥版本以提供给firebase 不确定我是否做得对,但请告诉我您是否有关于如何最好地保护存储桶及其数据的建议 您可以使用默认的AES256设置“基本”SSE(服务器端加密)。有了这个,再加上一个拒绝任何没有SSE头的上传的bucket策略,你应该可以了 这是一个相当不错的加密级别,因为每
{
"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(密钥管理系统),但我认为这相当昂贵。谢谢@tom!几个问题-所以这会在对象击中aws后加密对象,对吗?您不希望在使用公钥将对象发送到aws之前对其进行加密吗?这完全取决于您自己,但如果您通过使用TLS(传输层安全)1.2的HTTPS发送数据,则应该已经对其进行加密。如果你想达到一个偏执的安全级别,你甚至可以在通过电线发送之前对它进行加密,如果你问我的话,这是没有必要的。