9

AWS CognitoデベロッパーIDを使用して、私のiOSアプリからDynamoDBのへのフルアクセスを取得しますiosデバイス。デバイスでAWS DynamoDBテーブルに接続しようとしましたが、アクセスは拒否されました。 identityIdとトークンを使用してテーブルにアクセスするにはどうすればよいですか?私はAWSラムダ関数を実装し、縮充データを返すためにゲートウェイを使用している

Dautnamoを拒否するUnauthのIAMと、そのポリシーでテーブルにアクセスできるAuthを設定しました。

私が使用して認証を実装しようとしています:http://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html

私が基本とされる2つの流れがある参照してください。ドキュメントには、ほとんどのユーザーが拡張されたフローを使用し、GetCredentialForIdentityを実装することが記載されています。

これは私のコードでどのように実装されていますので、私の役割をunauthからauthに切り替えることができ、dynamodbにアクセスできますか?このアクセスはどのくらい持続するでしょうか?私はラムダやそれ以外の何かを使う代わりに、私のコードですべてこれをやりたいと思います。

答えて

2

ダブル認証されたアクセスのためのあなたのDynanoDBの役割を確認し、あなたのDynamoDBのリソース:ここ

はあなたを助けるためのドキュメントです。これの役割の例は following page of the developer guide you referencedです。このページは「 IAMロール」と呼ばれ、最後のセクションは重要なものです。「 Amazon DynamoDBへのファイングレインアクセス」です。

Enhanced Authflowを使用する予定です。これは推奨され、認証するための呼び出しが少なくなります(ユーザーはこれに感謝します)。モバイルクライアントからiOSのGetCredentialsForIdentityに電話をかけてください。さらに、ページダウンの強化Authflowのドキュメントから

enter image description here

:あなたはアイデンティティIDを確立した後

GetCredentialsForIdentityのAPIを呼び出すことができます。このAPIは機能的にはGetOpenIdTokenを呼び出すのと同等で、その後にAssumeRoleWithWebIdentityが続きます。

AssumeRoleWithWebIdentityは、ユーザーがDynamoDBリソースへのアクセス権を取得する役割を担うことができる重要な要素です。 Cognitoは、限り、あなたはCognitoコンソール内に正しく役割を設定すると、残りの世話をします。

アマゾンCognitoがあなたに代わってAssumeRoleWithWebIdentityを呼び出すためには、自分のアイデンティティプールは、それに関連付けられているIAMの役割を持っている必要があります。 Amazon Cognito Consoleを使用して、またはSetIdentityPoolRoles操作(APIリファレンスを参照)を介して手動で行うことができます(APIリファレンスを参照)。

+0

私はlambdaを使ってすべてをセットアップし、identityIdとtokenを取得します。それは、私を混乱させ、GetCredentialsForIdentityを呼び出すobjective-cの部分をセットアップする方法と方法を考え出しています。私はcongnitoとすべての役割を認証ユーザーに対して正しくセットアップし、認証された役割に対して完全なアクセス権を持っています。 – cdub

+0

はhttp://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.htmlを参照してください。最後の2つのステップは、IOSのために必要なすべてのものです。Amazon Cognito IDとAWS資格情報の取得。 GetCredentialsForIdentityは実際には呼び出されませんが、AWS SDKおよびDynamoDBクライアントコードを使用するときに呼び出されます。たとえば、http://docs.aws.amazon.com/mobile/sdkforios/developerguide/dynamodb_om.html – Taterhead

+0

で、GetIpenIdTokenForDeveloperIdentityを呼び出すのはなぜですか?上記のコードにidentityIdとトークンが追加されないのはなぜですか?私は未認証の役割から私の認証の役割にも切り替えたいと思っています。 – cdub

関連する問題