freebuu / laravel-vault
Laravel HashiCorp Vault 包
dev-master
2023-08-20 20:42 UTC
Requires
- php: ^7.4 || ^8.0
- csharpru/vault-php: ^4.2
- guzzlehttp/guzzle: ^6.3 || ^7.2
- http-interop/http-factory-guzzle: ^1.0
- illuminate/console: ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10
- illuminate/support: ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-24 22:37:59 UTC
README
在部署时从远程(HashiCorp Vault)获取 .env
警告!这是一个非常初级的 alpha 版本,无法正常使用。 不建议现在使用
快速入门
安装
composer require freebuu/laravel-vault
php artisan vendor:publish --tag=config --provider="FreeBuu\LaravelVault\LaravelVaultServiceProvider"
配置
从 Vault 添加补丁和变量到 vault.php 中的秘密
'vars' => [ 'patches' => [ '/secret/database/{env}' ], 'patch_variables' => [ 'env' => 'production', ], ]
覆盖凭据
使用 Vault 选项创建 vault.json 文件 - 结构必须与 vault.php 相同
在这里您可以覆盖 vault.php 中的所有选项
{
"connections": {
"vault": {
"host": "http://vault",
"role_id": "your_secret_id",
"secret_id": "your_secret_id"
}
}
}
使用
base64 -w 0 vault.json | php artisan vault:get --stdin --b64
如果一切正常(凭据有效且有权访问秘密补丁),您将看到所有补丁的合并值
+---------+------------+ | Key | Value | +---------+------------+ | secret1 | value1 | | secret2 | value2 | +---------+------------+
- 要保存到 .env - 添加选项 --output=currentEnv
- 要保存到 .env.next - 添加选项 --output=nextEnv
在 CI 中使用
这里有一个来自 CI 的简写命令
- 在运行器上,获取一个 token 文档
- 使用该 token 获取 .env
php artisan vault:ci s.JYVfe67632rRDtyf --app=my_project --env=production
- s.JYVfe67632rRDtyf - Vault 一次性 token
- my_project - 应用名称,设置 'app' 补丁变量。可选。
- production - 应用环境,设置 'env' 补丁变量。可选。