本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
加密 Amazon ECS Service Connect 流量
Amazon ECS Service Connect 支援使用 Transport Layer Security (TLS) 憑證,為 Amazon ECS 服務自動加密流量。當您將 Amazon ECS 服務指向 AWS 私有憑證授權單位 (AWS 私有 CA) 時,Amazon ECS 會自動佈建 TLS 憑證,以加密 Amazon ECS Service Connect 服務之間的流量。Amazon ECS 會產生、輪換與分發用於流量加密的 TLS 憑證。
Service Connect 的自動流量加密使用業界領先的加密功能來保護服務間通訊,協助您滿足安全需求。它支援使用 AWS 私有憑證授權單位 256-bit ECDSA和 2048-bit RSA加密的 TLS 憑證。您還可以完全控制私有憑證與簽署金鑰,協助您滿足合規需求。依預設,支援 TLS 1.3,但不支援 TLS 1.0 - 1.2。Service Connect 支援具有下列密碼的 TLS 1.3:
-
TLS_AES_128_GCM_SHA256 -
TLS_AES_256_GCM_SHA384 -
TLS_CHACHA20_POLY1305_SHA256
注意
若要使用 TLS 1.3,必須在目標的接聽程式上將其啟用。
只有透過 Amazon ECS 代理程式傳遞的傳入與傳出流量才會加密。
Service Connect 與 Application Load Balancer 運作狀態檢查
您可以搭配 Application Load Balancer 運作狀態檢查與 TLS 1.3 加密使用 Service Connect。
Application Load Balancer 組態
使用下列設定來設定 Application Load Balancer:
-
使用 TLS 1.3 安全政策 (例如 `ELBSecurityPolicy-TLS13-1-2-2021-06`) 設定 TLS 接聽程式。如需詳細資訊,請參閱 Security policies for your Application Load Balancer。
-
使用下列設定來建立目標群組:
-
將通訊協定設定為 HTTPS
-
將目標群組連接至 TLS 接聽程式
-
將運作狀態檢查連接埠設定為符合 Service Connect 服務的容器連接埠需求
-
Service Connect 組態
使用下列設定來設定服務:
-
將服務設定為使用
awsvpc網路模式,因為不支援bridge網路模式。 -
為服務啟用 Service Connect。
-
使用下列設定來設定負載平衡器組態:
-
指定為 Application Load Balancer 設定的目標群組
-
將容器連接埠設定為符合 Service Connect TLS 服務的容器連接埠需求
-
-
避免為服務設定
ingressPortOverride。如需詳細資訊,請參閱 Amazon Elastic Container Service API Reference 中的 ServiceConnectService。
考量事項
使用 Application Load Balancer、TLS 與 Service Connect 時,請考量下列事項:
-
搭配 TLS 加密使用 Service Connect 時,需使用
awsvpc網路模式 (而不是bridge網路模式) 進行 HTTPS 運作狀態檢查。HTTP 運作狀態檢查將繼續使用bridge模式。 -
將目標群組運作狀態檢查連接埠設定為符合 Service Connect 服務的容器連接埠 (而不是預設的 HTTPS 連接埠 (443)) 需求。
AWS 私有憑證授權單位 憑證和 Service Connect
您需要擁有基礎結構 IAM 角色。如需有關此角色的詳細資訊,請參閱 Amazon ECS 基礎結構 IAM 角色。
AWS 私有憑證授權單位 Service Connect 模式
AWS 私有憑證授權單位 可以兩種模式執行:一般用途和短期。
-
一般用途 – 可設定任何過期日期的憑證。
-
短期 – 有效性上限為七天的憑證。
儘管 Amazon ECS 支援這兩種模式,但建議使用短期憑證。依預設,憑證每五天輪換一次,相較於一般用途模式,在短期模式下執行可大幅節省成本。
Service Connect 不支援撤銷憑證,而是改為利用會頻繁輪換的短期憑證。您有權使用 Secrets Manager 中的受管輪換來修改輪換頻率、停用或刪除秘密,但這樣做可能會產生下列後果。
-
較短的輪換頻率 - 由於 AWS 私有 CA AWS KMS Secrets Manager 和 Amazon EC2 Auto Scaling 的輪換工作負載增加,較短的輪換頻率會產生更高的成本。
-
較長的輪換頻率 – 如果輪換頻率超過七天,應用程式通訊將會失敗。
-
刪除秘密 – 刪除秘密會導致輪換失敗並影響客戶應用程式通訊。
如果秘密輪換失敗,會在 AWS CloudTrail 中發布 RotationFailed 事件。您還可以為 RotationFailed 設定 CloudWatch 警示。
重要
請勿將複本區域新增至秘密。這樣做會阻止 Amazon ECS 刪除秘密,因為 Amazon ECS 沒有從複寫中移除區域的許可。若已新增複寫,請執行下列命令。
aws secretsmanager remove-regions-from-replication \ --secret-idSecretId\ --remove-replica-regionsregion-name
次級憑證授權機構
您可以將任何 AWS 私有 CA根憑證或次級憑證帶到 Service Connect TLS,以發行服務的終端實體憑證。提供的發行者會視為各地的簽署者與信任根。您可以從不同的次級 CA 為應用程式的不同部分發行終端實體憑證。使用 時 AWS CLI,請提供 CA 的 Amazon Resource Name (ARN) 來建立信任鏈。
內部部署憑證授權機構
若要使用內部部署 CA,需要在 AWS 私有憑證授權單位中建立與設定次級 CA。這可確保為 Amazon ECS 工作負載發行的所有 TLS 憑證與在內部部署執行的工作負載共用信任鏈,並且能夠安全地連線。
重要
在 AmazonECSManaged : true中新增必要的標籤 AWS 私有 CA。
基礎設施即程式碼
搭配基礎結構即程式碼 (IaC) 工具使用 Service Connect TLS 時,務必正確設定相依性以避免問題,例如服務停滯在耗盡狀態。如果 AWS KMS 提供金鑰,則應在 Amazon ECS 服務之後刪除 IAM 角色和 AWS 私有 CA 相依性。
如果用於 Service Connect 的命名空間是共用命名空間,您可以選擇使用共用 AWS 私有 CA 資源。如需詳細資訊,請參閱 AWS 私有憑證授權單位 User Guide 中的 Attach a policy for cross-account access。
Service Connect 與 Secrets Manager
搭配 TLS 加密使用 Amazon ECS Service Connect 時,服務會透過下列方式與 Secrets Manager 互動:
Service Connect 會利用提供的基礎結構角色,在 Secrets Manager 中建立秘密。這些秘密用於儲存 TLS 憑證的關聯私有金鑰,以加密 Service Connect 服務之間的流量。
警告
Service Connect 會自動建立與管理這些秘密,從而簡化為服務實作 TLS 加密的程序。但是,務必注意潛在的安全隱患。具有 Secrets Manager 讀取存取權的其他 IAM 角色可能可以存取這些自動建立的秘密。如果未正確設定存取控制,這可能會向未經授權的一方公開敏感的加密資料。
若要降低此風險,請遵循下列最佳實務:
-
小心管理與限制 Secrets Manager 存取權,尤其是 Service Connect 建立的秘密。
-
定期稽核 IAM 角色及其許可,確保遵循最低權限原則。
授予 Secrets Manager 讀取存取權時,請考慮排除 Service Connect 建立的 TLS 私有金鑰。為此,您可以透過在 IAM 政策中使用條件,來排除具備符合下列模式之 ARN 的秘密:
"arn:aws:secretsmanager:::secret:ecs-sc!"
以下是一個 IAM 政策範例,該政策拒絕對所有以 GetSecretValue 為字首的秘密執行 ecs-sc! 動作:
注意
這是一般範例,可能需要根據您的特定使用案例和 AWS 帳戶組態進行調整。務必全面測試 IAM 政策,確保它們在維護安全性的同時提供預期的存取權。
透過了解 Service Connect 如何與 Secrets Manager 互動,您可以更好地管理 Amazon ECS 服務的安全性,同時利用自動 TLS 加密的優勢。
Service Connect 和 AWS Key Management Service
您可以使用 AWS Key Management Service 來加密和解密 Service Connect 資源。 AWS KMS 是一項由 管理的服務,您可以在 AWS 其中建立和管理加密金鑰來保護您的資料。
AWS KMS 搭配 Service Connect 使用 時,您可以選擇使用 AWS 為您 AWS 管理的 擁有金鑰,也可以選擇現有的 AWS KMS 金鑰。您也可以建立要使用的新 AWS KMS 金鑰。
提供自己的加密金鑰
您可以提供自己的金鑰材料,也可以透過將自己的金鑰 AWS Key Management Service 匯入 來使用外部金鑰存放區 AWS KMS,然後在 Amazon ECS Service Connect 中指定該金鑰的 Amazon Resource Name (ARN)。
以下是範例 AWS KMS 政策。將 user-input 值取代實際值。
如需有關金鑰政策的詳細資訊,請參閱 AWS Key Management Service Developer Guide 中的 Creating a key policy。
注意
Service Connect 僅支援對稱加密 AWS KMS 金鑰。您無法使用任何其他類型的 AWS KMS 金鑰來加密 Service Connect 資源。如需判斷 AWS KMS 金鑰是否為對稱加密金鑰的說明,請參閱識別非對稱 KMS 金鑰。
如需對稱加密金鑰的詳細資訊,請參閱《 AWS Key Management Service AWS Key Management Service 開發人員指南》中的對稱加密 AWS KMS 金鑰。