You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于IAM Identity Center用户名动态分配RDS IAM认证策略

解决方案:基于IAM Identity Center用户名动态控制RDS访问

你可以直接使用IAM策略中的sso:username变量实现需求,这个变量会自动替换为IAM Identity Center用户的用户名(即你提到的邮箱地址)。以下是具体实现步骤和注意事项:

1. 编写动态IAM策略

将你示例中的${IAM Identity Center User Name}替换为${sso:username},策略会在用户发起请求时自动注入其Identity Center用户名:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "rds-db:connect",
            "Resource": "arn:aws:rds-db:region:account-id:dbuser:db-instance-identifier/${sso:username}"
        }
    ]
}
  • 替换region、account-id、db-instance-identifier为你的实际资源信息
  • 确保RDS中的数据库用户名与Identity Center用户的邮箱地址完全一致,否则策略会匹配失败

2. 绑定策略到Identity Center用户/组

将上述策略附加到对应的IAM Identity Center用户或用户组:

  • 若每个用户对应独立DB账号,直接将策略附加到单个用户
  • 若存在批量用户场景,可按业务分组后附加策略,确保组内用户的DB账号与各自的sso:username一致

3. 验证RDS IAM认证配置

确保你的RDS实例已启用IAM认证,并且每个数据库账号已完成IAM身份关联:

  • 启用RDS IAM认证:在RDS控制台实例的「连接」选项卡中开启「IAM数据库认证」
  • 关联DB账号与IAM身份:通过SQL语句为DB账号授予IAM访问权限(示例):
CREATE USER 'user-email@example.com' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
GRANT SELECT, INSERT, UPDATE ON your_database.* TO 'user-email@example.com';

关键安全注意事项

  • 严格匹配用户名:必须保证RDS DB用户名与Identity Center用户名完全一致,避免越权访问
  • 最小权限原则:策略仅授予rds-db:connect动作,不要添加额外不必要的权限
  • 可选条件限制:可添加条件进一步增强安全性,比如限制连接来源IP:
"Condition": {
    "IpAddress": {
        "aws:SourceIp": ["192.168.1.0/24"]
    }
}

内容的提问来源于stack exchange,提问作者NaniK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:10:13