provisionsgroup / config-sync-php
为 Laravel 添加远程配置同步功能
Requires
- beyondcode/laravel-credentials: ^1.3
- guzzlehttp/guzzle: ~6.5.2
This package is auto-updated.
Last update: 2024-09-19 23:15:19 UTC
README
Config Sync 是一个通用的 PHP Composer 包,可以扩展以支持多个后端(目前仅支持 HashiCorp Vault),其目的是将一组后端密钥数据同步到本地加密文件。与典型的 PHP Laravel 应用程序相比,Config Sync 的设计目标是:,
- 替换 .env 文件;尤其是密钥
- 替换 ENVIRONMENT 变量;尤其是密钥
- 减少应用程序访问后端密钥或配置数据时的耦合
- 支持 Kubernetes Pod 密钥/配置引导,同时仍支持本地开发
先决条件
命令
php artisan config:sync --backend=vault --environment=developer
选项
可以指定四个选项
--backend=vault : The backend to use for config values
--environment=developer : The backend environment to use
--watch : Flag that keeps the process running rather than running once
--refresh=10 : Only used if the --watch flag is set; frequency of checking with backend and refreshing file
目前,--backend
的唯一选项是 vault
,默认也是 vault
,因此在运行命令时不需要指定此选项。代码以这种方式编写,如果将来选择另一个后端,只要它与接口兼容,就可以轻松替换 Vault。
--environment
选项有三个选择
local
developer
kubernetes
本地环境
本地环境将使用 Vault 认证令牌进行认证并检索密钥来为本地运行的应用程序创建 Config Safe。
开发者环境
开发者环境将使用 Vault 中的开发者挂载创建 Config Safe。第一次,您需要将以下内容添加到您的本地 .env
文件中
VAULT_MOUNT=Vault 挂载位置
VAULT_SECRET=vault 密钥名称
当与 Vault 认证时,Config Sync 假设您将使用您的 LDAP 用户名和密码,但这可以在配置中更改。
Kubernetes 环境
将使用 JWT(Kubernetes 服务帐户令牌)和角色(例如 auditor-portal)来认证 Vault 并检索该角色的密钥以创建 Config Safe 的 Kubernetes 环境。这将使用 JWT(Kubernetes 服务帐户令牌)和角色(例如 auditor-portal)来认证 Vault 并检索该角色的密钥以创建 Config Safe。