加密 Amazon ECS Service Connect 流量 - Amazon Elastic Container Service

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

加密 Amazon ECS Service Connect 流量

Amazon ECS Service Connect 支援使用適用於 Amazon ECS 服務的 Transport Layer Security (TLS) 憑證進行自動流量加密。當您將 Amazon ECS 服務指向 AWS Private Certificate Authority (AWS Private CA) 時,Amazon ECS 會自動佈建 TLS 憑證,以加密 Amazon ECS Service Connect 服務之間的流量。Amazon ECS 會產生、輪換和分發用於流量加密的 TLS 憑證。

Service Connect 的自動流量加密使用業界領先的加密功能來保護您的服務間通訊,協助您滿足您的安全需求。它支援使用 256-bit ECDSA2048-bit RSA加密的 AWS Private Certificate Authority TLS 憑證。根據預設,支援 TLS 1.3,但不支援 TLS 1.0 - 1.2。您也可以完全控制私有憑證和簽署金鑰,協助您符合合規要求。

注意

若要使用 TLS 1.3,您必須在目標的接聽程式上啟用它。

只有透過 Amazon ECS 代理程式傳遞的傳入和傳出流量才會加密。

AWS Private Certificate Authority 憑證和 Service Connect

發出憑證需要額外的 IAM 許可。Amazon ECS 提供受管資源信任政策,概述許可集。如需此政策的詳細資訊,請參閱 AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurityWord。

AWS Private Certificate Authority Service Connect 模式

AWS Private Certificate Authority 可以兩種模式執行:一般用途和短期。

  • 一般用途 - 可設定任何過期日期的憑證。

  • 短期 - 最長有效性為七天的憑證。

雖然 Amazon ECS 支援兩種模式,但建議使用短期憑證。依預設,憑證每五天輪換一次,並以短期模式執行,可大幅節省一般用途的成本。

Service Connect 不支援憑證撤銷,而是利用短暫憑證,頻繁輪換憑證。您有權在 Secrets Manager 中使用受管輪換來修改輪換頻率、停用或刪除秘密,但這樣做可能會帶來下列可能後果。 https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html

  • 較短輪換頻率 - 由於 AWS Private CA和 AWS KMS Secrets Manager,以及 Auto Scaling 發生輪換的工作負載增加,輪換頻率較短會產生較高的成本。

  • 較長輪換頻率 - 如果輪換頻率超過七天,應用程式的通訊會失敗。

  • 刪除秘密 - 刪除秘密會導致輪換失敗,並影響客戶應用程式通訊。

如果您的秘密輪換失敗,RotationFailed事件會發佈在 中AWS CloudTrail。您也可以為 設定 CloudWatch 警示RotationFailed

重要

請勿將複本區域新增至秘密。這樣做可防止 Amazon ECS 刪除秘密,因為 Amazon ECS 沒有從複寫中移除區域的權限。如果您已新增複寫,請執行下列命令。

aws secretsmanager remove-regions-from-replication \ --secret-id SecretId \ --remove-replica-regions region-name
附屬憑證授權機構

您可以為 Service Connect TLS 帶來任何 AWS Private CA根憑證或下層憑證,為服務發出最終實體憑證。提供的發行者會被視為各地的簽署者和信任根。您可以從不同的附屬 CAs 為應用程式的不同部分發出最終實體憑證。使用 時 AWS CLI,請提供 CA 的 Amazon Resource Name (ARN) 來建立信任鏈。

內部部署憑證授權機構

若要使用內部部署 CA,請在 中建立和設定下級 CA AWS Private Certificate Authority。這可確保針對 Amazon TLS 工作負載發行的所有 ECS 憑證,與您在內部部署執行的工作負載共用信任鏈,並且能夠安全地連線。

重要

AmazonECSManaged : true中新增所需的標籤 AWS Private CA。

基礎設施即程式碼

將 Service Connect TLS 與基礎設施作為程式碼 (IaC) 工具搭配使用時,請務必正確設定相依性以避免問題,例如服務卡在耗盡中。如果提供 AWS KMS 金鑰,則應在 Amazon IAM 服務之後刪除 ECS 角色和 AWS Private CA 相依性。

Service Connect 和 Secrets Manager

將 Amazon ECS Service Connect 與 TLS 加密搭配使用時,服務會以下列方式與 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 政策中使用 條件來排除符合模式的 ARNs 秘密,藉此達成此目的:

"arn:aws:secretsmanager:::secret:ecs-sc!"

一個範例 IAM 政策,以字ecs-sc!首拒絕所有機密GetSecretValue的動作:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:*:*:secret: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 ARN Service Connect 中指定該金鑰的 Amazon Resource Name (ECS)。

以下是範例 AWS KMS 政策。取代 user input 值。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "id", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/role-name" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyPair" ], "Resource": "*" } ] }

如需金鑰政策的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的建立金鑰政策

注意

Service Connect 僅支援對稱加密 AWS KMS 金鑰。您不能使用任何其他類型的 AWS KMS 金鑰來加密 Service Connect 資源。如需判斷金鑰是否為 AWS KMS 對稱加密金鑰的協助,請參閱識別非對稱 KMS 金鑰

如需 AWS Key Management Service 對稱加密金鑰的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的對稱加密 AWS KMS 金鑰