我有一个嵌入式设备,需要能够写到S3。我想避免给嵌入式设备一个实际的AWS IAMUser。我正在研究如何使用认知获得对S3的写访问权限。
我有一个具有组和一个用户的用户池(目前是这样)。这个组有一个附加的策略,允许访问某个S3桶。设置了池,以便只有管理员才能创建新用户。我已经成功地对此认知用户进行了身份验证,并访问了刷新令牌和idTokens。我希望使用这些令牌来写入我的s3桶。
我试图跟踪,试图跟踪文档,但我感到困惑。我想我需要一个联邦身份池,但我不需要公共提供者。我只想让我的认知用户组写到s3。
是否有一个简单的解决方案,允许一个认知用户在没有联邦身份的情况下写入S3,或者如果不是,我是否需要一个后端来为一个联邦身份提供令牌?
我一直在使用https://github.com/capless/warrant手令进行身份验证:
from warrant.aws_srp import AWSSRP
import boto3
client = boto3.client('cognito-idp')
aws = AWSSRP(username='<username>', password='<password>', pool_id='<pool>',
client_id='<clientid>', client=client)
tokens = aws.authenticate_user() 任何提示都将不胜感激!
发布于 2017-07-14 16:32:54
你确实需要一个联邦身份池。在identity provider部分,您选择Cognito并输入池ID和池客户端ID。然后,您需要为标识池提供authenticated和unauthenticated roles。您可以使用这些角色提供S3写访问。
这是身份提供程序设置的默认行为。如果您希望角色来自您的用户所在的组,则需要在您提供池和客户端id的identity provider部分中设置Choose role from token选项。
https://stackoverflow.com/questions/45100241
复制相似问题