You need to enable JavaScript to run this app. 如何创建仅允许IAM用户部署指定ACU范围RDS Aurora Serverless实例的AWS IAM策略
优惠活动
大模型
产品
解决方案
定价
更多

如何创建仅允许IAM用户部署指定ACU范围RDS Aurora Serverless实例的AWS IAM策略

实现方案说明

该需求有成熟的原生IAM配置方案可以落地,不需要额外部署自定义服务,核心是利用RDS服务支持的ACU配置类专用条件键做请求参数校验。

核心配置逻辑

你之前只用到了数据库引擎的匹配规则,但RDS的API操作支持的条件键远不止引擎类型:

  • 针对Aurora Serverless v2(当前主流的Serverless版本),创建、修改集群时传入的最小、最大ACU参数,分别对应专属条件键 rds:ServerlessV2MinCapacity、rds:ServerlessV2MaxCapacity
  • 针对已停止新建入口的旧版Aurora Serverless v1,对应的条件键为 rds:MinACU、rds:MaxACU,配置逻辑完全一致
  • ACU值为浮点型数值,需要使用数值类的条件运算符做范围匹配,而非字符串匹配类规则

策略优化注意事项

原策略存在两个会导致权限绕过的漏洞,配置时需要修正:

  • 不要直接授予全量rds:*权限,全权限会让用户无限制调整集群所有配置,容易绕过ACU范围限制
  • 仅对创建集群的动作加限制是不够的,必须同时对修改集群的动作加相同的条件规则,否则用户可以先创建符合ACU要求的集群,再通过修改操作把ACU调整到超范围值

参考策略示例

以限制用户仅能创建最小ACU不低于2、最大ACU不高于8的Aurora PostgreSQL Serverless v2集群为例,可使用如下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "rds:CreateDBCluster",
                "rds:ModifyDBCluster"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "rds:DatabaseEngine": "aurora-postgresql"
                },
                "NumericGreaterThanEquals": {
                    "rds:ServerlessV2MinCapacity": "2"
                },
                "NumericLessThanEquals": {
                    "rds:ServerlessV2MaxCapacity": "8"
                },
                "NumericGreaterThanEquals": {
                    "rds:ServerlessV2MaxCapacity": "2"
                }
            }
        }
    ]
}

配置完成后,用户发起创建/修改Aurora集群的请求时,不管是通过控制台、CLI还是SDK发起的调用,IAM都会直接校验请求里传入的ACU范围参数,不符合规则的请求会被直接拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 03:45:02