

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

# Elastic Beanstalk 的安全最佳實務
<a name="security-best-practices"></a>

AWS Elastic Beanstalk 提供數種安全功能，供您在開發和實作自己的安全政策時考慮。以下最佳實務為一般準則，並不代表完整的安全解決方案。因為這些最佳實務可能不適合或無法滿足您的環境，所以請將它們視為實用建議，不要當成指示。

如需其他 Elastic Beanstalk 安全主題，請參閱 [AWS Elastic Beanstalk 安全性](security.md)。

## 預防性安全最佳實務
<a name="security-best-practices.preventive"></a>

預防性安全控制會嘗試在事件發生前防止事件發生。

### 實作最低權限存取
<a name="security-best-practices.preventive.least-priv"></a>

Elastic Beanstalk 為[執行個體描述](iam-instanceprofile.md)檔、[服務角色](iam-servicerole.md)和 [IAM 使用者](AWSHowTo.iam.managed-policies.md)提供 AWS Identity and Access Management (IAM) 受管政策。這些受管政策會指定讓環境和應用程式正確操作可能需要的所有許可。

您的應用程式可能不需要受管政策中的所有許可。您可以自訂它們，並只授予您環境執行個體、Elastic Beanstalk 服務和使用者執行任務所需的許可。這特別關係到不同使用者角色可能有不同許可需求的使用者政策。對降低錯誤或惡意意圖所引起的安全風險和影響而言，實作最低權限存取是相當重要的一環。

### 保護敏感的應用程式資料
<a name="security-best-practices.preventive.sensitive-data"></a>

當您的應用程式需要存取登入資料、API 金鑰或組態資料等敏感資訊時，請遵循下列實務來維護安全性：
+ 在您的應用程式程式碼中使用其各自SDKs 或 APIs，直接從 AWS Secrets Manager 或 AWS Systems Manager 參數存放區擷取敏感資料。這提供最安全且靈活的方法來存取敏感資訊。
+ 如果您從 AWS Secrets Manager 或 AWS Systems Manager 參數存放區傳遞敏感資料做為環境變數 （請參閱[擷取環境變數的秘密](AWSHowTo.secrets.env-vars.md))，請小心限制對 EC2 金鑰對的存取，並為您的執行個體設定具有最低權限許可的適當 IAM 角色。
+ 切勿在您的應用程式程式碼中列印、記錄或公開敏感資料，因為這些值最終可能會在日誌檔案或錯誤訊息中出現，而未經授權的使用者可能會看到這些值。

### 定期更新您的平台
<a name="security-best-practices.preventive.update"></a>

Elastic Beanstalk 會定期發佈新的平台版本，以更新其所有平台。新的平台版本會提供作業系統、執行時間、應用程式伺服器和 Web 伺服器更新，以及 Elastic Beanstalk 元件的更新。其中許多平台更新包含重要的安全性修正。請確認您的 Elastic Beanstalk 環境在支援的平台版本上執行 (通常是您平台的最新版本)。如需詳細資訊，請參閱[更新您 Elastic Beanstalk 環境的平台版本](using-features.platform.upgrade.md)。

將環境平台保持在最新狀態的最簡單方法，是將環境設定為使用[受管平台更新](environment-platform-update-managed.md)。

### 在環境執行個體上強制執行 IMDSv2
<a name="security-best-practices.preventive.imdsv2"></a>

Elastic Beanstalk 環境中的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體使用執行個體中繼資料服務 (IMDS)，這是一種執行個體上的元件，可安全地存取執行個體中繼資料。IMDS 支援兩種存取資料的方法：IMDSv1 和 IMDSv2。IMDSv2 會使用工作階段導向的請求，並減緩可能用來嘗試存取 IMDS 的幾種漏洞類型。如需 IMDSv2 優勢的詳細資訊，請參閱[提高 EC2 執行個體中繼資料服務防禦深度的增強功能](https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/)。

IMDSv2 更安全，因此，最好在您的執行個體上強制使用 IMDSv2。若要強制執行 IMDSv2，請確定應用程式的所有元件皆支援 IMDSv2，然後停用 IMDSv1。如需詳細資訊，請參閱[在 Elastic Beanstalk 環境的執行個體上設定 IMDS](environments-cfg-ec2-imds.md)。

## 偵測性安全最佳實務
<a name="security-best-practices.detective"></a>

偵測性安全控制會在安全違規發生後識別出它們。它們可協助您偵測潛在的安全威脅或事件。

### 實作監控
<a name="security-best-practices.detective.monitor"></a>

監控是維護 Elastic Beanstalk 解決方案可靠性、安全性、可用性和效能的重要部分。 AWS 提供數種工具和服務，協助您監控 AWS 服務。

以下是一些要監控的項目範例：
+ *適用於 Elastic Beanstalk 的 Amazon CloudWatch 指標* – 針對關鍵的 Elastic Beanstalk 指標和應用程式的自訂指標設定警示。如需詳細資訊，請參閱[搭配 Amazon CloudWatch 使用 Elastic Beanstalk](AWSHowTo.cloudwatch.md)。
+ *AWS CloudTrail 項目* – 追蹤可能影響可用性的動作，例如 `UpdateEnvironment`或 `TerminateEnvironment`。如需詳細資訊，請參閱[使用 記錄 Elastic Beanstalk API 呼叫 AWS CloudTrail](AWSHowTo.cloudtrail.md)。

### 啟用 AWS Config
<a name="security-best-practices.detective.config"></a>

AWS Config 提供帳戶中 AWS 資源組態的詳細檢視。您可以了解資源如相關聯，可以取得組態變更歷程記錄，並且了解關係和組態隨時間產生的變化。

您可以使用 AWS Config 來定義評估資源組態以進行資料合規的規則。 AWS Config 規則代表 Elastic Beanstalk 資源的理想組態設定。如果資源違反規則並標記為*不合規*， AWS Config 可以使用 Amazon Simple Notification Service (Amazon SNS) 主題提醒您。如需詳細資訊，請參閱[使用 尋找和追蹤 Elastic Beanstalk 資源 AWS Config](AWSHowTo.config.md)。