【发布时间】:2014-11-17 23:12:28
【问题描述】:
在我的 Android 应用程序中,我想为 AWS 创建临时凭证,这样我就不必在我的应用程序中存储我的秘密 AWS 凭证。我使用此代码创建凭据:
CognitoCachingCredentialsProvider cognitoProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(), // get the context for the current activity
"XXXXXXXXXX",
"us-east-1:XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"arn:aws:iam::XXXXXXXXXXX:role/myUnauthRole",
"arn:aws:iam::XXXXXXXXXXX:role:role/myAuthRole",
Regions.US_EAST_1
);
AWSCredentials awsCredentials = new BasicAWSCredentials(cognitoProvider.getCredentials().getAWSAccessKeyId(), cognitoProvider.getCredentials().getAWSSecretKey());
当我这样尝试时,我的代码的最后一行出现错误,错误为 "Not authorized to perform sts:AssumeRoleWithWeb Identity"。我认为我用于myUnauthRole 和myAuthRole 的策略存在问题。它看起来像这样:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "sts:GetFederationToken",
"Resource": "*"
}]
}
在政策范围内我还有什么需要做的吗?我无法在互联网上为我的用例找到一个工作示例。能在这里得到一些支持真是太好了。
谢谢!
【问题讨论】:
-
您应该仔细检查您的角色是否配置正确。这个blog post 应该可以帮助您了解 Amazon Cognito 身份验证。
标签: android amazon-web-services credentials amazon-cognito