我使用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 档案:
这在 API javadocs 中也有说明。
在控制台中,您使用的是get-user
,而不是list-users
,这就是该命令在其中回传有关用户的所有信息的PermissionsBoundary
原因。
请尝试使用:
aws iam list-users
并检查输出,它应该与您使用 Java SDK 获得的结果匹配,它不会包含PermissionsBoundary
任何一个。
0 评论