initiativesolutions / secrets-manager
加密敏感应用数据
Requires
- ext-openssl: *
- ext-readline: *
- symfony/yaml: >=5.0
Requires (Dev)
- phpunit/phpunit: ^10.3
README
Secrets Manager 应用程序是一个命令行工具,允许您对应用程序的
.env
文件中的敏感值进行加密。这确保了敏感值不会以明文形式存储,从而增强了应用程序的安全性。
该项目有两个不同的用途
- 用于令牌加密(命令行使用)
- 从应用程序中解密令牌(秘密提供者)
安装
对于令牌加密
要安装命令行工具应用程序,请按照以下步骤操作
- 克隆此存储库:
git clone https://github.com/initiativesolutions/secrets-manager.git
- 安装依赖项:
composer install
对于令牌提供者
从您想要解密令牌的应用程序
composer require initiativesolutions/secrets-manager
用法
对于令牌加密
确保您使用具有机器或服务器上必要权限的用户运行应用程序,因为应用程序执行文件读写操作。
配置
应用程序的默认配置设置在 config.yaml
文件中。请确保根据您的需求调整这些值。
示例
encryption_key: location: /var/keys/secrets-manager/encryption file_name: encrypt.key secrets_files: location: /var/keys/secrets-manager/secrets prefix: secrets_ encrypt: algorithm: aes256
命令
以下是应用程序中可用的命令
-
bin/secretctl encrypt [TOKEN_NAME] -app [APPLICATION_NAME] -env [ENVIRONNEMENT_NAME]
:逐个加密令牌。 -
bin/secretctl encrypt -file [PATH_TO_JSON_TOKENS] -app [APPLICATION_NAME] -env [ENVIRONNEMENT_NAME] [--remove-file]
:通过传递路径加密 JSON 文件(您可以使用 --remove-file 在加密后删除 .json 文件) -
bin/secretctl rotate
:重新加密令牌并生成新的安全密钥。 -
bin/secretctl delete [TOKEN_NAME] -app [APPLICATION_NAME] -env [ENVIRONNEMENT_NAME]
:删除令牌。 -
bin/secretctl list -app [APPLICATION_NAME] -env [ENVIRONNEMENT_NAME]
:列出令牌。 -
bin/secretctl help
:查看所有命令的帮助信息
如果在运行
bin/secretctl
时遇到问题,请运行:chmod +x bin/secretctl && sed -i -e 's/\r$//' bin/secretctl
对于令牌提供者
$tokens = (new SecretsProvider()) ->decrypt('path/to/encrypt.key', 'path/to/secrets/tokens'); $_ENV = array_merge($_ENV, $tokens);
测试
您可以使用 vendor/bin/phpunit tests/
运行测试。