vpzhyk/aws-secrets-bundle

在Symfony中使用AWS Secrets作为服务容器参数。它是constup/aws-secrets-bundle的分支

安装: 96

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 12

类型:symfony-bundle

3.0.1 2024-04-11 13:50 UTC

This package is not auto-updated.

Last update: 2024-09-27 13:59:33 UTC


README

GitHub license PHP version Symfony

在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.x
  • di6分支与PHP 8.x和Symfony依赖注入6.0+兼容。此分支的发布标签是2.x.x

示例