

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

# 確認 ELB 負載平衡器需要終止 TLS
<a name="verify-that-elb-load-balancers-require-tls-termination"></a>

*Priyanka Chaudhary，Amazon Web Services*

## 總結
<a name="verify-that-elb-load-balancers-require-tls-termination-summary"></a>

在 Amazon Web Services (AWS) 雲端上，Elastic Load Balancing (ELB) 會自動將傳入的應用程式流量分散到多個目標，例如 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體、容器、IP 地址和 AWS Lambda 函數。負載平衡器使用接聽程式來定義負載平衡器用來接受來自使用者的流量的連接埠和通訊協定。Application Load Balancer 在應用程式層進行路由決策，並使用 HTTP/HTTPS 通訊協定。Classic Load Balancer 會在傳輸層、使用 TCP 或 Secure Sockets Layer (SSL) 通訊協定，或使用 HTTP/HTTPS 在應用程式層進行路由決策。

此模式提供安全性控制，可檢查 Application Load Balancer 和 Classic Load Balancer 的多種事件類型。叫用函數時，AWS Lambda 會檢查事件，並確保負載平衡器合規。

函數會在下列 API 呼叫上啟動 Amazon CloudWatch Events 事件：[CreateLoadBalancer](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_CreateLoadBalancer.html)、[CreateLoadBalancerListeners](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_CreateLoadBalancerListeners.html)、[DeleteLoadBalancerListeners](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DeleteLoadBalancerListeners.html)、[CreateLoadBalancerPolicy](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_CreateLoadBalancerPolicy.html)、[SetLoadBalancerPoliciesOfListener](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_SetLoadBalancerPoliciesOfListener.html)、[CreateListener](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateListener.html)、[DeleteListener](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DeleteListener.html) 和 [ModifyListener](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_ModifyListener.html)。當事件偵測到其中一個 APIs時，它會呼叫執行 Python 指令碼的 AWS Lambda。Python 指令碼會評估 以查看接聽程式是否包含 SSL 憑證，以及套用的政策是否使用 Transport Layer Security (TLS)。如果 SSL 政策確定為 TLS 以外的任何項目，則函數會傳送 Amazon Simple Notification Service (Amazon SNS) 通知給使用者，其中包含相關資訊。 

## 先決條件和限制
<a name="verify-that-elb-load-balancers-require-tls-termination-prereqs"></a>

**先決條件**
+ 作用中的 AWS 帳戶

**限制**
+ 除非更新負載平衡器接聽程式，否則此安全控制不會檢查現有的負載平衡器。
+ 此安全控制是區域性的。您必須將其部署到您要監控的每個 AWS 區域。

## Architecture
<a name="verify-that-elb-load-balancers-require-tls-termination-architecture"></a>

**目標架構**

![確保負載平衡器需要終止 TLS。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/da99cda2-ac34-4791-a2bd-d37264d8d3d9/images/af92b3c8-32bb-45eb-a2a8-d8276fb3e824.png)


**自動化和擴展**
+ 如果您使用的是 [AWS Organizations](https://aws.amazon.com/organizations/)，則可以使用 [AWS Cloudformation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)，將此範本部署到您要監控的多個帳戶中。

## 工具
<a name="verify-that-elb-load-balancers-require-tls-termination-tools"></a>

**AWS 服務**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) – AWS CloudFormation 可協助您建立模型和設定 AWS 資源、快速一致地佈建資源，以及在整個生命週期中管理資源。您可以使用範本來描述資源及其相依性，並將它們一起啟動和設定為堆疊，而不是個別管理資源。
+ [Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) – Amazon CloudWatch Events 提供近乎即時的系統事件串流，說明 AWS 資源的變更。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) – AWS Lambda 是一種運算服務，支援執行程式碼，無需佈建或管理伺服器。
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) – Amazon Simple Storage Service (Amazon S3) 是一種高度可擴展的物件儲存服務，可用於各種儲存解決方案，包括網站、行動應用程式、備份和資料湖。
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) – Amazon Simple Notification Service (Amazon SNS) 會協調和管理發佈者和用戶端之間的訊息傳遞或傳送，包括 Web 伺服器和電子郵件地址。訂閱者會收到發佈到所訂閱主題的所有訊息，且某一主題的所有訂閱者均會收到相同訊息。

**Code**

此模式包含下列附件：
+ `ELBRequirestlstermination.zip` – 用於安全控制的 Lambda 程式碼。
+ `ELBRequirestlstermination.yml` – 設定事件和 Lambda 函數的 CloudFormation 範本。

## 史詩
<a name="verify-that-elb-load-balancers-require-tls-termination-epics"></a>

### 設定 S3 儲存貯體
<a name="set-up-the-s3-bucket"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 定義 S3 儲存貯體。 | 在 [Amazon S3 主控台](https://console.aws.amazon.com/s3/)上，選擇或建立 S3 儲存貯體以託管 Lambda 程式碼 .zip 檔案。此 S3 儲存貯體必須與您要評估的負載平衡器位於相同的 AWS 區域。S3 儲存貯體名稱全域唯一，且命名空間由所有 AWS 帳戶共用。S3 儲存貯體名稱不能包含正斜線。 | 雲端架構師 | 
| 上傳 Lambda 程式碼。 | 將*附件*區段中提供的 Lambda 程式碼 (`ELBRequirestlstermination.zip` 檔案） 上傳至 S3 儲存貯體。 | 雲端架構師 | 

### 部署 CloudFormation 範本
<a name="deploy-the-cloudformation-template"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 啟動 AWS CloudFormation 範本。 | 在與 S3 儲存貯體相同的 AWS 區域中開啟 [AWS CloudFormation 主控台](https://console.aws.amazon.com/cloudformation/)，並部署連接的範本 `ELBRequirestlstermination.yml`。如需部署 AWS CloudFormation 範本的詳細資訊，請參閱 CloudFormation 文件中的[在 AWS CloudFormation 主控台上建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。 CloudFormation  | 雲端架構師 | 
| 完成範本中的參數。 | 當您啟動範本時，系統會提示您輸入下列資訊：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/verify-that-elb-load-balancers-require-tls-termination.html) | 雲端架構師 | 

### 確認訂閱
<a name="confirm-the-subscription"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 確認訂閱。 | 當 CloudFormation 範本成功部署時，它會傳送訂閱電子郵件到您提供的電子郵件地址。您必須確認此電子郵件訂閱，才能開始接收違規通知。 | 雲端架構師 | 

## 相關資源
<a name="verify-that-elb-load-balancers-require-tls-termination-resources"></a>
+ [在 AWS CloudFormation 主控台上建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) (AWS CloudFormation 文件）
+ [什麼是 AWS Lambda？](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) (AWS Lambda 文件）
+ [什麼是 Classic Load Balancer？](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/introduction.html) (ELB 文件）
+ [什麼是 Application Load Balancer？](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) (ELB 文件）

## 附件
<a name="attachments-da99cda2-ac34-4791-a2bd-d37264d8d3d9"></a>

若要存取與本文件相關聯的其他內容，請解壓縮下列檔案： [attachment.zip](samples/p-attach/da99cda2-ac34-4791-a2bd-d37264d8d3d9/attachments/attachment.zip)