2016-07-15 6 views
0

Ich habe einen S3-Bucket, in dem SES E-Mails speichert. Ich möchte über eine S3-Bucket-Policy sicherstellen, dass die gespeicherten Objekte verschlüsselt werden.S3-Bucket-Richtlinie, um sicherzustellen, dass von SES gespeicherte E-Mails verschlüsselt werden

Die beschriebene Methode here funktioniert nicht. Die hochgeladenen Objekte scheinen nicht gesetzt s3:x-amz-server-side-encryption ist nicht festgelegt, auch die Verschlüsselung ist in SES aktiviert.

Es gibt weitere Tags, z. B. x-amz-meta-x-amz-matdesc enthält die KMS-Schlüssel-ID. Also habe ich versucht:

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

Aber diese Politik wird nicht akzeptiert.

Antwort

0

Mit dieser Richtlinie können Sie sicherstellen, dass die Daten verschlüsselt sind. Die unten stehende Richtlinie funktioniert nur, wenn Ihre E-Mails verschlüsselt sind. Überprüfen Sie diese Anleitung, um die E-Mail in SES zu verschlüsseln.

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" 
      } 
     } 
     } 
    ] 
} 
+0

, die aus der Verbindung I zur Verfügung gestellt, die genaue Politik. Leider funktioniert es nicht in Kombination mit SES-Verschlüsselung. – Nathan

+0

Welchen Fehler gibt es? – error2007s

+0

Beim Erstellen des SES-Regelsatzes: Konnte nicht in den Bucket schreiben: (Request ID: 35d6ce04-4a8e-11e6-b780-c79a3c67756e) – Nathan

0

prüfen dieses Blog-Post aus. Durch das Verschlüsseln der SES-Nachricht wird s3: x-amz-serverseitige Verschlüsselung nicht festgelegt. Wenn Sie z. B. verschlüsselten Text an s3 senden, der auf der Clientseite verschlüsselt ist, wird der Header s3: x-amz-serverseitige Verschlüsselung nicht festgelegt. Da der Header nicht festgelegt ist, können Sie die SES-Nachricht nicht hochladen, obwohl die Nachricht verschlüsselt ist. Natürlich wird dies den verschlüsselten Text verschlüsseln. Sie sind nicht sicher, was Sie erreichen möchten, aber Sie könnten die SES-Nachricht im Nur-Text-Format an s3 senden und sich auf s3 verlassen, um sie zu verschlüsseln, wodurch der http-Header in der unten stehenden Richtlinie festgelegt würde.

Sie müssen die Verschlüsselungsrichtlinie beim Hochladen auf s3, glaube ich, dass das Problem ist.

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 
         } 
       } 
      } 
    ] 
} 
+0

Was ich versuche zu tun: Ich versuche zu verhindern, dass jemand versehentlich unverschlüsselte E-Mails im Eimer speichert. Jetzt sagst du, ich könnte "auf S3 vertrauen, um es zu verschlüsseln". Ich kann keine Informationen finden, wie man das mit SES EMails macht. Haben Sie weitere Informationen dazu? Die von Ihnen gepostete Richtlinie funktioniert nicht, da SES die Kopfzeile nicht definiert. – Nathan

+0

Was ist Ihr Anwendungsfall? Laden die Benutzer E-Mails manuell auf S3 hoch? Ist es eine Art automatisierter Prozess? Müssen die E-Mails jederzeit oder nur in S3 verschlüsselt sein? –

+0

Der s3-Bucket speichert E-Mails von ses, die ich konfiguriere, um eingehende Mails in s3 zu speichern. Ich werde in Zukunft weitere Mails hinzufügen, und ich möchte verhindern, dass ich ses so konfiguriere, dass sie unverschlüsselt gespeichert werden. Die Mails werden nicht verschlüsselt, wenn sie in den ses SMTP Server kommen. – Nathan