728x90
회사 Account를 관리하다 보면 보안노출의 위험들이 많이 보인다. 요즘에는 개발자들이 자기 Git에 필터링 없이 올리는 경우도 많고... 그러다 보면 AccessKey같은것들이 노출되기 쉽상이다.
물론! 개발에서 엑세스키를 사용하는것은 절대 안된다. 클라우드 내에서 돌리고 Role로 관리해야 하며 그게 여의치 않다면 STS를 사용하던지 해야된다.
아무튼 AccessKey와 같이 사용이 오래된 Key들을 Expire시키는 스케쥴을 만들어 보자.
import json
import boto3
import datetime
# Main
def lambda_handler(event, context):
print("!!! Start expire_access_key Script !!!")
print("============================================================")
expire_days=event['ExpireDate']
iam_obj = boto3.client('iam')
user_list=iam_obj.list_users()
for user_name in user_list['Users']:
user = iam_obj.get_user(UserName=user_name['UserName'])
access_keys = iam_obj.list_access_keys(UserName=user['User']['UserName'])
if( int(datetime.datetime.now().strftime("%Y%m%d")) - int(access_keys['AccessKeyMetadata'][0]['CreateDate'].strftime("%Y%m%d")) > expire_days ):
response = iam_obj.update_access_key(UserName=user['User']['UserName'], AccessKeyId=access_keys['AccessKeyMetadata'][0]['AccessKeyId'], Status='Inactive')
print("["+user['User']['UserName'] + "Access Key over "+ str(expire_days) +"days, so it is expired.")
else:
print("["+user['User']['UserName'] + "]" + " Still available.")
print("============================================================")
print("!!! Finish expire_access_key Script !!!")
이렇게 lambda를 CF Event Trigger에 등록하고 ExpireDate 에 유효기간을 파라미터로 주면 된다.
'IaaS > 퍼블릭클라우드' 카테고리의 다른 글
GCP VPC 구축하기 (Public/Private Subnet 구축하기) (0) | 2023.11.24 |
---|---|
AWS SaaS Boost 프로젝트 (0) | 2023.06.22 |
AWS 사용자별 자원생성 가능 Region을 제한하는 Policy 구축하기 (0) | 2022.08.16 |
AWS EC2 인스턴스 AMI에서 SSH Password Authentication 활성화 하기 (0) | 2022.05.16 |
[AWS 세션] 더욱 진화하는 AWS 네트워크 보안 (0) | 2022.05.16 |