我使用AWS的Java SDK V2使用定義的代碼串列中的用戶
uj5u.com熱心網友回復:
我已通過在 AWS 管理控制臺中為 IAM 用戶設定權限邊界來確認此行為。我更改了 ListUsers 示例以包含以下代碼:
for(User user : response.users()) {
System.out.format("\n Retrieved user %s", user.userName());
AttachedPermissionsBoundary permissionsBoundary = user.permissionsBoundary();
if (permissionsBoundary != null)
System.out.format("\n Permissions boundary details %s", permissionsBoundary.permissionsBoundaryTypeAsString());
}
...
該permissionsBoundary()方法會回傳NULL -即使權限設定。這是一個錯誤。
我的建議是在此處記錄 Github 問題:
https://github.com/aws/aws-sdk-java-v2
我還使用 Kotlin SDK 對此進行了測驗。結果一樣。
suspend fun listAllUsers() {
IamClient { region = "AWS_GLOBAL" }.use { iamClient ->
val response = iamClient.listUsers(ListUsersRequest { })
response.users?.forEach { user ->
println("Retrieved user ${user.userName}")
val permissionsBoundary = user.permissionsBoundary
if (permissionsBoundary != null)
println("Permissions boundary details ${permissionsBoundary.permissionsBoundaryType.toString()}")
}
}
}
uj5u.com熱心網友回復:
我不認為這是一個問題,而是程式化的行為。來自API 檔案:
IAM 資源串列操作回傳資源可用屬性的子集。例如,此操作不會回傳標簽,即使它們是回傳物件的屬性。要查看用戶的所有資訊,請參閱GetUser。
這在 API javadocs 中也有說明。
在控制臺中,您使用的是get-user,而不是list-users,這就是該命令在其中回傳有關用戶的所有資訊的PermissionsBoundary原因。
請嘗試使用:
aws iam list-users
并檢查輸出,它應該與您使用 Java SDK 獲得的結果匹配,它不會包含PermissionsBoundary任何一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/400796.html
