Tag: amazon web services

Cognito / IAM策略和S3获取对象

我正在尝试将S3和Cognito集成到我的iOS应用程序中,到目前为止还没有成功。 我相信错误是连接到我的身份validation和Unauth用户的IAM策略。 所以这是我的政策: { "Version": "2012-10-17", "Statement": [{ "Effect":"Allow", "Action":"cognito-sync:*", "Resource":["arn:aws:cognito-sync:us-east-1:XXXXXXXXXXXX:identitypool/${cognito-identity.amazonaws.com:aud}/identity/${cognito-identity.amazonaws.com:sub}/*"] }, { "Effect":"Allow", "Action": "s3:*", "Resource": ["arn:aws:s3:::my_bucket", "arn:aws:s3:::my_bucket/*"] } ] } 这里是我打电话给S3的地方: AWSS3GetObjectRequest *getObjectRequest = [[AWSS3GetObjectRequest alloc] init]; getObjectRequest.key = KEY; getObjectRequest.bucket = BUCKET; //default service has been configured previously AWSS3 *s3 = [[AWSS3 new] initWithConfiguration:[AWSServiceManager defaultServiceManager].defaultServiceConfiguration]; [[s3 getObject:getObjectRequest] continueWithBlock:^id(BFTask *task) { if(task.error) { […]

从移动应用程序使用AWS(特别是S3)的首选方式是什么?

直接在应用程序代码中添加AWS访问密钥和密钥绝对不是一个好方法,主要是因为应用程序驻留在用户设备上(与服务器端代码不同),并且可以进行反向devise以获取证书,然后可能会被滥用。 尽pipe我在任何地方都能find这些信息,但却无法find解决这个问题的明确办法。 我有什么select? 我读了关于临时证书的令牌自动售货机架构,但我不相信它是更好的。 如果我可以反向devise密钥,那么我可以对请求临时凭证的代码进行反向工程。 而且一旦我拥有一组临时的证书来访问S3,我就像拥有密钥一样好。 我可以一次又一次地申请临时证书,即使它们过期很快。 总之,如果一个应用程序可以做一些事情,我可以像恶意用户一样做。 如果有的话,TVM可以在pipe理上更好一些(轮换凭证,在违规情况下更换密钥等)。 请注意,我们可以对密钥施加相同的访问限制,因为我们计划在TVM临时证书的情况下执行这些限制。 此外,如果亚马逊不希望人们直接在应用程序中使用密钥,为什么不在他们的SDK中阻止它,并强制使用TVM或正确的解决scheme。 如果你要走的路,人们将使用它。 我读了几篇这样的文章,不知道为什么? 我主要从网页背景,所以我的理解可能有点有缺陷。 请帮助我理解这是否更好,以及是否有一个完美的(或可能是好的)解决scheme可用于此问题。 PS:是否有TVM的轨道实施?

AWS iOS SDK Cognito开发人员authentication(Swift)

