亚马逊云科技 - S3 存储桶策略,用于确保 SES 存储的电子邮件地址已加密



我有一个 S3 存储桶,SES 在其中存储电子邮件。我想通过 S3 存储桶策略确保存储的对象已加密。

此处描述的方法不起作用。上传的对象似乎没有设置s3:x-amz-server-side-encryption未设置,SES中也启用了加密。

还有其他标签,例如x-amz-meta-x-amz-matdesc包含 KMS 密钥 ID。所以我尝试了:

"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
  "Resource": "arn:aws:s3:::MY_BUCKET/*",
  "Condition": {
    "StringNotLike": {
      "x-amz-meta-x-amz-matdesc": "kms_cmk_id*"
  }
}

但这项政策不被接受。

这是可用于确保数据加密的策略。以下政策仅在您的电子邮件加密时有效。查看本指南,了解如何在 SES 中加密电子邮件。

http://docs.aws.amazon.com/kms/latest/developerguide/services-ses.html#services-ses-overview

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

查看此博客文章。 加密 SES 消息不会设置 s3:x-amz-server-side-encryption。例如,如果您将加密客户端的密码文本发送到 s3,则不会设置 s3:x-amz-服务器端加密标头。由于未设置标头,因此无法上传 SES 消息,即使消息已加密也是如此。当然,设置此选项将加密密文。 不确定您要实现的目标,但您可以将纯文本 SES 消息发送到 s3 并依靠 s3 对其进行加密,这将在下面的策略中设置 http 标头。

上传到s3时需要设置加密策略,我认为这就是问题所在。

https://blogs.aws.amazon.com/security/post/Tx2R0GFOXFYEDM5/How-to-Prevent-Uploads-of-Unencrypted-Objects-to-Amazon-S3

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

最新更新