2014-09-04 34 views
5

Artık AWS'yi 2 günlüğüne iOS ile kullanmaya çalışıyorum. Örnek projeyi buradan yükledim: https://github.com/awslabs/aws-sdk-ios-samplesAmazon Web Hizmeti SDK iOS

Adımların aynen söylediği gibi yaptım, tüm kütüphaneleri birbirine bağlamak için koloapodlar kullandım.

Ben de bir kova oluşturulan ve yine aşağıda görüldüğü gibi kodunda bunun değiştirmek için kimliğini almak için nasıl adımlar takip

: Yani temelde Im bazı görüntüleri/dosyaları yüklemeye çalışırken

AWSCognitoCredentialsProvider *credentialsProvider = [AWSCognitoCredentialsProvider 
                 credentialsWithRegionType:AWSRegionUSEast1 
                 accountId:AWSAccountID 
                 identityPoolId:CognitoPoolID 
                 unauthRoleArn:CognitoRoleUnauth 
                 authRoleArn:nil]; 

(Amazon S3 Depolama Hizmeti kullanarak örnekte, bir hata alıyorum:

2014-09-04 15:11:57.475 S3TransferManagerSample[5437:400b] AWSiOSSDKv2 [Error] AWSCredentialsProvider.m 
    line:356 | __40-[AWSCognitoCredentialsProvider refresh]_block_invoke299 | Unable to refresh. 
    Error is [Error Domain=com.amazonaws.AWSSTSErrorDomain Code=0 "The operation couldn’t be completed. (com.amazonaws.AWSSTSErrorDomain error 0.)" 
    UserInfo=0x14d17770 {Type=Sender, Message=Not authorized to perform sts:AssumeRoleWithWebIdentity, __text=(
"\n ", 
"\n ", 
"\n ", 
"\n " 
), Code=AccessDenied}] 

Daha açıkçası, ben zaten bir rol yarattı ve bir politika verdi ettik: AdministratorAccess ve ayarlamak için rol ARN kullanılan

unauthRoleArn:CognitoRoleUnauth 

Bu belgeyi okudum ve sorunu herhangi bir yerde bulamıyor gibi görünmüyor. Rolüne verilen rol ve politika ile ilgili bir şey olduğunu hissediyorum.

Nasıl başlayacağınız veya bu sorunu nasıl gidereceğinize dair ipuçlarını takdir ediyorum.

Sorularınız hakkında daha fazla bilgiye ihtiyacınız varsa ve yorumda bulunmaktan çekinmeyin ve daha fazla vereceğim, soru biraz uzadı.

cevap

5

, yaşadığınız hata, role ilişkin güven ilişkileri için geçerlidir, role üzerindeki kimlik bilgilerine izinler yok.

emin misin Rolün güven ilişkileri yapmak gerekir:

  1. Güven kullandığınız kimlik havuzu (vid kimlik havuzu kimliği eşleşir). verilen kimlik doğrulaması ile
  2. Güven kimlikleri (emrdoğrulanmamış veya sizin kullanım durumuna bağlı olarak doğrulanmış eşleşir).

Kurulum sihirbazı sırasında oluşturulan rolleri değiştirirken veya bu 2 değer eşleşmeyip yukarıdaki hataya neden olabileceğinden rolleri yeniden kullanırken dikkatli olun.

Ayrıca Cognito Authentication'ın nasıl çalıştığını anlamada this blog post yardımcı bulabilirsiniz.

+0

Rolü oluşturduğumda yalnızca bu rolün izinlerini Yönetici Erişimine değiştirdim, başka bir şey değiştirmedim. Rolün güven ilişkilerini değiştirmeli miyim? Neyi ayarlayacağımı gerçekten bilmiyorum. – RJiryes

+0

Ayrıca, "bu kimlik havuzu için" olsaydı ne demek istiyorsun? Kimlik havuzunu Cognito hizmetinin bir parçası olarak oluşturdum, roller ise IAM yönetim konsolunda kuruldu. AWS ile ilgili pek çok şey okudum ve sanırım biraz kafam karıştı. Üzgünüm biraz belirsiz görünüyorsun. Teşekkürler. – RJiryes

+0

Devam ettim ve mevcut Kimlik Havuzumu sildim ve yeni bir tane oluşturdum, elde ettiğim hata gitti. Ama şimdi dosyaları yüklemiyor, şu anda yüklemeye çalışırken başka bir hata alıyorum: – RJiryes