我很难弄清楚如何将我的服务器(通过AWS)提供的开发人员凭证返回给示例身份提供者。 看来我需要在ExampleIdentityProvider类的refresh方法中同步执行此操作。 我正在使用AFNetworking发出请求,但它是一个asynchronousGET请求。 我怎样才能做到这一点我的IdentityProvider刷新方法同步? 以下是在Swift中: class ExampleIdentityProvider: AWSAbstractIdentityProvider { var newToken: String! override var token: String { get { return newToken } set { newToken = newValue } } override func getIdentityId() -> BFTask! { if self.identityId != nil { return BFTask(result: self.identityId) }else{ return BFTask(result: nil).continueWithBlock({ (task) -> AnyObject! in if self.identityId == nil […]

了解崩溃报告

我有一个崩溃的应用程序,当我使用S3getObjectRequest时,我连接iPhone 5的电缆工作正常,但是当我断开电缆使用我的应用程序与无线应用程序崩溃在这里是崩溃日志: Incident Identifier: BFD481E9-114E-4676-AA36-CC544663BA8C CrashReporter Key: 8187acf23ebe01b6678e473e051986b72bd0febd Hardware Model: iPhone5,2 Process: friendsCam [1513] Path: /var/mobile/Applications/90A9B2A4-906E-48D3-8357- 1E23FB8ACD76/friendsCam.app/friendsCam Identifier: friendsCam Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] Date/Time: 2012-11-03 12:59:38.706 +0100 OS Version: iOS 6.0.1 (10A525) Report Version: 104 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Crashed Thread: 9 Last Exception […]

如何在Objective C中列出来自Amazon S3存储桶的特定path中的文件夹?

读完亚马逊文档后 ,我似乎没有find如何从我的Amazon S3存储桶中的特定path列出文件夹名称,但我也回顾了自己的问题,并没有看到有关StackOverflow的问题。 我会在这里发布,希望它也能帮助别人:)

在swift中上传图像AWS S3存储桶

我试图上传一个图像到一个桶S3 AWS,我正在使用下面的代码。 但我用它来上传到一个图像存储在一个variables或imageView.image? let ext = "jpg" let imageURL = NSBundle.mainBundle().URLForResource("imagename", withExtension: ext) print("imageURL:\(imageURL)") let uploadRequest = AWSS3TransferManagerUploadRequest() uploadRequest.body = imageURL uploadRequest.key = NSProcessInfo.processInfo().globallyUniqueString + "." + ext uploadRequest.bucket = S3BucketName uploadRequest.contentType = "image/" + ext let transferManager = AWSS3TransferManager.defaultS3TransferManager() transferManager.upload(uploadRequest).continueWithBlock { (task) -> AnyObject! in if let error = task.error { print("Upload failed ❌ […]

未授权执行sts:AssumeRoleWithWebIdentity AWS s3 Cognitoauthentication失败

我有一个简单的iOS应用程序上传到S3。 我试图在所有的周围,尽pipe理想情况下,我想做Facebook。 2个IAMangular色(使用向导创build)。 IAMauthentication策略(for unauthangular色): { "Version": "2012-10-17", "Statement": [{ "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::[mybucketname]/*" } ] } 我的constants.h文件(scrubbed): #define AWSID @"[12 digit num]" #define PoolID @"us-east-1:[long id number]" #define CRUnauth @"arn:aws:iam::[id num]:role/Cognito_Auth_DefaultRole" #define CRAuth @"arn:aws:iam::[id num]:role/Cognito_auth_DefaultRole" […]

AWSS3 Region / plistconfiguration问题'服务configuration是`nil`

我正面临AWSS3的一个奇怪的问题。 build立: AWS移动集线器 Cognito DynamoDB S3 – > Cognito,Dynamo甚至S3(通过认知用户数据)工作。 不过,我现在尝试使用以下代码直接连接到AWS3:“ let transferManager = AWSS3TransferManager.default() let uploadRequest = AWSS3TransferManagerUploadRequest() uploadRequest?.bucket = "XXXXXXXXXXXX" uploadRequest?.key = "user-data/" + awsId! + "/primary_profile_picture.png" uploadRequest?.body = imgUrl as URL transferManager.upload(uploadRequest!).continueWith(executor: AWSExecutor.mainThread(), block: { (task:AWSTask<AnyObject>) -> Any? in if let error = task.error as? NSError { if error.domain == AWSS3TransferManagerErrorDomain, let code […]

如何在iOS中连接亚马逊RDS

我正在使用一个应用程序,我正在使用亚马逊简单分贝,但现在我已经改变了简单分贝亚马逊RDS MySQL的。 简单的数据库有自己的API和框架工程来访问iOS中的数据库和表,但如何访问iOS中的亚马逊RDS MySQL任何想法如何做到这一点。 他们有亚马逊有简单的分贝库,如果有任何其他方式libaray在iOS应用程序中使用亚马逊RDS感谢

增加AWS DynamoDB中的Number属性Objective C

我正在努力增加已经保存在我的DynamoDB表中的项目的数字属性值我的代码目前是: AWSDynamoDBUpdateItemInput *updateItemInput = [AWSDynamoDBUpdateItemInput new]; updateItemInput.tableName = @"Table"; updateItemInput.key= @{ @"KeyPropertyName":@"KeyValue" }; updateItemInput.updateExpression = @"SET(counter = counter + :val)"; updateItemInput.expressionAttributeValues =@{ @":val":@1 }; AWSDynamoDB *dynamoDB = [AWSDynamoDB defaultDynamoDB]; [[dynamoDB updateItem:updateItemInput] continueWithBlock:^id(AWSTask *task) { if (task.error) { NSLog(@"The request failed. Error: [%@]", task.error); } if (task.exception) { NSLog(@"The request failed. Exception: [%@]", task.exception); } if […]