Criptografia do tráfego do Amazon ECS Service Connect
O Service Connect do Amazon ECS oferece suporte à criptografia automática de tráfego com certificados Transport Layer Security (TLS) para serviços do Amazon ECS. Ao direcionar os serviços do Amazon ECS para uma AWS Private Certificate Authority (AWS Private CA), o Amazon ECS provisiona automaticamente certificados TLS para criptografar o tráfego entre os serviços do Service Connect para Amazon ECS. O Amazon ECS gera, alterna e distribui certificados TLS usados na criptografia de tráfego.
A criptografia automática de tráfego com o Service Connect usa funcionalidades de criptografia líderes do setor para proteger a comunicação entre os serviços, ajudando você a cumprir os requisitos de segurança. Ela oferece suporte a certificados TLS da AWS Private Certificate Authority com criptografia 256-bit
ECDSA
e 2048-bit RSA
. Por padrão, o TLS 1.3 é compatível, mas o TLS 1.0 a 1.2 não é. Você também tem controle total sobre certificados privados e chaves de assinatura para ajudar a atender aos requisitos de conformidade.
nota
Para usar o protocolo TLS 1.3, é necessário habilitá-lo no receptor do destino.
Somente o tráfego de entrada e de saída que é transferido pelo agente do Amazon ECS é criptografado.
Certificados da AWS Private Certificate Authority e Service Connect
Existem permissões adicionais do IAM obrigatórias para a emissão de certificados. O Amazon ECS fornece uma política de confiança para recursos gerenciados que descreve o conjunto de permissões. Para obter mais informações sobre essa política, consulte AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity.
Modos da AWS Private Certificate Authority para Service Connect
A AWS Private Certificate Authority pode ser executada em dois modos: de uso geral e de curta duração.
-
Uso geral: certificados que podem ser configurados com qualquer data de expiração.
-
De curta duração: certificados com validade máxima de sete dias.
Embora o Amazon ECS ofereça suporte aos dois modos, recomendamos usar certificados de curta duração. Por padrão, os certificados são alternados a cada cinco dias, e a execução em modo de curta duração oferece economias de custo significativas em relação ao de uso geral.
O Service Connect não oferece suporte à revogação de certificados. Em vez disso, utiliza certificados de curta duração com alternância frequente de certificados. Você tem autoridade para modificar a frequência de alternância, desabilitar ou excluir os segredos usando a rotação gerenciada no Secrets Manager, mas isso pode acarretar as possíveis consequências a seguir.
-
Frequência de alternância mais curta: uma frequência de alternância mais curta incorre em custos mais altos porque AWS Private CA, AWS KMS, Secrets Manager e Auto Scaling enfrentam uma maior workload de alternância.
-
Frequência de alternância mais longa: as comunicações das aplicações falham se a frequência de alternância exceder sete dias.
-
Exclusão do segredo: excluir o segredo resulta em falha na alternância e afeta as comunicações da aplicação com o cliente.
Caso ocorra falha na alternância do segredo, um evento RotationFailed
é publicado no AWS CloudTrail. Você também pode configurar um alarme do CloudWatch para RotationFailed
.
Importante
Não adicione regiões de réplica aos segredos. Isso evita que o Amazon ECS exclua o segredo, pois o Amazon ECS não tem permissão para remover regiões da replicação. Se você já adicionou a replicação, execute o comando a seguir.
aws secretsmanager remove-regions-from-replication \ --secret-id
SecretId
\ --remove-replica-regionsregion-name
Autoridades de certificação subordinadas
Você pode trazer qualquer AWS Private CA, raiz ou subordinado, ao protocolo TLS do Service Connect a fim de emitir certificados de entidades finais para os serviços. O emissor fornecido é tratado como signatário e raiz da confiança em todos os lugares. Você pode emitir certificados de entidade final para diferentes partes da aplicação em diferentes CAs subordinadas. Ao usar a AWS CLI, forneça o nome do recurso da Amazon (ARN) da CA para estabelecer a cadeia de confiança.
Autoridades de certificação on-premises
Para usar a CA on-premises, você cria e configura uma CA subordinada na AWS Private Certificate Authority. Isso garante que todos os certificados TLS emitidos para as workloads do Amazon ECS compartilhem a cadeia de confiança com as workloads que você executa on-premises e possam se conectar com segurança.
Importante
Adicione a etiqueta obrigatória AmazonECSManaged :
true
em seu AWS Private CA.
Infraestrutura como código
Ao usar o TLS no Service Connect com as ferramentas de infraestrutura como código (IaC), é importante configurar as dependências corretamente para evitar problemas, como serviços presos no esgotamento. A chave AWS KMS, se fornecida, o perfil do IAM e as dependências de AWS Private CA devem ser excluídas após o serviço Amazon ECS.
Service Connect e Secrets Manager
Quando o Amazon ECS Service Connect com criptografia TLS é usado, o serviço interage com o Secrets Manager das seguintes formas:
O Service Connect utiliza o perfil de infraestrutura fornecido para criar segredos no Secrets Manager. Esses segredos são usados para armazenar as chaves privadas associadas aos seus certificados TLS para criptografar o tráfego entre os serviços do Service Connect.
Atenção
A criação e o gerenciamento automáticos desses segredos pelo Service Connect simplificam o processo de implementação da criptografia TLS para seus serviços. No entanto, é importante estar ciente das possíveis implicações de segurança. Outros perfis do IAM que têm acesso de leitura ao Secrets Manager podem acessar esses segredos criados automaticamente. Isso poderá expor material criptográfico confidencial a partes não autorizadas se os controles de acesso não estiverem configurados adequadamente.
Para minimizar esse risco, siga estas práticas recomendadas:
-
Gerencie e restrinja cuidadosamente o acesso ao Secrets Manager, especialmente para segredos criados pelo Service Connect.
-
Audite regularmente os perfis do IAM e suas permissões para garantir que o princípio do privilégio mínimo seja mantido.
Ao conceder acesso de leitura ao Secrets Manager, considere excluir as chaves privadas TLS criadas pelo Service Connect. É possível fazer isso usando uma condição em suas políticas do IAM para excluir segredos com ARNs que correspondem ao padrão:
"arn:aws:secretsmanager:::secret:ecs-sc!"
Um exemplo de política do IAM que nega a ação GetSecretValue
a todos os segredos com o prefixo ecs-sc!
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:*:*:secret:ecs-sc!*" } ] }
nota
Esse é um exemplo geral e pode precisar ser ajustado com base no seu caso de uso específico e na configuração da conta da AWS. Sempre teste suas políticas do IAM minuciosamente para garantir que elas forneçam o acesso pretendido e, ao mesmo tempo, mantenham a segurança.
Ao entender como o Service Connect interage com o Secrets Manager, você pode gerenciar melhor a segurança dos seus serviços do Amazon ECS enquanto aproveita os benefícios da criptografia TLS automática.
Service Connect e AWS Key Management Service
Você pode usar o AWS Key Management Service para criptografar e descriptografar os recursos do Service Connect. O AWS KMS é um serviço gerenciado pela AWS no qual você pode criar e gerenciar chaves criptográficas que protegem seus dados.
Ao usar o AWS KMS com o Service Connect, você pode optar por usar uma chave de propriedade da AWS que a AWS gerencia para você ou escolher uma chave do AWS KMS existente. Você também pode criar uma chave do AWS KMS para usar.
Como fornecer sua própria chave de criptografia
Você pode fornecer seus próprios materiais de chave ou usar um repositório de chaves externo por meio do AWS Key Management Service Import your own key into AWS KMS e especificar o nome do recurso da Amazon (ARN) dessa chave no Service Connect do Amazon ECS.
Veja abaixo um exemplo de política AWS KMS. Substitua os valores das entradas do usuário
pelos seus.
{ "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": "*" } ] }
Para obter mais informações sobre políticas de chave, consulte Creating a key policy no Guia do desenvolvedor do AWS Key Management Service.
nota
O Service Connect só oferece suporte a chaves de criptografia simétricas do AWS KMS. Você não pode usar nenhum outro tipo de chave do AWS KMS para criptografar os recursos do Service Connect. Para obter ajuda para determinar se uma chave do AWS KMS é simétrica, consulte Identificar chaves do KMS assimétricas.
Para obter mais informações sobre chaves de criptografia simétricas do AWS Key Management Service, consulte Symmetric encryption AWS KMS keys no Guia do desenvolvedor do AWS Key Management Service.