tapp / laravel-aws-secrets-manager
使用 AWS Secrets manager 加载环境变量进行配置。
Requires
- php: ^7.1 || ^7.3 || ^7.4 || ^8.0 || ^8.1 || ^8.3
- aws/aws-sdk-php: ^3.145 || ^3.219 || ^3.263
- illuminate/support: ^6.0 || ^7.0 || ^8.0 || ^9.8 || ^10.6 || ^11.0
Requires (Dev)
- orchestra/testbench: ^3.8 || ^5.0 || ^6.0 || ^7.4 || ^8.2
- phpunit/phpunit: ^7.0 || ^8.4 || ^9.3.3 || ^11.0.1
README
使用 AWS Secrets Manager 管理环境秘密。
安装
您可以通过 composer 安装此包
composer require tapp/laravel-aws-secrets-manager
发布配置
php artisan vendor:publish --provider="Tapp\LaravelAwsSecretsManager\LaravelAwsSecretsManagerServiceProvider"
用法
此包会尝试在任何处于 enabled-environments
配置数组中的环境中加载 AWS Secrets manager 的秘密。建议启用缓存以减少对 AWS Secrets Manager 的往返。
可用的环境值
AWS_DEFAULT_REGION AWS_SECRETS_TAG_NAME=stage AWS_SECRETS_TAG_VALUE=production
AWS_SECRETS_TAG_NAME
和 AWS_SECRETS_TAG_VALUE
用于拉取与标签键/值匹配的所有秘密。
其他基于环境的配置
启用环境
指定哪些环境应该启用 AWS Secrets
AWS_SECRETS_ENABLED_ENV=production,staging
默认值: production
可覆盖变量配置
指定哪些变量可以使用 .env
文件中的 AWS_SECRETS_VARIABLES_CONFIGS
键覆盖配置。格式是逗号分隔的 ENV_VARIABLE_NAME:CONFIG_KEY
对。
例如
VARIABLES_CONFIG_KEYS=APP_KEY:app.key,OTHER_KEY:app.other_key
此设置允许 APP_KEY
覆盖配置中的 app.key
,OTHER_KEY
覆盖 app.other_key
。
默认行为:如果 AWS_SECRETS_VARIABLES_CONFIGS
未设置或为空,则不会设置任何变量以覆盖配置。
缓存设置
例如
AWS_SECRETS_CACHE_ENABLED=true
AWS_SECRETS_CACHE_EXPIRY=60
AWS_SECRETS_CACHE_STORE=file
设置 AWS Secrets
- 存储新秘密。
- 选择秘密类型,AWS 管理的或其他的。
- 输入密钥/值,密钥应与环境变量匹配。
- 给它一个秘密名称和描述
- 添加标签键/值(阶段 => 生产)是一个示例,如果您想拉取所有生产秘密。
缓存配置
php artisan config:cache
AWS 凭据
由于此包使用 PHP AWS SDK,以下 .env 值被使用或凭据设置在 ~/.aws/credentials。
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
密钥轮换
如果启用密钥轮换,则最近的下一次轮换日期将被缓存,并且如果它已经过去,我们将强制获取秘密。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现任何与安全相关的问题,请通过 security@tappnetwork.com 发送电子邮件,而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。
Laravel 包模板
此包是用 Laravel 包模板 生成的。
Laravel Google App Engine (GAE) 数据存储秘密管理器
此包在很大程度上基于 GAE 包。 laravel-GAE-secret-manager。