【问题标题】:iOS Google Cloud Storage API Service Account AccessiOS Google Cloud Storage API 服务帐号访问权限
【发布时间】:2016-06-10 06:52:12
【问题描述】:

我似乎找不到任何有关如何使用 iOS 服务帐户访问 Google Cloud Storage 的文档。 iOS 应用程序将图像写入 Rails,我使用服务帐户和 ruby​​ api 将图像保存到 Google Storage。我正在尝试从 iOS 读取这些图像,但似乎没有能力,我不知道为什么。我可以使它工作的唯一方法是使用 API 密钥并将预定义的 Acl 设置为“publicRead”。这意味着我的应用程序的图像对互联网开放。

我错过了什么? iOS库中没有此功能是否有原因?以后有什么打算吗?

谢谢

【问题讨论】:

  • 如果您使用服务帐户发布应用程序,安全性就会受到影响。任何下载该应用程序的用户都可以提取密钥。
  • @jterrace 但是……我们应该如何在 iOS 应用程序中使用服务帐户?托马斯,你有没有想过?
  • 没有。我暂时将其保留为 publicRead,而不是强迫他们通过我可以使用服务帐户的应用程序服务器......我只是不想为通过那里的流量付费。 :(

标签: google-cloud-storage google-cloud-endpoints google-cloud-platform


【解决方案1】:

我认为您在遵循非常糟糕的做法的同时严重损害了您的安全性。以下是解决方法的两种策略:

  • 当您将图像保存到 Google 存储时,您应该为其创建一个 signed URL 并将其用作客户端/应用程序的端点。或
  • 将原始 Google 存储 URL 保存到用户帐户,无法通过用户 api 访问,并且在运行时收到图像请求时,生成一个基于短期签名的 URL。

基于服务密钥的方法确实是错误的,因为首先您要泄露项目凭据,而且您甚至永远无法使这些密钥过期,因为它们可能用于许多终端设备之一。

【讨论】:

  • 公共应用程序的完全有效点。但是对于用于捕获遥测数据的纯非公共应用程序,服务密钥非常方便。出于这个原因,我目前正在调查此问题。
猜你喜欢
  • 1970-01-01
  • 2021-04-19
  • 2018-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 2019-07-25
  • 2020-07-13
相关资源
最近更新 更多