noxlogic / dbalkeyrotate
AWS secrets manager 密钥轮换的 DBAL 驱动程序
dev-master
2020-04-26 10:30 UTC
Requires
- php: ^7.2
- ext-json: *
- aws/aws-sdk-php: ^3.135
- doctrine/dbal: ^2.10
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 凭据和信息的环境中运行时,可能不需要这些选项。