有沒有辦法讓用戶名附加到訪問密鑰您用於通過Java訪問AWS的憑據?我希望能夠獲得在IAM Users部分中定義的用戶名,以便我可以設置用戶特定的桶/文件夾,然後根據訪問鍵的用戶名動態地將腳本指向它們(這樣我就可以在必要時更改訪問密鑰,而不更改存儲桶/文件夾名稱)。從Java的亞馬遜訪問密鑰獲取用戶名
回答
我現在發現了一個更好的從Java中的AWS Access憑證獲取用戶名的方法。前面提到的答案是一個簡單的工作,因爲當時沒有提供其他解決方案。這種新方法實際上是AWS SDK for Java的一部分(它可能不是原始帖子的時間)。
無論如何,來獲取用戶名,只需使用以下行: iamServ.getUser().getUser().getUserName();
這將返回一個可以存儲到一個變量的字符串。我不確定他們爲什麼設置它,所以你必須撥打.getUser()
兩次,但他們確實。您可以在第二個.getUser()
後使用的其他方法包括:.getUserID()
,.getArn()
,.getPath()
和.getCreateDate()
。
注意:我離開舊的答案,因爲它仍然有效,但現在這是更好的解決方案。
再次我回答我的問題......我好像總是在回答對我自己有一次我問別人怎麼做的更好......
無論如何,你會發現下面的代碼將允許您爲當前正在使用的訪問憑證提取用戶名:
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.PropertiesCredentials;
import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClient;
public class test {
private static AmazonIdentityManagementClient iamServ;
private static void init() throws Exception {
AWSCredentials credentials = new PropertiesCredentials(test.class.getResourceAsStream("AwsCredentials.properties"));
iamServ = new AmazonIdentityManagementClient(credentials);
}
public static void main(String[] args) throws Exception {
init();
String theUser = iamServ.getUser().toString().substring(27);
int userNameEnd = theUser.indexOf(",");
String userName = theUser.substring(0, userNameEnd);
System.out.println(userName);
}
}
執行是粗糙的,但它的工作原理;或者至少在我嘗試過的情況下。如果你只是使用System.out.println(iamServ.getUser());
,用戶名會顯示出來尋找與此類似:
{User: {Path: /, UserName: UserName, UserId: xxxxxxxxxxxxxxxxxxxxxx, Arn: arn:aws:iam::xxxxxxxxxxx:user/UserName, CreateDate: Day Mon DayNum hr:min:sec Tmz Year, }, }
否則顯示的代碼返回用戶名,而不是所有的字符串中的額外的「垃圾」。無論如何,我希望這可以幫助那些可能正在尋找獲取當前訪問標識的用戶名的解決方案的其他人。如果有人知道另一種更好的方法,請在評論中告訴我們。
- 1. 亞馬遜ec2更改訪問密鑰
- 2. 亞馬遜密鑰和Heroku
- 3. 獲取亞馬遜產品廣告API訪問密鑰的簡單方法
- 4. 在Carrierwave和Fog的URL中顯示亞馬遜訪問密鑰
- 5. 亞馬遜S3 - 我們需要存儲訪問和密鑰?
- 6. 沙盒亞馬遜支付 - 訪問密鑰ID
- 7. 亞馬遜EC2密鑰對恢復
- 8. 如何指定AWS訪問密鑰ID和祕密訪問密鑰作爲亞馬遜S3N URL的一部分
- 9. 亞馬遜採訪問題
- 10. 訪問沒有私鑰/公鑰的亞馬遜EC2
- 11. 使用亞馬遜API獲取亞馬遜SalesRank
- 12. 從亞馬遜EC上的用戶目錄訪問Apache VirtualHost
- 13. 從亞馬遜的webclient獲取圖像
- 14. 從亞馬遜賣家獲取物品
- 15. 如何使用boto獲取亞馬遜上的密鑰/文件的校驗和?
- 16. 使用powershell獲取與亞馬遜訪問密鑰關聯的s3存儲桶的列表?
- 17. 腓 - 獲取的使用亞馬遜API
- 18. 從Magento獲取訪問密鑰和訪問令牌密鑰
- 19. 從亞馬遜kinesis獲取數據到java web應用程序
- 20. 用java亞馬遜AWS NoSuchFieldError
- 21. 亞馬遜S3加密
- 22. 通過公共IP訪問亞馬遜EC2獲取超時
- 23. 訪問Singleton類時獲取java.lang.VerifyError Android亞馬遜App Store
- 24. 亞馬遜EC2丟失了私鑰,如何訪問服務器?
- 25. 亞馬遜IAM用戶+授予對S3的訪問權限
- 26. 亞馬遜從API
- 27. 亞馬遜應用商店訪問中國用戶?
- 28. 亞馬遜S3祕密密鑰頁面移動
- 29. 亞馬遜EC2訪問被拒絕
- 30. 訪問亞馬遜生產信息AWS