2017-09-10 1 views
11

python boto 모듈을 사용하여 AWS iam에서 사용자를 성공적으로 가져 왔습니다.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" 

How do I get the Groups details the user is associated with or the Permission type user is associated to ?

나는 사용자와 관련된 그룹을 얻을 코드 줄을 추가하고 나는 오류가 울부 짖는 소리를 언급 얻고있다.

추가 코드 :

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> 
+3

이 작업을 수행 할 수있는 올바른 권한이 사용자에게 없습니다. 'user/qa-api-users는 수행 할 수있는 권한이 없습니다. iam : Resource의 ListGroupsForUser : user Shita'는 강력한 힌트입니다. IIRC 만 관리 사용자가이 작업을 수행 할 수 있습니다. –

+0

@SteveBarnes 사용 권한을 확인했습니다. 사용중인 자격 증명에는 모든 기능에 대한 권한이 설정되어 있습니다. 다른 모든 API 함수에도 get_groups_for_user에 대한 읽기 액세스 권한이 있습니다. 하지만 사용자가 수행 할 권한이없는 동일한 오류가 발생합니다. 오류 메시지마다 당국의 문제는 있지만 사용자에게 권한이 주어졌지만 오류가 발생하는 이유는 무엇입니까? –

+0

AWS, Boto 또는 라이브러리의 문제 일 가능성이 높습니다. –

답변

0

사용하여 자격 증명이 필수적이다. code_onkel은 트랜잭션을 성공적으로 완료하는 데 필요한대로 IAMFullAccess 또는 AdministratorAccess를 지정하는 것이 좋습니다.