【发布时间】:2014-07-02 20:43:50
【问题描述】:
我正在使用 Titanium 开发 iOS 应用程序。部分应用需要将照片直接上传到 S3。现在我不想把主要的 AWS 凭证放在这里,所以我使用安全令牌服务来生成一些临时凭证。这部分工作正常
如果有帮助,生成凭证的代码:
$sts = StsClient::factory(array(
'key' => 'KEY_HERE',
'secret' => 'SECRET_HERE'
));
$result = $sts->getSessionToken();
除其他外,我还回复了AccessKeyId、SecretAccessKey 和SessionToken。通过 PHP 传递所有这 3 个效果很好,我可以很好地上传。但是,我随后将这些凭据传递给应用程序并需要从那里使用它们。
问题在于,连接到 AWS 的每种方法(包括“官方”AWS 模块)仅使用访问密钥和密钥 - 即无法传递会话令牌,因此我无法授权。例如Titanium AWS 模块的工作方式类似于 AWS.authorize(accessKey, secretKey); - 它不接受会话令牌。
现在,我真正的问题是 - 我如何只用一个密钥/秘密连接并让它被接受。我需要设置一些配置吗?我是否需要破解模块以某种方式传递令牌?我对 AWS 的世界还很陌生,所以有些事情仍然令人困惑,任何指针都将不胜感激!
【问题讨论】:
标签: php ios amazon-web-services amazon-s3 titanium