【问题标题】:How to store JKS certificate in AWS Secret Manager?如何在 AWS Secret Manager 中存储 JKS 证书?
【发布时间】:2020-11-15 18:12:02
【问题描述】:

我需要从我的 Java 应用程序中安全地存储和获取 keystore.jkstruststore.jks 文件,以便与外部应用程序进行安全通信。

我们可以将这些文件存储在 AWS Secret Manager 中吗?

我无法找到适当的文档将 JKS 证书作为机密存储在 AWS 机密管理器中。

【问题讨论】:

  • java 应用程序是在 AWS 上运行(例如在 ec2 实例、ecs docker 容器上)还是完全独立?
  • 是的,java 应用程序运行在 AWS(ecs docker 容器)上

标签: java amazon-web-services aws-sdk aws-secrets-manager


【解决方案1】:

您可以将这些作为二进制机密存储在 SecretsManager 中,只要它们在大小限制之下。或者,您可以将它们存储在使用 KMS CMK 加密的私有 S3 存储桶中。

由于 Java 期望在 Java 应用程序启动之前存在于文件系统上的 truststore.jks 和 keystore.jks 文件,因此您需要编写 docker 容器脚本以在启动 Java 应用程序之前将文件下载到正在运行的容器中,例如通过在 Docker 映像中包含和使用 AWS CLI 工具。

要让您的 ECS 应用程序访问下载文件,您需要为 ECS 任务分配适当的 IAM 权限。

【讨论】:

    【解决方案2】:

    您可以从 AWS Secret Manager 添加和检索证书。但这也取决于您的证书的大小。在这里阅读:Quotas for AWS Secrets Manager

    AWS Secrets Manager 的密钥有各种限制,例如长度 字符 (65,536)。

    阅读文档:Storing the certificates in AWS Secrets Manager

    注意:您需要使用 HTTP 解析器/Lambda 解析器才能对 AWS Secrets Manager 进行 http 调用以获取密钥。

    【讨论】:

    • 该引用没有出现在链接页面中。该页面上给出的密钥的实际长度为 65,536 字节。
    • 是的。感谢您的纠正。我已经更新了答案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2020-08-16
    • 1970-01-01
    • 2021-11-26
    • 2020-07-19
    • 2020-06-18
    • 2021-06-29
    相关资源
    最近更新 更多