Amazon SES 和安全通訊協定 - Amazon Simple Email Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon SES 和安全通訊協定

本主題說明在連線至 Amazon SES 以及 Amazon SES 遞送郵件給接收者時,可使用的安全通訊協定。

電子郵件寄件者對 Amazon SES

您連線至 Amazon SES 所使用的安全通訊協定,取決於您使用的是 Amazon SES API 還是 Amazon SES SMTP 界面,詳情如下。

HTTPS

如果您使用 Amazon SES API (直接或透過 AWS SDK),則所有通訊都會透過 Amazon SES HTTPS 端點由 TLS 加密。Amazon SES HTTPS 端點支援 TLS 1.2 和 TLS 1.3。

SMTP 界面

如果您透過 SMTP 界面存取 Amazon SES,則需使用 Transport Layer Security (TLS) 加密連線。請注意,TLS 通常是指前置工作通訊協定的名稱,Secure Sockets Layer (SSL)。

Amazon SES 支援透過兩種機制來建立 TLS 加密連線:STARTTLS 和 TLS Wrapper。

  • STARTTLS - STARTTLS 是一種將未加密連線升級為加密連線的方法。各種通訊協定適用的 STARTTLS 版本各不相同,RFC 3207 定有 SMTP 版本的規範。對於 STARTTLS 連線,Amazon SES 支援 TLS 1.2 和 TLS 1.3。

  • TLS Wrapper - TLS Wrapper (也稱為 SMTPS 或 Handshake 通訊協定) 是一種無需先建立未加密連線來啟動加密連線的方法。使用 TLS Wrapper 時,Amazon SES SMTP 端點不會執行 TLS 交涉:使用 TLS 連接端點、在整個對話過程中使用 TLS 來繼續等工作都是用戶端的責任。TLS Wrapper 是較舊的通訊協定,但是仍受許多用戶端支援。針對 TLS Wrapper 連線,Amazon SES 支援 TLS 1.2 和 TLS 1.3。

如需使用這些方法連線至 Amazon SES SMTP 界面的資訊,請參閱「連線到 Amazon SES SMTP 端點」。

Amazon SES 對接收者

雖然 TLS 1.3 是我們的預設交付方法,但 SES 可以使用舊版 TLS 將電子郵件交付至郵件伺服器。

預設情況下,Amazon SES 使用隨機 TLS。這表示 Amazon SES 會一律嘗試與接收郵件伺服器建立安全連線。如果 Amazon SES 無法建立安全的連線,便會傳送未加密的訊息。

您可以透過使用組態集來變更這種行為。使用 PutConfigurationSetDeliveryOptions API 操作來將組態集的 TlsPolicy 屬性設為 Require。您可以使用 AWS CLI 來進行此變更。

將 Amazon SES 設定為需要組態集的 TLS 連線
  • 在命令列中輸入以下命令:

    aws sesv2 put-configuration-set-delivery-options --configuration-set-name MyConfigurationSet --tls-policy REQUIRE

    在上述範例中,使用您組態集的名稱來取代 MyConfigurationSet

    如果 Amazon SES 能建立安全連線,當您傳送使用此組態集的電子郵件時,就只會將此訊息傳送至接收電子郵件伺服器。如果 Amazon SES 無法與接收電子郵件伺服器建立安全連線,則會捨棄此訊息。

端對端加密

您可以使用 Amazon SES 傳送以 S/MIME 或 PGP 加密的訊息。使用這些通訊協定的訊息會由寄件者加密。其內容只能由擁有解密訊息所需之私有金鑰的收件人檢視。

Amazon SES 支援以下 MIME 類型,您可以用來傳送 S/MIME 加密的電子郵件:

  • application/pkcs7-mime

  • application/pkcs7-signature

  • application/x-pkcs7-mime

  • application/x-pkcs7-signature

Amazon SES 也支援以下 MIME 類型,您可以用來傳送 PGP 加密的電子郵件:

  • application/pgp-encrypted

  • application/pgp-keys

  • application/pgp-signature