1

開発者認証 IDセットアップで AWS MobileHub SDK を使用しています。

モバイル ハブ SDK にはセッションを処理するAWSIdentityManagerがあり、こちらのガイドに従ってID プロバイダーにログインしました。

ID プロバイダーは正常に動作し、ログインは成功しますが、cloudlogic 呼び出し (ラムダ関数の呼び出し) を実行しようとすると、次のように失敗します。

AWSiOSSDKv2 [エラー] AWSCloudLogic.m line:47 | __67-[AWSCloudLogic invokeFunction:withParameters:withCompletionBlock:]_block_invoke | invokeFunction: エラー: 操作を完了できませんでした。アクセス拒否例外

これは、ラムダ関数が呼び出されているときに、MobileHub が正しい AIM ロールを使用しておらず、Lambda がアクセスを拒否していることを示しています。AIM のセットアップは問題なくチェックされているので、どこに問題があるのか​​わかりません。

AWSIdentityManager では、この関数のみを変更しました:

- (AWSTask *)initializeClients:(NSDictionary *)logins {

NSLog(@"initializing clients...");

[AWSLogger defaultLogger].logLevel = AWSLogLevelError; //AWSLogLevelVerbose;
[AWSServiceConfiguration addGlobalUserAgentProductToken:AWS_MOBILEHUB_USER_AGENT];

NSString *email = [JNKeychain loadValueForKey:@"email"]; 
NSDictionary *logins = [NSDictionary dictionaryWithObject:email forKey:developerProvider];

    id<AWSCognitoIdentityProvider> identityProvider = [[CBDeveloperAuthenticatedIdentityProvider alloc]
                                                       initWithRegionType:AMAZON_COGNITO_REGION
                                                       identityId:nil
                                                       identityPoolId:AMAZON_COGNITO_IDENTITY_POOL_ID
                                                       logins:logins
                                                       providerName:developerProvider];


    self.credentialsProvider = [[AWSCognitoCredentialsProvider alloc]
                                initWithRegionType:AMAZON_COGNITO_REGION
                                identityProvider:identityProvider
                                unauthRoleArn:nil
                                authRoleArn:nil];

   //I have AWS_COGNITO_UNAUTH_ROLE and AWS_COGNITO_AUTH_ROLE but the docs don't seem to use them... and when I do there is no change
   //http://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html





AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AMAZON_COGNITO_REGION
                                                                     credentialsProvider:self.credentialsProvider];

[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;


return [self.credentialsProvider getIdentityId];
}

Amazon には多くの情報が散らばっていますが、モバイル ハブの開発者認証 ID に関しては何も見つかりませんでしたが、

4

0 に答える 0