1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 ${transfer:*}
变量不支持附加到 IAM 角色的策略中。如果你在那里使用它们,我建议将它们删除,因为它们不会被替换。而且,S3 将其视为原始字符串,导致访问被拒绝的错误。这些变量仅适用于直接与传输用户关联的会话策略或作为其 HomeDirectory 配置的一部分 (${transfer:Username}
仅适用于此情况)。
对于你的场景,要求建立基于 UserName 的动态映射,特别是将域部分映射到 S3 中的类似命名前缀。在这种情况下,我建议采用逻辑目录方法来消除会话策略的麻烦。请参考以下工作流程-
- 客户端连接到服务器,并且最终发出相同的 Lambda 请求。
- Lambda 使用 Okta 执行必要的身份验证检查,然后开始构建向服务器返回的响应。 【假设身份验证成功】
- 在此响应中,您基于用户名部分中的域构建逻辑目录。Lambda 应该可以访问用户名,因为它接收了验证请求。 【附带参考代码片段如下所示】
- 服务器接收用户配置并将用户映射到逻辑目录。
示例参考代码段:
# 解析来自 Username 的域
username = 'abc@xyz.com'
domain = username.split('@')[-1]
# 构建逻辑目录结构
# e = 条目-表示客户端登录时看到的内容
# t = 目标-表示 S3 中的实际映射
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 3 年前