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

如何跨AWS账户利用Cognito属性实现IAM角色细粒度资源访问?

跨账户Cognito用户细粒度资源访问实现方案

核心逻辑

要实现账户A的Cognito用户访问账户B的同名资源,必须完成双向权限配置:账户A的Cognito认证角色授予用户跨账户访问权限,账户B的目标资源通过策略允许账户A的特定用户(基于Cognito的sub标识)访问对应资源。

具体操作步骤

1. 配置账户A的Cognito认证角色权限

在账户A的Cognito已认证角色的IAM策略中,添加允许访问账户B日志组的规则,用${cognito-identity.amazonaws.com:sub}绑定用户唯一标识:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:GetLogEvents",
                "logs:FilterLogEvents"
            ],
            "Resource": "arn:aws:logs:你的区域:账户BID:log-group:${cognito-identity.amazonaws.com:sub}:*"
        }
    ]
}

替换你的区域和账户BID为实际值,Action可根据业务需求调整日志操作权限

2. 配置账户B的日志组资源策略

在账户B中,给目标日志组添加资源策略,同时通过标签匹配用户的sub标识:

  1. 先给账户B中名为userX的日志组添加标签,键为sub,值为userX对应的Cognito sub字符串
  2. 然后添加如下资源策略:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::账户AID:role/账户A的Cognito认证角色名"
            },
            "Action": [
                "logs:DescribeLogGroups",
                "logs:GetLogEvents",
                "logs:FilterLogEvents"
            ],
            "Resource": "arn:aws:logs:你的区域:账户BID:log-group:*",
            "Condition": {
                "StringEquals": {
                    "cognito-identity.amazonaws.com:sub": "${aws:ResourceTag/sub}"
                }
            }
        }
    ]
}

替换账户AID、账户A的Cognito认证角色名、你的区域、账户BID为实际信息

3. 权限验证

让账户A的userX通过Cognito身份认证后,尝试访问账户B的对应日志组,确认权限正常生效。

无标签替代方案(适合少量用户)

如果不想用标签,也可以直接在账户B的资源策略中指定单个用户的sub值,灵活性稍差:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::账户AID:role/账户A的Cognito认证角色名"
            },
            "Action": [
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:logs:你的区域:账户BID:log-group:userX:*",
            "Condition": {
                "StringEquals": {
                    "cognito-identity.amazonaws.com:sub": "userX的实际sub值"
                }
            }
        }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:30:28