madeiramadeirabr / hagrid
简化与AWS Secrets Manager的集成。
v1.2.002
2021-08-16 17:14 UTC
Requires
- php: ^7.1|^8.0
- aws/aws-sdk-php: 3.*
README
简化与AWS Secrets Manager的集成。
入门指南
此包的目的是简化与AWS Secrets Manager的集成,提供一个轻松检索存储数据的方法。
所有辅助函数都假定您在EC2中有一个角色。此角色必须被允许访问秘密管理器。如果EC2没有访问SM的角色,您需要使用AWS ID和密钥创建自己的辅助函数进行身份验证。所有方法都在这里进行了说明。
先决条件
* PHP >= 7.1;
* JSON PHP Extension;
* Composer
安装
使用Composer下载包。
composer require madeiramadeirabr/hagrid
基本用法
基本集成可以通过三种方式完成。
第一种方法:原始数据检索
这种方式从秘密管理器检索原始json。如果您需要在保存之前操作环境变量,这很有用。
为此,调用秘密管理器辅助函数,如下例所示
$rawData = retrive_secrets($secretId);
响应将类似于以下内容
{
"APP_NAME": "My App Name",
"APP_ENV": "production"
}
第二种方法:创建.env文件
此方法将验证.env文件是否存在,如果不存在,则从秘密管理器检索的数据创建该文件。
$fileCreated = create_env_file($directory, $secretId);
如果文件已创建,响应将为TRUE,如果未创建,则将为FALSE。
第三种方法:在环境中保存数据
此方法将读取从秘密管理器检索的数据,并使用putenv保存。
add_env_vars($secretId);
此方法没有响应。
不使用辅助函数使用
如果EC2没有角色,您可以实例化SecretsManager并传递认证的凭据。
第一种方法
实例化SecretsManager类并调用设置器。
$secretsManager = new SecretsManager();
$secretsManager->setSecretId($secretId)
->setRegion($awsRegion)
->setId($myAwsId)
->setKey($myAwsKey);
第二种方法
使用AWS凭据实例化SecretsManager。
$secretsManager = new SecretsManager($secretId, $awsRegion, $myAwsId, $myAwsKey);
最后
使用上述两种方法中的任何一种后,调用执行数据恢复的方法。
$secretValue = $secretsManager->getSecretValue();
响应
方法'getSecretValue'的响应将类似于以下内容。
{
"APP_NAME": "My App Name",
"APP_ENV": "production"
}
作者
- Lucas Praxedes - 初始工作 - Lucas Praxedes
查看参与此项目的贡献者列表。