tapp/laravel-aws-secrets-manager

使用 AWS Secrets manager 加载环境变量进行配置。

v1.0.0 2024-07-24 10:13 UTC

This package is auto-updated.

Last update: 2024-09-24 10:43:41 UTC


README

Latest Version on Packagist Tests Laravel 10 Total Downloads

使用 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_NAMEAWS_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.keyOTHER_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

  1. 存储新秘密。
  2. 选择秘密类型,AWS 管理的或其他的。
  3. 输入密钥/值,密钥应与环境变量匹配。
  4. 给它一个秘密名称和描述
  5. 添加标签键/值(阶段 => 生产)是一个示例,如果您想拉取所有生产秘密。

缓存配置

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