constup / aws-secrets-bundle
在 Symfony 中使用 AWS Secrets 作为服务容器参数。
Requires
- php: >=8.0
- ext-json: *
- symfony/dependency-injection: ^6.0
Requires (Dev)
- aws/aws-sdk-php: ^3.191
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.5
- symfony/framework-bundle: ^6.0
- symfony/phpunit-bridge: ^5.3 | ^4.0
README
在 Symfony 中使用 AWS Secrets 作为服务容器参数。
历史和荣誉提及
本包基于并受到 incompass/aws-secrets-bundle
(https://github.com/casechek/aws-secrets-bundle) 的启发。Incompass 包与 Symfony 3 和 4 兼容,看起来它不再更新/维护。本包旨在与 Symfony 5 兼容,并将随着时间的推移而得到改进。
如果您仍然使用 Symfony 3 或 4,请使用 Incompass 包代替此包。
先决条件
安装 AWS SDK
由于 Symfony 的官方建议是:“一个包不应包含第三方 PHP 库。它应依赖于标准的 Symfony 自动加载。”
,因此 aws/aws-sdk-php
Composer 包仅作为此包的 dev 依赖项(用于测试目的)包含在内。
您需要自己为您的项目安装 AWS SDK for PHP
composer require aws/aws-sdk-php
AWS 凭据
为了连接到任何 AWS 服务(例如:AWS Secrets Manager),您的应用程序必须在 AWS 服务上经过身份验证。由于存在多种场景,具体取决于您的环境设置,因此在此处介绍了环境和凭据的配置:AWS 凭据和身份验证
安装
AWS Secrets Bundle 有两个主要版本:1.x 和 2.x。
安装 1.x 版本以使用此包与 Symfony 5.x(5.3+)和 PHP 7.4。
$ composer require constup/aws-secrets-bundle:^1
安装 2.x 版本以使用此包与 Symfony 6.x 和 PHP 8.x。
$ composer require constup/aws-secrets-bundle:^2
配置
默认情况下,此包的配置从 config/packages/aws_secrets.yaml
文件或其环境特定替代文件(例如:config/packages/test/aws_secrets.yaml
)加载。以下配置属性可用
aws_secrets: client_config: region: # Required if "ignore" is false. version: 'latest' # Defaults to "latest". endpoint: ~ credentials: key: ~ secret: ~ cache: 'array' # Can be one of the following: apcu, array, filesystem. Default is array. delimiter: ',' # Delimiter to separate key from secret name. ignore: false # Pass through AWS (for local dev environments set to "true").
使用方法
将环境变量设置为 AWS Secret Manager 密钥名称,如下所示
AWS_SECRET=secret_name
如果您想从 JSON 密钥中获取密钥,可以分隔密钥名称和密钥
AWS_SECRET=secret_name,key
使用 aws 处理器设置环境变量中的参数
parameters: my_parameter: '%env(aws:AWS_SECRET)%'
您的密钥现在将在运行时加载!
开发说明
master
分支仅包含文档。di5
分支与 PHP 7.4+ 和 Symfony Dependency Injection 5.3+ 兼容。此分支的发布标签是 1.x.xdi6
分支与 PHP 8.x 和 Symfony Dependency Injection 6.0+ 兼容。此分支的发布标签是 2.x.x