initiativesolutions/secrets-manager

加密敏感应用数据

1.0.10 2023-12-29 08:49 UTC

This package is not auto-updated.

Last update: 2024-09-20 12:12:58 UTC


README

Secrets Manager 应用程序是一个命令行工具,允许您对应用程序的 .env 文件中的敏感值进行加密。这确保了敏感值不会以明文形式存储,从而增强了应用程序的安全性。

该项目有两个不同的用途

  • 用于令牌加密(命令行使用)
  • 从应用程序中解密令牌(秘密提供者)

安装

对于令牌加密

要安装命令行工具应用程序,请按照以下步骤操作

  1. 克隆此存储库: git clone https://github.com/initiativesolutions/secrets-manager.git
  2. 安装依赖项: composer install

对于令牌提供者

从您想要解密令牌的应用程序

  1. 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/ 运行测试。