2017-12-04 1 views
2

私はS3バケットに画像をアップロードするためにAWS Cognitoサービスを認証しようとしています。 "http://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html"に追いつこうとしましたが、私は混乱しています。私は私のログインにCognitoサービスを使用しないImとして開発者のアイデンティティを使用して認証したいと思います。 認証に使用する私のクラスは以下の通りである:それは正常に動作しますAWS Cognito Developer認証されたIDとS3にアップロード

let uploadRequest = AWSS3TransferManagerUploadRequest() 
uploadRequest?.body = fileURL as URL 
let awsImageName = "1002_" + UUID().uuidString 
uploadRequest?.key = awsImageName + "." + ext 
uploadRequest?.bucket = S3BucketName 
uploadRequest?.contentType = "image/" + ext 
let transferManager = AWSS3TransferManager.default() 
// Perform Upload 
transferManager.upload(uploadRequest!).continueWith(block: { (task:AWSTask<AnyObject>) -> AnyObject! in 

:以下のように

S3へ
let devAuth = DeveloperAuthenticatedIdentityProvider(regionType: .USWest2, identityPoolId: "pool-id", useEnhancedFlow: true, identityProviderManager:nil) 
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USWest2, identityProvider:devAuth) 
let configuration = AWSServiceConfiguration(region: .USWest2, credentialsProvider:credentialsProvider) 
AWSServiceManager.default().defaultServiceConfiguration = configuration 

とIMのアップロード:

import AWSCore 
class DeveloperAuthenticatedIdentityProvider : AWSCognitoCredentialsProviderHelper { 
    override func token() -> AWSTask<NSString> { 

      //I have no clue what it returns and there also an error here 
      self.identityId = response.identityId 
      return AWSTask(result: response.token) 

    } 
} 

私は以下のように私の資格情報を使用しています認証なしでは、私は認証でそれを使用します。私はどのようにすればいいのでしょうか?

答えて

0

あなたはIAMでコグニティオを切り替えると思います。 Cognitoは、独自のアプリケーションまたはモバイルアプリのIDプロバイダとして使用されます。これは、サービスとして使用できるクラウドアイデンティティプロバイダです。他のユーザーが自分のUI全体にサインアップし、FacebookやGoogleなどと組み合わせることができます。

IAMは、Cognito、S3、EC2などのクラウドサービスを使用できるユーザーを識別するために使用されます。どの役割がs3などを使用する必要があります

認証なしで動作する理由は、おそらく、このIAM情報を格納するAWS SDKまたはCLIをインストールしたためです。あなたのアプリケーションはこれをフォールバックとして使用します。

IAMを見て、S3にアクセスして役割を引き受ける開発者ロールを作成します。アカウントの秘密とアクセスキーを取得し、あなたが今

詳細はCognitoを忘れることができます。

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html

http://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html

関連する問題