noxlogic/dbalkeyrotate

AWS secrets manager 密钥轮换的 DBAL 驱动程序

dev-master 2020-04-26 10:30 UTC

This package is auto-updated.

Last update: 2024-08-26 20:26:16 UTC


README

AWS secretsmanager 自动检索凭证的 DBAL 驱动程序。

这是一个高度实验性的 POC 库。请勿在生产环境中使用!

此库将自动从 AWS secrets manager 中获取凭证。密钥管理器允许轻松轮换密钥,而此库将自动获取任何新的凭证,无需更改您的代码或重启您的实例、pod 或容器。

由于密钥检索是一个耗时的操作,因此检索到的凭证将存储在缓存中。驱动程序将首先尝试缓存的凭证,只有当这些凭证无法连接时,它才会从密钥管理器中获取凭证。在尝试特定次数后,如果无法检索到正确的凭证,驱动程序将失败。

如果您已设置本地用户名和密码且没有缓存的凭证,这些本地凭证将首先尝试。如果您不需要这种行为,您可以将用户名和密码留空。

用法

$connectionParams = [
    'dbname' => 'mysql',
    'user' => '',
    'password' => '',              
    'host' => 'mydb.1234.eu-west-1.rds.amazonaws.com',
    'driverClass' => KeyRotate\Driver::class,
    'driverOptions' => [
        'cache' => new PhpFileCache(sys_get_temp_dir()),
        'secretId' => /secret/database-2
        'retries' => 5,
        'awsOptions' => [],
    ]
];

驱动程序类需要一些选项才能工作

cache: 驱动程序需要一个必需的缓存服务才能运行。这是一个实现 Doctrine\Cache 的类。

secretId: 需要检索的实际密钥。

retries: 在放弃之前必须完成的数据库连接和密钥检索尝试的次数。

awsOptions: 发送到 AWS 客户端的 AWS 选项数组。这可能包括区域、配置文件等。当在自动从 AWS 客户端获取 AWS 凭据和信息的环境中运行时,可能不需要这些选项。