如何将凭证传递给 AWS STS GetSessionToken
How to pass credentials to AWS STS GetSessionToken
我写了一个 javascript 文件管理器来管理 Amazon S3 上的用户文件。它使用 AWS Javascript API。使用硬编码的 IAM 用户凭证开发它,现在用于生产希望使用临时凭证。
我的计划是让我们的 PHP 服务器从 IAM 凭据生成临时凭据,通过 AJAX 从 JS 代码回调到 PHP 通过 STS GetSessionToken。看起来很简单,但我似乎找不到任何关于如何将 IAM key/secret 传递给 URL 中的 GetSessionToken 的文档。 AWS 文档中的示例都显示如下内容:
https://sts.amazonaws.com/?Version=2011-06-15&Action=GetSessionToken&DurationSeconds=3600&AUTHPARAMS
我猜 "AUTHPARAMS" 很明显,我不需要任何进一步的解释。但遗憾的是,我确实需要进一步的解释。 PHP 方面我只需要这个小调用,所以我真的不想为此安装整个 AWS PHP SDK。如果我能找出如何为这个调用构建 URL,那么我可以通过 CURL 发送它并准备就绪。至少那是计划。
有没有办法直接通过 REST api 调用 GetSessionToken,然后将其传递给 IAM key/secret,或者真的比这更复杂?
您需要了解 AWS API request signing. More specifics here。请注意,2014 年 1 月 30 日之后开放的 AWS 区域需要 v4 签名,而更早的区域接受 v2 或 v4 签名。
或者只使用 PHP SDK,这样一切就简单多了。
我写了一个 javascript 文件管理器来管理 Amazon S3 上的用户文件。它使用 AWS Javascript API。使用硬编码的 IAM 用户凭证开发它,现在用于生产希望使用临时凭证。
我的计划是让我们的 PHP 服务器从 IAM 凭据生成临时凭据,通过 AJAX 从 JS 代码回调到 PHP 通过 STS GetSessionToken。看起来很简单,但我似乎找不到任何关于如何将 IAM key/secret 传递给 URL 中的 GetSessionToken 的文档。 AWS 文档中的示例都显示如下内容:
https://sts.amazonaws.com/?Version=2011-06-15&Action=GetSessionToken&DurationSeconds=3600&AUTHPARAMS
我猜 "AUTHPARAMS" 很明显,我不需要任何进一步的解释。但遗憾的是,我确实需要进一步的解释。 PHP 方面我只需要这个小调用,所以我真的不想为此安装整个 AWS PHP SDK。如果我能找出如何为这个调用构建 URL,那么我可以通过 CURL 发送它并准备就绪。至少那是计划。
有没有办法直接通过 REST api 调用 GetSessionToken,然后将其传递给 IAM key/secret,或者真的比这更复杂?
您需要了解 AWS API request signing. More specifics here。请注意,2014 年 1 月 30 日之后开放的 AWS 区域需要 v4 签名,而更早的区域接受 v2 或 v4 签名。
或者只使用 PHP SDK,这样一切就简单多了。