如何識別是否特定訪問密鑰&密鑰必須允許S3操作?如何通過使用JAVA SDK檢查用戶是否具有S3權限是否允許?
0
A
回答
0
Amazon S3 SDK的AmazonS3Client是通往S3的網關。您可以使用幾種方法來探索對S3存儲桶和對象的訪問權限,但S3將其訪問權限基於基於資源的策略(即ACL - 訪問控制列表),告知S3哪些用戶可以訪問存儲桶/對象以及和基於用戶的政策,這是授予用戶的權利。
所以,這意味着,在S3的訪問權限管理中沒有對密鑰對的本地理解。雖然你不能給SDK一個密鑰對,並期望它能夠返回關於該密鑰對是否可以訪問資源的真/假,但我可以想到兩個想法。
1)設計你的應用程序,而不是使用IAM角色(這是在EC2上運行時的首選認證方式),你的應用程序可以使用運行時提供的任何密鑰對,所以你的應用程序的用戶需要爲應用程序提供關鍵信息,並且您的應用程序將進行身份驗證,然後嘗試訪問資源。如果可以,很好,如果沒有,它沒有權限。這可能是矯枉過正的,這取決於你的用例。您還需要確保關鍵信息的安全性。這將是一個S3客戶端會做的(只是谷歌的'S3客戶端',你會發現幾個)。
2)確定AWS賬戶(用戶名)是否有權限,而不是試圖確定某個特定的密鑰是否有權訪問某個對象。由於訪問策略是以用戶爲中心的,因此您的應用程序需要通過IAM角色(如果應用程序在EC2上運行)或IAM用戶(如果不在EC2上運行)具有對所有S3的讀權限進行身份驗證並輪詢用戶想要訪問的對象,檢查與該桶或對象關聯的授權並相應地通知用戶。如果您的應用程序需要簡單地檢查用戶是否有權訪問某個對象,並且不做任何其他事情(例如提供對象,進行任何更改等),則可能需要這樣做。
一些方法,你可能想要探索:
public AccessControlList getObjectAcl(String bucketName, String key)
throws AmazonClientException, AmazonServiceException
public BucketPolicy getBucketPolicy(GetBucketPolicyRequest getBucketPolicyRequest)
throws AmazonClientException, AmazonServiceException
public AccessControlList getBucketAcl(GetBucketAclRequest getBucketAclRequest)
throws AmazonClientException, AmazonServiceException
兩個獲得*的Acl方法返回一個AccessControlList,然後你就可以用它來探索已分配給ACL的贈款。
相關問題
- 1. 檢查用戶是否有權限
- 2. Laravel:檢查用戶是否有權限
- 3. Postgres如何檢查用戶是否具有CREATEDB權限?
- 4. 如何檢查當前用戶是否具有管理權限
- 5. 如何檢查Windows用戶是否具有C權限?
- 6. 的Microsoft Dynamics 4.0 SDK檢查用戶是否有權限
- 7. 檢查用戶是否具有查看文件夾權限
- 8. 如何檢查用戶是否被授權使用Pinterest IOS SDK?
- 9. Qt,Linux,檢查給定的用戶是否具有sudo權限
- 10. 如何知道用戶是否允許提示權限
- 11. Python - 檢查用戶是否具有管理員權限
- 12. 檢查用戶是否具有特定的Windows權限Powershell
- 13. 檢查用戶是否具有讀/寫權限
- 14. Redmine:檢查用戶是否具有特定權限
- 15. 檢查請求的用戶是否具有管理員權限
- 16. 臉書連接:檢查用戶是否具有javascript的權限
- 17. Java Spring - 檢查用戶是否被允許查看頁面
- 18. 如何檢查用戶是否同步擁有publish_stream權限?
- 19. 如何檢查用戶是否具有數據庫查詢權限?
- 20. webservice如何檢查用戶是否被允許查看項目?
- 21. 使用AngularJS服務來檢查用戶是否具有管理員權限
- 22. 檢查用戶是否允許本地通知。 iOS 8. Obj-C
- 23. 如何檢查用戶是否具有windows api文件的訪問權限
- 24. Facebook是否允許通過應用程序sdk發送通知?
- 25. ZF檢查用戶是否被允許使用資源
- 26. 如何檢查用戶是否具有用戶級別通過JAVASCRIPT
- 27. 如何檢查權限的朋友是否允許我發佈的牆上或不使用PHP SDK
- 28. 檢查用戶是否有權限查看頁面
- 29. 如何檢查進程是否具有管理權限
- 30. Facebook SDK,如何檢查用戶是否已接受我的權限?