IAM Role for RDS
用户可以使用 IAM 用户或角色凭证以及身份验证令牌连接到 Amazon RDS 数据库实例或集群。出于以下原因,IAM 数据库身份验证比原生身份验证方法更安全:
IAM 数据库身份验证令牌是使用您的 AWS 访问密钥生成的。您无需存储数据库用户凭证。
身份验证令牌的有效期为 15 分钟,因此您无需强制执行密码重置。
IAM 数据库身份验证需要安全套接字层(SSL)连接。传入和传出数据库实例的所有数据均经过加密。
如果您的应用程序正在 Amazon Elastic Compute Cloud(Amazon EC2)上运行,则可以使用 EC2 实例配置文件凭证来访问数据库。您无需在实例上存储数据库密码。
要使用 IAM 角色来设置 IAM 数据库身份验证,请执行以下步骤:
1 - 在 RDS 数据库实例上激活 IAM 数据库身份验证。
您可以使用 Amazon RDS 控制台、AWS 命令行界面(AWS CLI)或 Amazon RDS API 启用 IAM 数据库身份验证。如果您使用 Amazon RDS 控制台修改数据库实例,则应选择立即应用激活 IAM 数据库身份验证。激活 IAM 身份验证需要短暂中断。有关哪些修改需要中断的详细信息,请参阅 Amazon RDS 数据库实例。
注意: 如果您选择立即应用,则所有待处理的修改也会立即应用,而不是在维护时段内应用。这可能会导致您的实例长时间中断。有关详细信息,请参阅使用“立即应用”设置。
2 - 创建使用 AWS 身份验证令牌的数据库用户账户。
运行以下命令连接到数据库实例或集群端点。输入主密码登录。
创建使用 AWS 身份验证令牌而不是密码的数据库用户账户:
默认情况下,数据库用户在创建时不会获得任何权限。当您运行 SHOW GRANTS FOR {dbusername} 时,系统会显示 GRANT USAGE。如需要求用户账户使用 SSL 进行连接,请运行以下命令:
运行 exit 命令关闭 MySQL。
3 - 使用 IAM 角色凭证和 SSL 证书连接到 RDS 数据库实例
如果是通过EC2连接RDS,则绑定IAM 角色到EC2,这个角色拥有管理RDS的权限。参考IAM Roles for Amazon EC2.
如果是本地CLI配置连接RDS,则可以通过IAM Identity Center授权,设置aws configure sso的短期有效权限,之后就可以执行后续的步骤。参考IAM Identity Center for human。
下载 SSL 根证书文件或证书捆绑包文件
下载证书文件后,运行以下命令之一通过 SSL 连接到数据库实例。
注意:如果您的应用程序不接受证书链,请运行以下命令下载证书捆绑包:
根据您使用的证书(根证书或捆绑包),运行以下命令之一:
根证书命令,比如我是在美东1安装的数据库,下载的是美东1的证书,执行以下命令后成功连接到数据库:
捆绑包命令:
在连接到MySQL数据库时,使用SSL可以增强安全性,保护数据传输的安全。首先,您需要根据您的证书类型(根证书或捆绑包)选择合适的连接命令。如果您使用根证书,应使用以下命令连接MySQL:
若您使用的是捆绑包,连接命令如下:
通过这些命令,您可以通过安全的SSL连接来访问您的MySQL数据库,确保数据在传输过程中的安全性和完整性。更多详细信息和帮助,请参考AWS官方文档。
参考资料
https://repost.aws/zh-Hans/knowledge-center/users-connect-rds-iam
最后更新于