vpzhyk / aws-secrets-bundle
在Symfony中使用AWS Secrets作为服务容器参数。它是constup/aws-secrets-bundle的分支
Requires
- php: >=8.0
- ext-json: *
- symfony/dependency-injection: ^7.0
Requires (Dev)
- aws/aws-sdk-php: ^3.191
- phpspec/prophecy-phpunit: ^2.2
- phpunit/phpunit: ^11.0.9
- symfony/framework-bundle: ^7.0
- symfony/phpunit-bridge: ^5.3 | ^4.0
This package is not auto-updated.
Last update: 2024-09-27 13:59:33 UTC
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 Secret名称,如下所示
AWS_SECRET=secret_name
如果您想从JSON秘密中获取一个键,您可以分隔秘密名称和键
AWS_SECRET=secret_name,key
使用aws处理器将参数设置为此环境变量
parameters: my_parameter: '%env(aws:AWS_SECRET)%'
您的秘密现在将在运行时加载!
开发笔记
master
分支仅包含文档。di5
分支与PHP 7.4+和Symfony依赖注入5.3+兼容。此分支的发布标签是1.x.xdi6
分支与PHP 8.x和Symfony依赖注入6.0+兼容。此分支的发布标签是2.x.x