私の 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());
このように試してみると、コードの最後の行に error というエラーが表示されます"Not authorized to perform sts:AssumeRoleWithWeb Identity"
。myUnauthRole
と で使用しているポリシーに問題があると思いますmyAuthRole
。次のようになります。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "sts:GetFederationToken",
"Resource": "*"
}]
}
ポリシー内で他に何かしなければならないことはありますか? インターネットで私のユースケースの実例を見つけることができませんでした。ここでサポートを得ることができれば最高です。
ありがとう!