我正在创建一个使用Amazon Cognito身份验证连接到AWS IoT的Android应用程序。我能够成功验证用户,并且我能够获得凭据。 使用这些凭据更新事物影子时总是返回403禁止例外。我尝试了所有方法来解决问题,但我找不到解决方案。使用Amazon Cognito访问AWS Iot时的禁止例外
我的IAM策略是:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:GetThingShadow",
"iot:UpdateThingShadow",
],
"Resource": [
"arn:aws:iot:us-west-2:<my_account>:thing/mythingname"
]
}
]
}
连接端点的Android代码:
userSession= AppHelper.getCurrSession();
credentialsProvider=new CognitoCachingCredentialsProvider(getApplicationContext(),POOL_ID,REGIONS);
Map<String,String> logins=new HashMap<String, String>();
logins.put("cognito-idp.us-west-2.amazonaws.com/user_pool_id",userSession.getIdToken().getJWTToken());
credentialsProvider.setLogins(logins);
iotDataClient=new AWSIotDataClient(credentialsProvider);
iotDataClient.setEndpoint(ENDPOINT);
更新的东西的影子:
UpdateThingShadowRequest request=new UpdateThingShadowRequest();
request.setThingName(thingName);
ByteBuffer payloadBuffer=ByteBuffer.wrap(updateState.getBytes());
request.setPayload(payloadBuffer);
UpdateThingShadowResult result=iotDataClient.updateThingShadow(request);
有这方面的任何帮助将不胜感激。
这个IAM策略附加,已验证或未验证的角色是Cognit角色?您使用的是哪种身份验证提供程序? –
我正在使用身份验证角色。作为提供商,我使用身份池与用户池集成 – Arun