AWS 秘密管理器不允许我为 RDS 只读副本创建秘密

AWS Secret manager does not allow me to create a secret for a RDS read-replica

我已经为生产 RDS PostgreSQL 实例创建了只读副本。我计划使用该只读副本来连接 redshift 联合查询。该文档建议创建一个秘密,但是当我转到 AWS Secret Manager 并尝试创建一个新的秘密时,副本实例不存在。

我还没有发现任何迹象表明上述情况是不可能的。事实上,为联合查询提供一个只读副本是一种建议的良好做法。有什么想法吗?

秘密管理器和 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"
}

这样,您的 read-only 客户端就可以从 SM 获得全套凭据,其中包括 正确的 read-endpoint.

但问题是你现在有两个秘密。一个用于小学,另一个用于 reader。这是一项 管理工作 。如果你想自动旋转,那就更复杂了。