我正在創建一個使用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