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

如何限制IAM角色IPR仅允许RDS代理RP调用sts:AssumeRole?

问题描述

现有配置:

  • RDS代理RP,其密码存储在由KMS密钥K加密的密钥S中
  • IAM角色IPR,供RP用于访问密钥S和KMS密钥K

需要限制IPR的sts:AssumeRole操作,仅允许指定的RDS代理RP的ARN来扮演该角色。目前已通过账户级限制实现部分效果,对应的信任策略如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": [
                        "1234567891"
                    ]
                }
            }
        }
    ]
}

期望通过SourceArn或类似方式实现针对RP的ARN的更具体限制,寻求解决方案。

解决方案

直接修改IAM角色IPR的信任策略,通过aws:SourceArn条件精确匹配目标RDS代理RP的完整ARN,即可实现仅允许该特定代理扮演角色的限制。

修改后的信任策略示例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": "arn:aws:rds:你的区域:1234567891:db-proxy:你的RP代理名称"
                }
            }
        }
    ]
}

注意事项:

  • 务必将示例中的你的区域和你的RP代理名称替换为实际信息,保证ARN的准确性
  • 若需要允许多个特定RDS代理,可将aws:SourceArn改为aws:SourceArns,并传入ARN数组,示例如下:
"StringEquals": {
    "aws:SourceArns": [
        "arn:aws:rds:us-east-1:1234567891:db-proxy:rp-prod",
        "arn:aws:rds:us-east-1:1234567891:db-proxy:rp-test"
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 01:43:20