如何限制AWS IAM角色仅为特定格式RDS数据库用户生成认证令牌?
限制AWS角色仅为只读RDS数据库用户生成认证令牌的IAM策略方案
要实现开发者角色只能为*_ro格式的只读RDS数据库用户生成认证令牌,可通过IAM策略的条件匹配功能精准限制权限范围,核心是约束rds:GenerateDbAuthToken动作对应的db-user参数格式。
示例IAM策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rds:GenerateDbAuthToken", "Resource": "arn:aws:rds:*:*:db:*", "Condition": { "StringLike": { "rds:db-user": "*_ro" } } } ] }
策略说明
- Action:
rds:GenerateDbAuthToken是对应aws rds generate-db-auth-token命令的IAM权限动作,必须明确指定。 - Resource:示例中使用通配符
arn:aws:rds:*:*:db:*允许对所有RDS实例操作,建议根据实际需求替换为具体的RDS实例ARN(如arn:aws:rds:us-east-1:123456789012:db:prod-mysql),遵循最小权限原则。 - Condition:通过
StringLike运算符匹配rds:db-user参数,*_ro确保仅能为以_ro结尾的数据库用户生成令牌,完全符合只读用户的命名规则。
管理员角色策略参考(可选)
如果需要为管理员角色配置仅允许生成*_admin格式用户的令牌,可将Condition规则替换为:
"Condition": { "StringLike": { "rds:db-user": "*_admin" } }
内容的提问来源于stack exchange,提问作者Visa2Learn
相关产品推荐
相关产品推荐

