php - 如何避免在我的 PHP 应用程序运行到 Docker 容器中的配置上硬编码数据库凭据
问题描述
背景
- 我有一个运行到 PHP Docker 容器中的 Web 应用程序
- 我需要在本地(在容器中)、在 Jenkins(容器 - 测试环境)、在暂存(aws-beanstalk)和生产(aws-beanstalk)中运行
- 每个环境都需要指向不同的数据库
- 我一直在尝试使用 AWS-KMS、AWS-STS、AWS-AMS 解决它,但无法正确解决。
要求
- 我不想硬编码数据库凭据 - 安全原因
有什么专家建议吗?
解决方案
AWS 的最佳实践是使用 AWS Secrets Manager AWS Secrets Manager
将您的数据库凭证存储在 Secrets Manager 中。互联网上有很多编码示例。
然后创建一个有权访问 Secrets Manager 的服务角色。启动时,从 Secrets Manager 获取您的凭据。
推荐阅读
- java - 如何配置 Jackson 和 Spring 以根据 URL 路径和嵌套级别以不同方式呈现对象
- scala - Kryo setWarnUnregisteredClasses 为 true,在 spark 配置中不显示任何内容
- spring-boot - 如果我在 spring-boot 中以服务级别提供 @Async 将不起作用
- ios - Diffable Snapshot 重新加载节标题
- javascript - 如何在nodejs中访问变量文档ID
- c# - C# 使用 System.DirectoryServices.Protocols 针对 MS Active Directory 服务器验证用户
- php - Install.xml 文件在 opencart 3 中作为扩展安装时不会更新 php 文件
- node.js - 在 Windows 上侦听端口 1880 失败
- php - 遇到的非格式良好的数值
- excel - Excel VBA 设置打印区域并全部打印