在 AWS 中为 docker 中托管的服务存储 SAML 元数据文件的位置

Where to store SAML metadata file for services hosted in docker in AWS

我们在 AWS Fargate 的 docker 中托管了一组服务。我们的要求之一是为用户支持 SAML2 SSO。因此,身份提供者为开发环境生成了 SAML 元数据。 SAML 库能够从该文件中读取所有设置,因此无需手动配置 SAML 身份验证。由于我们在 docker 图像中构建服务,并希望在多个环境中重复使用同一图像,因此图像中不能包含 SAML 元数据。 如何将此文件安全地存储在 AWS 中,以及如何根据要求或身份提供商请求轻松更改它?

我在这里看到了几个选项,但 none 是最优的:

  1. 将 SAML 元数据存储在 S3 存储桶中并使用 KMS 对其进行加密。由于 SAML 库仅与本地文件系统集成,我们需要在将元数据馈送到库之前添加一些 "proxy-file" reader
  2. 将 SAML 元数据文件拆分为多个变量(如 EntityId、登录 url、注销 url 等)并将它们作为加密变量存储在 AWS SSM Parameter Store 中。此解决方案使 devops(针对新环境)和开发人员(初始库配置)的配置变得复杂。此外,不可能在 运行 时间内更改配置模式。

我正在寻找可以将 SAML 元数据安全地存储在 AWS 中并且可以针对新环境(阶段、产品等)轻松更改而无需重建初始代码的解决方案。

看来你可以使用 AWS EFS(弹性文件系统)它可以跨多个实例共享并支持完整的块级文件系统。

EFS 在您的用户案例中的优势:

  • 支持全块文件系统,无需编写代理文件reader

  • 静态加密可用

  • EFS 由多个主机并发访问共享,因此适用于 fargate

  • 对于生产环境和开发环境,您可以使用两个不同的 EFS 卷

有关详细信息,请转至以下 link

Amazon Elastic File System

你问的问题很有趣,如果你需要进一步讨论,请告诉我我愿意讨论