【发布时间】:2018-02-18 15:27:06
【问题描述】:
我已使用 python boto 模块从 AWS IAM 成功获取用户。
代码:
import boto
from boto.iam.connection import IAMConnection
cfn = IAMConnection(aws_access_key_id='somekeyid',aws_secret_access_key ='secret_here')
data = cfn.get_all_users()
for user in data.users:
print user,"\n"
如何获取用户关联的组或权限?
我添加了这行代码来获取与用户关联的组,我收到了下面提到的错误。
添加代码:
group=cfn.get_groups_for_user("Shital")
print group
其中“Shital”是存在并从上方获取的用户。出于测试目的,我手动将其传递给函数调用。
错误:
Traceback (most recent call last):
File "getuser.py", line 14, in <module>
pol=cfn.get_groups_for_user("Shita")
File "/home/tara/testinghere/IAM/env/local/lib/python2.7/site-packages/boto/iam/connection.py", line 509, in get_groups_for_user
list_marker='Groups')
File "/home/tara/testinghere/IAM/env/local/lib/python2.7/site-packages/boto/iam/connection.py", line 102, in get_response
raise self.ResponseError(response.status, response.reason, body)
boto.exception.BotoServerError: BotoServerError: 403 Forbidden
<ErrorResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
<Error>
<Type>Sender</Type>
<Code>AccessDenied</Code>
<Message>User: arn:aws:iam::586848946515:user/qa-api-users is not authorized to perform: iam:ListGroupsForUser on resource: user Shita</Message>
</Error>
<RequestId>7e9a4b56-95f0-11e7-9bb0-8b8eb22708c5</RequestId>
</ErrorResponse>
【问题讨论】:
-
您的问题是您没有正确的权限来执行此操作
user/qa-api-users is not authorized to perform: iam:ListGroupsForUser on resource: user Shita是一个强烈的提示。只有 IIRC 管理员用户才能执行此操作。 -
@SteveBarnes 我已经检查了权限。我使用的凭据已将权限设置为所有功能。它具有对 get_groups_for_user 以及所有其他 api 函数的读取权限。但是我得到了用户无权执行的相同错误。根据错误消息,它是一个权限问题,但用户有权限,但为什么我收到错误
-
我建议这是 AWS、Boto 或图书馆的问题,按可能性降序排列。
-
“所有功能”是什么意思?您是否仔细检查了 API 用户的 IAM 角色?根据我的经验,IAM 可能会非常令人困惑。尝试将角色
IAMFullAccess或AdministratorAccess临时分配给您的 API 用户,然后查看调用是否有效。 -
+1 到 @code_onkel,我可以确认 OP 发布的脚本可以在我的 AdministratorAccess 帐户中正常工作。
标签: python amazon-web-services boto