getsolaris / laravel-aws-secretsmanager
此包已 废弃 并不再维护。未建议替代包。
Laravel 包,用于从 AWS Secrets Manager 获取密钥管理
v1.0.0
2022-09-25 13:36 UTC
Requires
- php: ^8.0
- ext-json: *
- aws/aws-sdk-php: ^3.0
- illuminate/support: ^6.0 || ^7.0 || ^8.0 || ^9.0
- spatie/data-transfer-object: ^3.0
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2023-06-20 23:28:24 UTC
README
通过 AWS Secrets Manager 进行通信可能会产生不必要的费用。
因此,我们开发了一个简单的缓存包。
安装
您可以通过 composer 安装此包
composer require getsolaris/laravel-aws-secretsmanager
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Getsolaris\LaravelAwsSecretsManager\AwsSecretsManagerServiceProvider" --tag="config"
使用方法
您可以选择缓存驱动和缓存 TTL
默认缓存驱动为 filesystem (storage/framework/cache/data)
# .env CACHE_DRIVER=redis CACHE_TTL=86400 # aws configuration AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=
所需权限: secretsmanager:GetSecretValue
如果密钥使用客户管理的密钥(而不是 AWS 管理的密钥 aws/secretsmanager)加密
示例
createSecret
<?php namespace App\Services; use Getsolaris\LaravelAwsSecretsManager\AwsSecretsManager; class FacebookApiService extends Service { protected AwsSecretsManager $client; public function __construct() { $this->client = new AwsSecretsManager(); } /** * @param string $secretId * @return array * @throws \Exception */ public function createFacebookSecret(): \Aws\Result { $appId = env('FACEBOOK_APP_ID', 'test_app_id_123'); $appSecret = env('FACEBOOK_APP_SECRET', 'test_app_secret_123'); $createSecret = new CreateSecretDto( Name: 'prod/facebook/secret', SecretString: [ 'app_id' => $appId, 'app_secret' => $appSecret, ], ); $createSecret = new CreateSecretDto([ 'Name' => 'prod/facebook/secret', 'SecretString' => [ 'app_id' => $appId, 'app_secret' => $appSecret, ], ]); return $this->client->createSecret($createSecret); } }
getSecret
<?php namespace App\Services; use Getsolaris\LaravelAwsSecretsManager\AwsSecretsManager; class FacebookApiService extends Service { protected AwsSecretsManager $client; public function __construct() { $this->client = new AwsSecretsManager(); } /** * @param string $secretId * @return array * @throws \Exception */ public function getFacebookSecret(): \Aws\Result { return $this->client->getSecret('prod/facebook/secret'); } }
getSecretValue
<?php namespace App\Services; use Getsolaris\LaravelAwsSecretsManager\AwsSecretsManager; class FacebookApiService extends Service { protected AwsSecretsManager $client; public function __construct() { $this->client = new AwsSecretsManager(); } /** * @param string $secretId * @return array * @throws \Exception */ public function getFacebookSecretValue(): array { return $this->client->getSecretValue('prod/facebook/secret'); } }
资源
变更日志
请参阅 CHANGELOG 了解最近的变化。
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。