我正在使用amazon服务,使用amazon ios sdk插入图像,视频和音频数据。 http://docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transfermanager.html
但无法这样做。我正在执行所有步骤,但无法理解我们如何为用户设置角色。以下是我们在上传时遇到的错误:
Error Domain=com.amazonaws.AWSSTSErrorDomain Code=0 "The operation couldn’t be completed. (com.amazonaws.AWSSTSErrorDomain error 0.)" UserInfo=0x175673b0 {Type=Sender, Message=Not authorized to perform sts:AssumeRoleWithWebIdentity, __text=(
"\n ",
"\n ",
"\n ",
"\n "
), Code=AccessDenied}
请提供相同的指导。
答案 0 :(得分:1)
我认为最简单的方法是使用AWS IAM Console并添加sts:AssumeRoleWithWebIdentity Action并将“Effect”:“Allow”添加到您的角色中。 请查看http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html示例。
答案 1 :(得分:0)
您的问题中没有足够的详细信息可以帮助您,所以我们先做一些假设。
根据您为文档提供的链接,我假设您正在尝试从iOS移动应用程序将文件上传到S3。
您如何获得申请表的凭据?我假设您使用的是Cognito Identity(http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html)
如果我的两个假设是正确的,那么您的错误消息的一个非常常见的原因是您的Cognito角色的信任策略中的错误。
角色有两个部分,首先是此角色授予的权限集。第二个信托政策,描述谁(或什么)被授权承担这一角色。
对于具有经过身份验证的用户的Cognito角色,信任策略应如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com:aud": "us-east-1:12345678-abcd-abcd-abcd-123456790ab"
},
"ForAnyValue:StringLike": {
"cognito-identity.amazonaws.com:amr": "unauthenticated"
}
}
}
]
}
有关如何修改现有角色的说明,请查看http://docs.aws.amazon.com/IAM/latest/UserGuide/modifying-role.html