aws / aws/containers-roadmap

[ECS] [request]: SPIRE Support within ECS Fargate

Open
#1,449 0 comments 43 reactions 0 assignees View on GitHub
ECS Fargate Proposed
Dominant language
Shell
Stars
5.4k
Forks
334
PR merge metrics
No merged PRs in 30d

Description

### Community Note

* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment

**Tell us about your request**
mTLS via SDS for ECS Fargate. [In the docs](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#mtls-configure-ecs), it says that the technology powering SDS (SPIRE) is not yet supported in AWS ECS, but is in EKS. It would be great to have the same feature available in ECS so that we can secure our workloads with mTLS without needing to mount EFS volumes on container startup or run containers with pre-installed certificates.

**Which service(s) is this request for?**
ECS Fargate

**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
We would like to secure our internal workloads when using ECS Fargate & AWS App Mesh to prevent lateral movement attacks. We can do this to some extent on Fargate by using security groups on individual tasks but if we were to try this with ECS on EC2 and shared hosts it becomes more difficult. mTLS reduces the complexity and customer implementation of this but is currently unavailable.
We cannot implement our own "bring your own sidecar" [as per the AWS recommendation](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html) due to [ECS not supporting SPIRE](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#mtls-configure-ecs).

**Are you currently working around this issue?**
Right now the current workarounds are one of:
- Include the certificate on the file system before container startup (essentially requiring us to maintain our own Docker image based on the [Amazon provided Envoy Image](https://docs.aws.amazon.com/app-mesh/latest/userguide/envoy.html)).
- Mount EFS volumes on container startup (We then need to manage the security of these EFS volumes and install the certificates to them ourselves prior to mounting).

Neither uses the SDS protocol that is [heavily documented and recommended by AWS](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#mtls-configure-ecs).

**Additional context**
_None at this time_

**Attachments**
AWS App Mesh's support of mTLS is one of the selling features, as is its compatibility with AWS Fargate but the disconnect between these two is buried deep within the App Mesh documentation. https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#mtls-configure-ecs
There are a lot of blog posts and articles for mTLS support on EKS - https://aws.amazon.com/blogs/containers/using-mtls-with-spiffe-spire-in-app-mesh-on-eks/ & https://github.com/aws/aws-app-mesh-examples/tree/master/walkthroughs/howto-k8s-mtls-sds-based

Contributor guide

Open the contributing guide

Research direction

Start with the linked AWS App Mesh TLS and mutual TLS documentation, then compare the ECS Fargate limitation with the linked EKS SPIRE example. Determine the requirements for SPIRE/SDS-based mTLS on ECS Fargate; done means the capability is supported and documented for the requested service.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws
Domain
authentication, cloud, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.