신규 목표 

  전달 되는 메일이 너무 지저분했다. 구성 변경

 

구성도

  CloudTrail -> Eventbridge -> Lambda -> SNS

 

내용 정리
  1. 람다 함수 생서 (블루프린트 sns-message-python 사용) -> SNS 트리거
  2. 람다 코드에 #첨부2 코드 적용 -> 테스트 (첨부3 데이터 활용)
  3. 기존 인프라에서 Eventbridge 대상 변경 (Lambda)

 

#첨부 2

import json
import boto3

sns = boto3.client('sns')

def lambda_handler(event, context):

    #Extract details from JSON event JSON 이벤트에서 세부정보 추출
    detailType= event["detail-type"]
    region = event["region"]
    accountId = event["account"] 



    time = event["detail"]["eventTime"]
    eventName = event["detail"]["eventName"]
    requestParameters = event["detail"]["requestParameters"]
    taskuser = event["detail"]["userIdentity"]["userName"]

    message = "Alert: %s in %s for account: %s at time: %s\n\n Event: %s \n Task user : %s \n Request parameters: %s" % (detailType, region, accountId, time, eventName,taskuser,requestParameters)

    response = sns.publish(
            TopicArn = "arn:aws:sns:us-east-1:40265848665302129:test_setet",
            Message = message
            )

    return {
      'statusCode': 200,
      'body': json.dumps('Success!')
}

#첨부3

{ 
  "version": "0", 
  "id": "e951asdfasdf-asdfasdf1-0easdf7-1917-a71c621d65bc", 
  "detail-type": "AWS API Call via CloudTrail", 
  "source": "aws.iam", 
  "account": "40265848665302129", 
  "time": "2022-03-31T08:49:13Z", 
  "region": "us-east-1", 
  "resources": [], 
  "detail": { 
    "eventVersion": "1.08", 
    "userIdentity": { 
      "type": "IAMUser", 
      "principalId": "AIDAV3ECDVRDDDsW3GQ", 
      "arn": "arn:aws:iam::40265848665302129:user/seasdfasdfas@asdfasdft.co.kr", 
      "accountId": "40265848665302129", 
      "accessKeyId": "ASIAVASDFEEDFC3QGS2H2QXBFWSDFSDFWAU", 
      "userName": "seasdfasdfas@asdfasdft.co.kr", 
      "sessionContext": { 
        "sessionIssuer": {}, 
        "webIdFederationData": {}, 
        "attributes": { 
          "creationDate": "2022-03-31T06:17:57Z", 
          "mfaAuthenticated": "false" 
        } 
      } 
    }, 
    "eventTime": "2022-03-31T08:49:13Z", 
    "eventSource": "iam.amazonaws.com", 
    "eventName": "DeleteUser", 
    "awsRegion": "us-east-1", 
    "sourceIPAddress": "AWS Internal", 
    "userAgent": "AWS Internal", 
    "requestParameters": { 
      "userName": "testtestst" 
    }, 
    "responseElements": null, 
    "requestID": "68ASDFASEFEF822b43-ad-86de91d9c5e6", 
    "eventID": "45251asdfsdf-d666d4c8a7f", 
    "readOnly": false, 
    "eventType": "AwsApiCall", 
    "managementEvent": true, 
    "recipientAccountId": "40265848665302129", 
    "eventCategory": "Management", 
    "sessionCredentialFromConsole": "true" 
  } 
}

기존 목표 중 이슈 
 
  1. sns publish에서 권한이 없어서 오류가 발생 (lambda에 SNS full 권한을 부여)

'AWS > IAM' 카테고리의 다른 글

IAM user 생성, 삭제 알람 설정 (1)  (0) 2022.04.05

기존 목표 : IAM유저 생성 및 삭제 alarm 설정하기(버지니아 리전)

구성도 : CloudTrail -> Eventbridge -> SNS

내용 정리

  1. CloudTrail 추적 활성화 (API 활동)
  2. eventbridge에서 사용할 이벤트 버스 활성화 -> 규칙 생성 (이벤트 패턴 #첨부 1 참조) -> 대상 SNS (email)

기존 목표 중 이슈

  1. IAM 계정 생성 및 삭제 이슈는 글로벌 리전에서 관리가 된다. (버지니아 북부)
  2. CloudTrail 추적 활성화를 안하면 eventbridge에서 이벤트를 인식 못하였다.

#첨부1

{   
  "source": ["aws.iam"],   
  "detail-type": ["AWS API Call via CloudTrail"],   
  "detail": {   
    "eventSource": ["iam.amazonaws.com"],
    "eventName": ["CreateUser", "DeleteUser"]   
  }   
}

IAM user 생성, 삭제 알람 설정 (2)에서는 전달 되는 메일이 너무 지저분하게 와서 lambda 로 정리 후 SNS로 전달 하려고 합니다.

'AWS > IAM' 카테고리의 다른 글

IAM user 생성, 삭제 알람 설정 (2)  (0) 2022.04.05

+ Recent posts