【问题标题】:AWS Secret manager does not allow me to create a secret for a RDS read-replicaAWS Secret Manager 不允许我为 RDS 只读副本创建密钥
【发布时间】:2020-12-07 03:06:12
【问题描述】:
我为我的生产 RDS PostgreSQL 实例创建了一个只读副本。我计划使用该只读副本来连接红移联合查询。文档建议创建一个密钥,但是当我转到 AWS Secret Manager 并尝试创建一个新密钥时,副本实例不存在。
我没有发现任何表明上述情况是不可能的。事实上,为联合查询创建一个只读副本是一个很好的建议。有什么想法吗?
【问题讨论】:
标签:
amazon-web-services
amazon-redshift
amazon-rds
aws-secrets-manager
【解决方案1】:
秘密管理器和 RDS 之间的关联仅基于秘密值的格式。可用格式为here。
在控制台中,您只能对主数据库实例进行此关联。但是使用 CLI 您也可以对 read-replicas 执行此操作。这很有用,因为只读副本与主实例相比具有不同的端点。
例如,对于 MySql:
aws secretsmanager create-secret \
--name read-replica-secret \
--secret-string file:///tmp/secret.json
/tmp/secret.json 在哪里:
{
"engine": "mysql",
"host": "<required: read replica instance host name/resolvable DNS name>",
"username": "admin",
"password": "2PLvZK5Gcuht8qefK5O7",
"dbname": "testdb",
"port": "3306"
}
这样,您的只读客户端可以从 SM 获得全套凭据,其中包括正确的读取端点。
但问题是你现在有两个秘密。一个用于初级,另一个用于读者。这是管理工作。如果您想要自动旋转,它会更加复杂。