Python 3.x 获取访问密钥年龄AWS Boto3
我试图找到一种方法,通过使用Python3.6和Boto3的aws lambda函数让用户访问密钥年龄。我的问题是,如果存在用于此目的的api调用,我似乎找不到合适的api调用。我能找到的最接近的两个是Python 3.x 获取访问密钥年龄AWS Boto3,python-3.x,amazon-web-services,boto3,amazon-iam,Python 3.x,Amazon Web Services,Boto3,Amazon Iam,我试图找到一种方法,通过使用Python3.6和Boto3的aws lambda函数让用户访问密钥年龄。我的问题是,如果存在用于此目的的api调用,我似乎找不到合适的api调用。我能找到的最接近的两个是列出访问密钥,我可以用它来查找密钥的创建日期。和get\u access\u key\u last\u used,它可以告诉我上次使用密钥的日期。然而,我似乎找不到任何一个或其他人简单地给出访问密钥年龄,如AWS IAM console用户视图中所示。是否存在一种简单获取访问密钥年龄的方法?没有直
列出访问密钥
,我可以用它来查找密钥的创建日期。和get\u access\u key\u last\u used
,它可以告诉我上次使用密钥的日期。然而,我似乎找不到任何一个或其他人简单地给出访问密钥年龄,如AWS IAM console用户视图中所示。是否存在一种简单获取访问密钥年龄的方法?没有直接的方法。您可以使用以下代码段来实现您正在尝试的功能:
import boto3, json, time, datetime, sys
client = boto3.client('iam')
username = "<YOUR-USERNAME>"
res = client.list_access_keys(UserName=username)
accesskeydate = res['AccessKeyMetadata'][0]['CreateDate'] ### Use for loop if you are going to run this on production. I just wrote it real quick
accesskeydate = accesskeydate.strftime("%Y-%m-%d %H:%M:%S")
currentdate = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
accesskeyd = time.mktime(datetime.datetime.strptime(accesskeydate, "%Y-%m-%d %H:%M:%S").timetuple())
currentd = time.mktime(datetime.datetime.strptime(currentdate, "%Y-%m-%d %H:%M:%S").timetuple())
active_days = (currentd - accesskeyd)/60/60/24 ### We get the data in seconds. converting it to days
print (int(round(active_days)))
导入boto3、json、time、datetime、sys
client=bot3.client('iam')
username=“”
res=客户端。列出访问密钥(用户名=用户名)
accesskeydate=res['AccessKeyMetadata'][0]['CreateDate']\。我写得很快
accesskeydate=accesskeydate.strftime(“%Y-%m-%d%H:%m:%S”)
currentdate=time.strftime(“%Y-%m-%d%H:%m:%S”,time.gmtime())
accesskeyd=time.mktime(datetime.datetime.strTime(accesskeydate,“%Y-%m-%d%H:%m:%S”).timetuple())
currentd=time.mktime(datetime.datetime.strtime(currentdate,“%Y-%m-%d%H:%m:%S”).timetuple())
活动天数=(currentd-accesskeyd)/60/60/24#####我们以秒为单位获得数据。将其转换为天
打印(整数(整轮(活动日)))
让我知道这是否如预期的那样有效。没有直接的方法。您可以使用以下代码段来实现您正在尝试的功能:
import boto3, json, time, datetime, sys
client = boto3.client('iam')
username = "<YOUR-USERNAME>"
res = client.list_access_keys(UserName=username)
accesskeydate = res['AccessKeyMetadata'][0]['CreateDate'] ### Use for loop if you are going to run this on production. I just wrote it real quick
accesskeydate = accesskeydate.strftime("%Y-%m-%d %H:%M:%S")
currentdate = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
accesskeyd = time.mktime(datetime.datetime.strptime(accesskeydate, "%Y-%m-%d %H:%M:%S").timetuple())
currentd = time.mktime(datetime.datetime.strptime(currentdate, "%Y-%m-%d %H:%M:%S").timetuple())
active_days = (currentd - accesskeyd)/60/60/24 ### We get the data in seconds. converting it to days
print (int(round(active_days)))
导入boto3、json、time、datetime、sys
client=bot3.client('iam')
username=“”
res=客户端。列出访问密钥(用户名=用户名)
accesskeydate=res['AccessKeyMetadata'][0]['CreateDate']\。我写得很快
accesskeydate=accesskeydate.strftime(“%Y-%m-%d%H:%m:%S”)
currentdate=time.strftime(“%Y-%m-%d%H:%m:%S”,time.gmtime())
accesskeyd=time.mktime(datetime.datetime.strTime(accesskeydate,“%Y-%m-%d%H:%m:%S”).timetuple())
currentd=time.mktime(datetime.datetime.strtime(currentdate,“%Y-%m-%d%H:%m:%S”).timetuple())
活动天数=(currentd-accesskeyd)/60/60/24#####我们以秒为单位获得数据。将其转换为天
打印(整数(整轮(活动日)))
让我知道这是否如预期的那样工作。此简单代码在不转换大量时间的情况下完成相同的工作,等等:
import boto3
from datetime import date
client = boto3.client('iam')
username = "<YOUR-USERNAME>"
res = client.list_access_keys(UserName=username)
accesskeydate = res['AccessKeyMetadata'][0]['CreateDate'].date()
currentdate = date.today()
active_days = currentdate - accesskeydate
print (active_days.days)
导入boto3
起始日期时间导入日期
client=bot3.client('iam')
username=“”
res=客户端。列出访问密钥(用户名=用户名)
accesskeydate=res['AccessKeyMetadata'][0]['CreateDate'].date()
currentdate=date.today()
活动天数=当前日期-accesskeydate
打印(活动天数。天数)
这段简单的代码在不转换大量时间的情况下做同样的事情:
import boto3
from datetime import date
client = boto3.client('iam')
username = "<YOUR-USERNAME>"
res = client.list_access_keys(UserName=username)
accesskeydate = res['AccessKeyMetadata'][0]['CreateDate'].date()
currentdate = date.today()
active_days = currentdate - accesskeydate
print (active_days.days)
导入boto3
起始日期时间导入日期
client=bot3.client('iam')
username=“”
res=客户端。列出访问密钥(用户名=用户名)
accesskeydate=res['AccessKeyMetadata'][0]['CreateDate'].date()
currentdate=date.today()
活动天数=当前日期-accesskeydate
打印(活动天数。天数)
经过进一步测试,我提出了以下在Lambda中运行的方法。如果用户的IAM密钥为90天或更久,python3.6中的此功能将向用户发送电子邮件
先决条件
所有IAM用户都有一个电子邮件标签,其值为正确的电子邮件地址
榜样
- IAM用户标记键:电子邮件
- IAM用户标签值:someone@gmail.com