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

如何在S3存储桶策略中正确添加SSO用户(非IAM用户)?

在S3存储桶策略中授权SSO用户的正确配置方法

问题根源

你之前尝试的两种方法无效的原因如下:

  1. 临时会话ARN无法用于NotPrincipal:arn:aws:sts::...:assumed-role/...是SSO用户登录后生成的临时会话ARN,属于动态身份,每次登录都会变化,无法通过静态策略匹配;且NotPrincipal仅支持IAM用户/角色这类持久身份实体的ARN,不支持临时会话ARN。
  2. aws:userId格式错误:SSO用户的aws:userId格式为[角色唯一ID]:[会话名称],而非你使用的角色名称:用户名,所以条件匹配失败。

正确配置方案

方案1:授权整个SSO角色(适用于允许该角色下所有SSO用户访问)

找到SSO对应的IAM角色ARN(格式通常为arn:aws:iam::账号ID:role/aws-reserved/sso.amazonaws.com/SSO角色名称),将其加入NotPrincipal的AWS列表:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                    "arn:aws:iam::035452602320:user/abc.dev",
                    "arn:aws:iam::035452602320:user/lmn.dev",
                    "arn:aws:iam::035452602320:user/pqr.dev",
                    "arn:aws:iam::035452602320:role/aws-reserved/sso.amazonaws.com/AWSReservedSSO_Devops_New_610980ed099cb31f"
                ]
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::abc",
                "arn:aws:s3:::abc/*"
            ]
        }
    ]
}

方案2:授权单个SSO用户(精准匹配特定用户)

利用SSO自动为角色会话添加的标签(如userName、email),通过Condition限定仅该用户可绕过Deny策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                    "arn:aws:iam::035452602320:user/abc.dev",
                    "arn:aws:iam::035452602320:user/lmn.dev",
                    "arn:aws:iam::035452602320:user/pqr.dev"
                ]
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::abc",
                "arn:aws:s3:::abc/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "aws:PrincipalTag:userName": "upasana.ghase"
                }
            }
        }
    ]
}

验证方法

配置完成后,让目标SSO用户登录并尝试访问S3桶,同时可以通过AWS CloudTrail查看请求的principalArn和principalTags,确认策略匹配逻辑是否生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:22:07