로그 스트림 생성하기
aws logs create-log-stream \
--log-group-name <로그 그룹 이름> \
--log-stream-name <로그 스트림 이름>
ssm_login.sh
#!/bin/bash
SESSION_ID=$(aws ssm describe-sessions --state Active --query 'Sessions[*]' --output json | jq -r 'max_by(.StartDate) | .SessionId')
LOG_ENTRY=$(jq -n \
--arg eventTime "$(date '+%Y-%m-%dT%H:%M:%SZ')" \
--arg eventSource "ssm.amazonaws.com" \
--arg state "Active" \
--arg accountId "654654489681" \
--arg sessionId "$SESSION_ID" \
'{eventTime: $eventTime, eventSource: $eventSource, state: $state, accountId: $accountId, sessionId: $sessionId}')
TIMESTAMP=$(date +%s%3N)
LOG_EVENTS_JSON=$(jq -n \
--argjson timestamp $TIMESTAMP \
--arg message "$LOG_ENTRY" \
'[{timestamp: $timestamp, message: $message}]')
LOG_GROUP_NAME=<로그 그룹 이름>
LOG_STREAM_NAME=<로그 스트림 이름>
aws logs put-log-events --log-group-name $LOG_GROUP_NAME --log-stream-name $LOG_STREAM_NAME --log-events "$LOG_EVENTS_JSON"
/usr/bin 경로로 이동
sudo mv ./ssm_login.sh /usr/bin/
"기본 설정" 클릭
편집을 누르고 Linux shell profile 에 아래 명령어를 작성해줍니다.
sh ssm_login.sh > /dev/null 2>&1
이제 SSM으로 접근 시 sh 파일이 실행되는 것을 확인 할 수 있습니다.
대시보드
SSM Access : < 최근 접속 횟수 >
SSM Access : ${SUM}
fields @timestamp, @message, @logStream, @log
| sort @timestamp desc
| display eventTime, eventSource, state, accountId, sessionId