简化与AWS Secrets Manager的集成。

v1.2.002 2021-08-16 17:14 UTC

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"
}

作者

查看参与此项目的贡献者列表。