如何解决我们如何使用Boto3获取IAM服务上次访问的详细信息?
下面是我的代码,然后转换为report \ csv格式
client=boto3.client('iam',aws_access_key_id='somedeclaredvariable',aws_secret_access_key='somedeclaredvariable')
users=client.list_users()
for x in users['Users']:
response = client.generate_service_last_accessed_details(Arn=x['Arn'],Granularity='SERVICE_LEVEL')
response1=client.get_service_last_accessed_details(JobId=response['JobId'])
if(response1['JobStatus']!='IN_PROGRESS'):
print(response1['ServicesLastAccessed'])
我得到的输出在ServicesLastAccessed列表中没有任何数据
这只是一个空列表:[]
解决方法
我在AWS Lambda中运行相同的代码
import json
import boto3
def lambda_handler(event,context):
# TODO implement
client=boto3.client('iam')
users=client.list_users()
print(users)
for x in users['Users']:
response = client.generate_service_last_accessed_details(Arn=x['Arn'],Granularity='SERVICE_LEVEL')
print(response)
response1=client.get_service_last_accessed_details(JobId=response['JobId'])
if(response1['JobStatus']!='IN_PROGRESS'):
print(response1['ServicesLastAccessed'])
generate_service_last_accessed_details(**kwargs)
生成一个报告,其中包含有关最后一次尝试访问AWS服务时使用IAM资源(用户,组,角色或策略)的详细信息。最近的活动通常会在四个小时内出现。
对于GenerateServiceLastAccessedDetails
,我也没有得到结果。但是我尝试运行另一个使用相同用户角色的Lambda。能够获得结果后,就无法访问。
{'JobId': 'XXXXX','ResponseMetadata': {'RequestId': 'bac90379-dXXXXX','HTTPStatusCode': 200,'HTTPHeaders': {'x-amzn-requestid': 'bac90XXXX','content-type': 'text/xml','content-length': '395','date': 'Thu,15 Oct 2020 06:40:29 GMT'},'RetryAttempts': 0}}
清楚地说get_service_last_accessed_details(**kwargs)
检索使用GenerateServiceLastAccessedDetails
操作创建的服务上次访问的报告。
注意:
- 确保您对IAM角色具有正确的访问权限,以获取用户详细信息
- 它提供了最后四个小时的活动。尝试立即访问,然后运行此代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。