2
原來 aws java sdk 已經有自動 renew AssumeRoleSession 的功能 (/z/programming)

心血來潮想在新專案使用 STS 的 assumeRole,翻了一下手冊相關的教學 Making Requests Using IAM User Temporary Credentials - AWS SDK for Java1 看起來動作都挺「手工」的,這樣還要另外開一個 TimerTask 來更新 session,於是立馬動手寫了個簡單的版本 STSAssumeRoleAWSCredentialsProvider2,弄好後看起來運作大致正常,想回 aws java sdk 的 github 問看看能不能整合,就發現原來已經一模一樣的東西了 !!!

因為曾有人發 bug report STSAssumeRoleSessionCredentialsProvider does not support passing an external id3 順便這名,找到了它: STSAssumeRoleSessionCredentialsProvider4。一週的第一天,就在浪費青春了。

所以,該發另一個 bug 去靠北手冊太舊了 orz

kaif 積分 0

aws的文件真的爛爛的

qrtt1 積分 2 編輯於

aws 文件挺好的啊,主文的部分更新的蠻快的(以 html 版為準,其他格式慢是大家都知的),只是 Example 的部分看起來維護就比較少了,除非是跟著主文的部分一起被改動。

例如,使用 jets3t 做 cloudfront 的 signed url 範例1 還在教你如何使用 openssl 由 PEM 轉 DER 的方法,再餵給 jets3t

openssl pkcs8 -topk8 -nocrypt -in origin.pem -inform PEM -out new.der -outform DER 

其實 jets3t 已經提供 EncryptionUtil2 處理這個問題。理想狀態是 aws java sdk 能自己提供這功能,當時沒有所以 俺先前整理筆記時3 也自己弄了一組 CloudFrontSignTool4

剛剛進 github 實際找了一下 sdk 的 source code 看到它終於實作 CloudFrontUrlSigner5 ,在去年加進去的,但還沒寫進 Example 內。

IngramChen 積分 1

STS 嗎?我們大概四年前就開始用了,就為了讓手機能上傳到 s3。mobile 上的確是要用 timer 一天更新一次...

qrtt1 積分 0 編輯於

assume-role 最長只活 1 小時,最短 15 min. 在手機上的話,如果只是需要「上傳至 S3」會不會透過 api server 來產生 presigned url 或 form upload 比較便利呢?

IngramChen 積分 1

四年前沒有 assume role 啦。只是單純的發 temporary token (<=36 hour). presigned url 我們也有用,不過都是給 web client

kaif 積分 0

請問有什麼情境是適合用STS,presign url做不到的呢?presgin url應該可以操作所有S3 API功能阿

qrtt1 積分 0

STS 你就可以操作各種 api 了啊。(不只是 S3)

IngramChen 積分 0

上傳時,pre-sign 要先打一次 server 吧,多一次 round trip。

還有如果是下載 private 的 resource ,那還是得用 STS 才能不斷下載...