ã¨ã¼ã¸ã§ã³ã·ã¼äºæ¥ã§ãªã¼ããã¼ã¿ã¨ã³ã¸ãã¢ãè¡ãªã£ã¦ããå¤§çª ç´æ¨¹ (ãããã)ã§ã. AWSã®ãã°, ãµã¼ãã¼ã®ãã°ã£ã¦ãããã種é¡ããã£ã¦é£ããã§ããã... åããããªãã°ãããããããã®ã§, ä½ãåãã°è¯ãã®ãã¨ã ã©ã®ãããã®æéä¿æããã°è¯ãã®ãã¨ã
ã¾ããã®å¾ã®, ãã°ã®å®è£ ã, åææ¹æ³ããæ¹æ³ãé£ããã§ããã...
ä»åAWSã«æ§ç¯ããåç¨ã¢ããªã±ã¼ã·ã§ã³ã®ãã°ãæ´åããæ©ä¼ããã£ãã®ã§,
ãã®ãã¨ã«ã¤ãã¦æ¸ããããªã¨æãã¾ã.
- æ¦è¦
- æ¬é¡ã«å ¥ãåã®æºå
- è¨è¨
- å®è£
- åæ
- ã¾ã¨ã
æ¦è¦
ãã®ããã°ã§ã¯ãã°è¨è¨/å®è£ /åæãè¡ãªã£ã¦ããã¾ã.
ã¾ãããã§ãããã°ã¨ã¯, AWS, OS, ã¢ããªã±ã¼ã·ã§ã³ã®ãã°ã®ãã¨ã§ã.
æ³ä»¤ã«åã£ã¦, åå¾ãããã°, ä¿ææéãªã©ãè¨è¨ã,
å®è£ ãè¡ã, åæã§ããç¶æ ã«ããã¨ããã¾ã§ããã°ã§æ¸ãã¾ã.
以ä¸ã¯ä»åã®è¨äºã®è¦ç´ã§ã.
- ãã°ã®ä¿ç®¡å ´æã¯S3
- ãµã¼ãã¼å ã®ãã°ã®S3転éã«ã¯, fluentbitãæ¡ç¨
- ãã°ã®åæã«ã¯, GuardDuty, Glue, Athenaã使ç¨
- ä¿ç®¡ãããã°åã³ä¿ææéã¯ä¸è¨
- CloudTrail (ãã¼ã¿ã¤ãã³ã)ã¯, S3ã®ãµã¼ãã¼ã¢ã¯ã»ã¹ãã°ã§ä»£æ¿å¯è½
ãã°å | ä¿ç®¡æé |
---|---|
AWS: CloudTrail (管çã¤ãã³ã) | 5å¹´ |
AWS: CloudTrail (ãã¼ã¿ã¤ãã³ã) | 5å¹´ |
AWS: VPCããã¼ãã° | 1ã¶æ |
AWS: ALBã®ã¢ã¯ã»ã¹ãã° | 1å¹´ |
AWS: NLBã®ã¢ã¯ã»ã¹ãã° | 1å¹´ |
OS: /var/log/messages | 5å¹´ |
OS: /var/log/secure | 5å¹´ |
APP: ç£æ»ãã° | 5å¹´ |
APP: ã¢ã¯ã»ã¹ãã° | 5å¹´ |
æ¬é¡ã«å ¥ãåã®æºå
æ¬é¡ã«å ¥ãåã«, åæºåã¨ãã¦ä»åãã°ãå®è£ ãã¦ããã¢ã¼ããã¯ãã£ã®ç´¹ä»ã, ãã°ã«é¢ããæ å ±ã«ã¤ãã¦è¨è¼ãã¦ããã¾ã.
ä»åãã°å®è£ ããã¢ã¼ããã¯ãã£
ä»å, ãã°å®è£ ãã¦ããã¢ã¼ããã¯ãã£ã¯ä¸è¨ã«ç¤ºãã¾ã.
- åä¸ãªã¼ã¸ã§ã³/åä¸AZ
- ã¢ã¯ã»ã¹çµè·¯
- ALB
- NLB
- è¸ã¿å°ãµã¼ãã¼ããã®ssh
ãã°ã«é¢ããæ³ä»¤
ãã°ã«é¢ããã¯æ³ä»¤ã¯å¤ã ããã¾ã. ä¸è¨ã¯IPAã, è¦ç´ããè³æãæ¸ãæãããã®ã§ã.
ä¿åæé | æ³ä»¤ã»ã¬ã¤ãã©ã¤ã³ãªã© |
---|---|
1ã¶æé |
|
3ã¶æé |
|
1å¹´é |
|
18ã¶æé |
|
3å¹´é |
|
5å¹´é |
|
7å¹´é |
|
10å¹´é |
|
å¼ç¤¾ã§ã¯, ä¸è¨ãåèã«ç£æ»ãã°ã¯æä½5å¹´, ã¢ã¯ã»ã¹ãã°ã¯æä½3ã¶æã¯åå¾ãããã¨ãã«ã¼ã«ã¥ãã¦ãã¾ã.
ã¾ã, ããã§è¨ãç£æ»ãã°ã¨ã¯, ã·ã¹ãã ã«å¯¾ãã¦å®è¡ããæä½å 容ãæç³»åãã¤é£ç¶çã«è¨é²ããããã®ã§ã.
ç£æ»ãã°ãè¦ããã¨ã§, ãã¤, 誰ã, ã©ã®ãããªæä½ãããããææ¡ãããã¨ãã§ãããããªãã°ãæãã¾ã.
ã¢ã¯ã»ã¹ãã°ã¨ã¯ãã·ã¹ãã ã«å¯¾ãã¦ã¢ã¯ã»ã¹ããå 容ãæç³»åãã¤é£ç¶çã«è¨é²ããããã®ã§ã.
ã¢ã¯ã»ã¹ãã°ãè¦ããã¨ã§, ãã¤, 誰ã, ã©ããã, ã©ã®ãããªæ¥ç¶å ã§, ã©ã®ããã«ãªã¯ã¨ã¹ãã, ã©ã®ãããªå¦çã«ãªã£ãããææ¡ãããããªãã¨ãã§ãããããªãã°ãæãã¾ã.
ãã°ã®åå¾ç®æ
ãã°ã®åå¾ã¯, ä½ããã®æä½ãã§ããç®æ, ã¢ã¯ã»ã¹ã鮿ããå¯è½æ§ãããç®æã¯åå¾ããå¿ è¦ãããã¾ã. å ·ä½ä¾ãè¨ãã¨ä¸è¨ã®ãããªç®æã§åå¾ãæ¤è¨ããå¿ è¦ãããã¾ã.
- AWS (ã¤ã³ãã©)
- WAF
- LB
- VPC (SG, ACL, etc.)
- RDS
- OS (â»ããã ããã°å)
- ã·ã¹ãã ãã°
- ã¢ã¯ã»ã¹ãã°
- ã¢ããªã±ã¼ã·ã§ã³
- Apache, Nginx
- ãã¬ã¼ã ã¯ã¼ã¯
- åç¨ã¢ããªã±ã¼ã·ã§ã³
ãã®ããã«åç®æã§åå¾ããå¿ è¦ãããçç±ã¨ãã¦ã¯, å層ã§ãã°ãåå¾ããªãã¨ã¦ã¼ã¶ã¼ãã©ãã¾ã§ã¢ã¯ã»ã¹ãã¦, ã©ã®ãããªæä½ãããã®ã追ããªãããã§ã.
ä¾ãã°, ã¢ããªã±ã¼ã·ã§ã³ã«ã¢ã¯ã»ã¹ãããã¦ã¼ã¶ã¼ãããã¨ãã¾ã.
ä¸è¨å³ã®ããã«3層(ã¤ã³ãã©, OS, ã¢ããªã±ã¼ã·ã§ã³)ã«å¤§å¥ããã¨ããã¨, ãã®ã¦ã¼ã¶ã¼ã®ã¢ã¯ã»ã¹ã¯ã¤ã³ãã©ã¢ã¯ã»ã¹æ, OSã¢ã¯ã»ã¹æ, ã¢ããªã±ã¼ã·ã§ã³ã¢ã¯ã»ã¹æã®3ç®æã§å¤±æããå¯è½æ§ãããã¾ã.
ä¸ã¤ã§ããã°ãæ¬ ãã¦ããã¨, ã©ãã§ãã®ã¦ã¼ã¶ã¼ãã¢ã¯ã»ã¹ã«å¤±æããã, ã©ã®ãããªæä½ããããã䏿çã«ãªãã¾ã.
ãããã£ã¦ãã°ã®åå¾ã¯, ä½ããã®æä½ãã§ããç®æ, ã¢ã¯ã»ã¹ã鮿ããå¯è½æ§ãããç®æã¯åå¾ããå¿ è¦ãããã¾ã.
è¨è¨
ãããããæ¬é¡ã§ã! ãã®ç« ã§ã¯, AWS, OS, ã¢ããªã±ã¼ã·ã§ã³ã§ã©ã®ãããªãã°ãåå¾ããã, ã©ã®ãããã®æéä¿ç®¡ããããªã©ãè¨è¨ãã¦ããã¾ã.
ä¿ç®¡ãããã°ã®æ±ºå®
ä¿ç®¡ãããã°ã決ãã¦ããã¾ã.
ä½ããã®æä½ãã§ããç®æ, ã¢ã¯ã»ã¹ã鮿ããå¯è½æ§ãããç®æã¯åå¾ããå¿ è¦ãããã¾ã. ã¾ãåãã«, ä¸è¨ã«åãã¢ã¯ã»ã¹ã鮿ããå¯è½æ§ãããç®æ, æä½ã§ããç®æãæ´ãåºãã¦ããã¾ã.
ä»åãã¾ã, ã¤ã³ãã©, OS, ã¢ããªã±ã¼ã·ã§ã³ã®3層ã«å¤§å¥ãã¦èãã¦ããã¾ã.
ã¤ã³ãã©ã®ãã°
ä»åã®ã±ã¼ã¹ã§ããã¤ã³ãã©ã¨ã¯, AWSãµã¼ãã¹ã®ãã¨ã§ã.
AWSã¯æä½ãã§ããç®æãªã®ã§, AWSã®ç£æ»ãã°ãå¿ è¦ã§ã.
ã¾ã, å¤ãã®ãµã¼ãã¹ã§ã¢ã¯ã»ã¹ç®¡çã®ä»çµã¿ãããã®ã§ããã§ããã°ãå¿ è¦ã§ã.
ä»åã®å ´å, ã¢ã¯ã»ã¹ç®¡çã®ä»çµã¿ããããµã¼ãã¹ãä¸è¨ã«åæãã¾ã. (ãã°ãµã¼ãã¹ã使ãä¸ã§S3ã¯å¿ é ã®ãã追è¨ãã¦ã¾ã.)
- AWS
- ALB
- NLB
- VPC
- S3
ãã®ããããã®ç®æã§, ã¢ã¯ã»ã¹ãã°ãå¿ è¦ã§ã.
ä¸è¨ã«é¢é£ãã, AWSã®ãã°ãµã¼ãã¹åã³, åå¾ã®æç¡ãä¸è¨ã«åæãã¾ã.
AWSã®ãã°
ãã°å | 説æ | åå¾ã®æç¡ |
---|---|---|
CloudTrail (管çã¤ãã³ã) | AWS ã¢ã«ã¦ã³ãã®ãªã½ã¼ã¹ã§å®è¡ããã管çãªãã¬ã¼ã·ã§ã³ã®ãã° (ãã¼ã¿é¢é£ä»¥å¤ã®ç£æ»ãã°, AWSã¸ã®ãã°ã¤ã³å¤±æã®ãããªãã°ããã) | â |
CloudTrail (ãã¼ã¿ã¤ãã³ã) | AWS ã¢ã«ã¦ã³ãã®ãªã½ã¼ã¹ã§å®è¡ããããã¼ã¿ãªãã¬ã¼ã·ã§ã³ã®ãã° (ãã¼ã¿é¢é£ã®ç£æ»ãã°) | â |
VPCããã¼ãã° | VPC ã®ãããã¯ã¼ã¯ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¨ã®éã§è¡ãæ¥ãã IP ãã©ãã£ãã¯ã«é¢ãããã° | â |
ALBã®ã¢ã¯ã»ã¹ãã° | ALBã«éä¿¡ããããªã¯ã¨ã¹ãã«ã¤ãã¦ã®è©³ç´°æ å ±ããã£ããã£ããã¢ã¯ã»ã¹ãã° | â |
NLBã®ã¢ã¯ã»ã¹ãã° | NLBã«éä¿¡ããããªã¯ã¨ã¹ãã«ã¤ãã¦ã®è©³ç´°æ å ±ããã£ããã£ããã¢ã¯ã»ã¹ãã° | â |
S3ã®ãµã¼ãã¼ã¢ã¯ã»ã¹ãã° | ãã±ããã«å¯¾ãããªã¯ã¨ã¹ãã®è©³ç´°ãè¨é²ãããã¢ã¯ã»ã¹ãã° | à |
S3ã®ãµã¼ãã¼ã¢ã¯ã»ã¹ãã°ãåå¾ããªãçç±ã¯, CloudTrail (ãã¼ã¿ã¤ãã³ã)ã§è£ããããã§ã.
ãã£ããã¨ä¸è¨ã®ãããªéããããã¾ã.
- è²»ç¨
- S3ã®ãµã¼ãã¼ã¢ã¯ã»ã¹ãã° < CloudTrail (ãã¼ã¿ã¤ãã³ã)
- æ
å ±é
- S3ã®ãµã¼ãã¼ã¢ã¯ã»ã¹ãã° > CloudTrail (ãã¼ã¿ã¤ãã³ã)
ä¸è¬çã«ã¯, CloudTrail (ãã¼ã¿ã¤ãã³ã) ãåå¾ãã, S3ã®ãµã¼ãã¼ã¢ã¯ã»ã¹ãã°ãåå¾ãã¾ã.
ä»åã®ãã°ãæ´åããã¢ããªã±ã¼ã·ã§ã³ã¯, 社å ç¨ã®ã¢ããªã±ã¼ã·ã§ã³ã§CloudTrail (ãã¼ã¿ã¤ãã³ã)ã®è²»ç¨ãé常ã«å®ããã¨ãæ³å®ã§ããããæ¡ç¨ãã¾ã.
é常ã«é«ä¾¡ã«ãªãããããµã¼ãã¹ã®ãã, åå¾ããéã¯è²»ç¨ã«æ°ãã¤ãã¦ãã ãã.
ãã詳細ã«ãã¼ã¿ã®éããç¥ãããå ´åã¯, ä¸è¨ã®Classmethodããã®è¨äºãåèã«ãã¦ãã ãã.
OSã®ãã°
OSã¯, AmazonLinux2ã§ã.
å ã«, OSã«ã¯1ãã¡ã¤ã«ã§å®ç§ãªç£æ»ãã°, ã¢ã¯ã»ã¹ãã°ã¯ãªãã§ã.
ãããã£ã¦, æä½éãã®ãã°ã¯ä¿ç®¡ããããããã§åé¡ãªãã§ã.
ä»åã¯OSã®ãã°ã«ã¤ãã¦, ä¸è¨ã®ã·ã¹ãã ãã°ãä¿ç®¡ãããã¨ã«ãã¾ã.
ãã°å | 説æ |
---|---|
/var/log/messages | ã·ã¹ãã å ¨ä½ã®ä¸è¬çãªåºåã®ãã° (ã·ã¹ãã ã¨ã©ã¼ã¡ãã»ã¼ã¸, èµ·åãã°, ã·ã¹ãã è¦åãªã©) |
/var/log/secure | èªè¨¼ã«é¢é£ãããã° (sshãã°ã¤ã³è©¦è¡, sudoã®ä½¿ç¨ãªã©) |
(å度éè¦ãªãã¨ãªã®ã§) /var/log/messages, /var/log/secureã¯éè¦ãªãã°ã§ãã, å®å ¨ãªç£æ»ãã°ã«ã¯ãªããªãã§ã.
å®å ¨ãªç£æ»ãã°ã¨ããããã«, ä»ã®ãã°ã¨çµã¿åãããã, ç£æ»ç¨ã®ãµã¼ãã¹(auditdãªã©)ãç¨ãã¦ãã°ã使ãããããå¿ è¦ãããã¾ã.
ã¢ããªã±ã¼ã·ã§ã³ã®ãã°
ä»åã®ã¢ããªã±ã¼ã·ã§ã³ã¯, åç¨ã®ã¢ããªã±ã¼ã·ã§ã³ã§ã.
ãããã£ã¦, ç¨æãããç£æ»ãã°, ã¢ã¯ã»ã¹ãã°ãä¿ç®¡ãã¾ã.
ãã°ã®ä¿ç®¡
ä¿ç®¡å ´æã«ã¤ãã¦
é·æéã®ãã°ãä¿ç®¡ããããããã®å ´æã, AWSã®SAããã«ç¸è«ãã¦æ±ºãã¾ãã.
SAããæ°ã, ããããã¯ä¸è¨ã®2ãµã¼ãã¹ã§ã.
ãµã¼ãã¹å | 説æ | Pros. | Cons. |
---|---|---|---|
S3 |
|
|
|
SIEM on Amazon OpenSearch Service |
|
|
|
ã¡ãªã¿ã«SIEM on Amazon OpenSearch Serviceã¯, æ¥æ¬äººãä½ã£ããµã¼ãã¹ãããã§ã. ä¸è¨ç»åã, SIEM on Amazon OpenSearch Serviceã使ã£ãCluoudTrailã®ãã°ã®å¯è¦åã®ä¾ã§ã¨ã¦ãã¿ãããã¦ããã§ãã.
ããããªãã, SIEMã® ãµã¼ãã¼è²»ç¨ããããã®ããã¾ã好ã¿ã§ã¯ãªãã£ããã, S3ãæ¡ç¨ãã¾ãã.
ä¿ç®¡æéã«ã¤ãã¦
å¼ç¤¾ã§ã¯, æ³ä»¤ã«åã, ç£æ»ãã°ã¯æä½5å¹´, ã¢ã¯ã»ã¹ãã°ã¯æä½3ã¶æã¯åå¾ãããã¨ãã«ã¼ã«ã¥ãã¦ãã¾ã.
ãã®ã«ã¼ã«ã«åºã¥ã, ä¿ç®¡æéãæ±ºããã®ãä¸è¨ã§ã.
ãã°å | ä¿ç®¡æé |
---|---|
AWS: CloudTrail (管çã¤ãã³ã) | 5å¹´ |
AWS: CloudTrail (ãã¼ã¿ã¤ãã³ã) | 5å¹´ |
AWS: VPCããã¼ãã° | 1ã¶æ |
AWS: ALBã®ã¢ã¯ã»ã¹ãã° | 1å¹´ |
AWS: NLBã®ã¢ã¯ã»ã¹ãã° | 1å¹´ |
OS: /var/log/messages | 5å¹´ |
OS: /var/log/secure | 5å¹´ |
APP: ç£æ»ãã° | 5å¹´ |
APP: ã¢ã¯ã»ã¹ãã° | 5å¹´ |
ALB, NLBã®ã¢ã¯ã»ã¹ãã°ã«é¢ãã¦ã¯, æä½3ã¶æããé·ã, 1å¹´åå¾ãããã¨ã«ãã¾ãã.
"APP: ã¢ã¯ã»ã¹ãã°"ã5å¹´ã®çç±ã¯, åç¨ã¢ããªã±ã¼ã·ã§ã³ã®ããä½ããããããããªããã5å¹´ã¨é·ãã«ãã¾ãã.
VPCããã¼ãã°ã¯, ã¢ã¯ã»ã¹ãã°ã§ã, ç£æ»ãã°ã§ããªãã®ã§1ã¶æåå¾ãããã¨ã«ãã¾ãã.
ãã±ããæ§é
S3ã«ãã¼ã¿ãä¿ç®¡ãããã¨ã«æ±ºå®ããã®ã§, ãã±ããã®æ§é ãã¿ã¼ã³ã«ã¤ãã¦, ã¾ãã¾ãSAããã«ç¸è«ãã¾ãã.
ããã, ãã¹ãã©çãªãã®ã¯ãªãã£ãã®ã§å©è¨ã ãããã ãã¾ãã.
- SAããã®å©è¨
- ãã°ã®ä¿ææéãã¨ã«ã¯, åããæ¹ãè¯ã (ãã±ããåä½ã§ã©ã¤ããµã¤ã¯ã«)
- ãã°ãã¨ã«ãã±ãããåããã¨ç®¡çãã¥ããã®ã§ããããããªã
ãã®ãããªå©è¨ãåã, ä¸è¨ã®ãããªãã±ããæ§é ã«ãããã¨ã«ãã¾ãã.
- server-log (ã©ã¤ããµã¤ã¯ã«5å¹´)
- application
- ç£æ»ãã°
- ã¢ã¯ã»ã¹ãã°
- os
- messages
- secure
- application
- cloudtrail-dataevent-log (5å¹´)
- CloudTrail (ãã¼ã¿ã¤ãã³ã)
- cloudtrail-kanri-event-log (5å¹´)
- CloudTrail (管çã¤ãã³ã)
- vpc-log (ã©ã¤ããµã¤ã¯ã«1ã¶æ)
- VPCããã¼ãã°
- elb-log (ã©ã¤ããµã¤ã¯ã«1å¹´)
- ALBã®ã¢ã¯ã»ã¹ãã°
- NLBã®ã¢ã¯ã»ã¹ãã°
ãã®ãããªæ§æã«ãã, æ·±ãçç±ã¯ãªãã§ã.
AWSã®SAããã®å©è¨ãæºããã¤ã¤, ãããªããããªã¼ãããã§æ±ºå®ãã¾ãã.
ã¢ããªã±ã¼ã·ã§ã³, OSã®ãã°ã®è»¢é
ãµã¼ãã¼ããS3ã«ãã°ãéãæ¹æ³ãããã¤ãããã¾ã.
ä¸è¨ã«ä»å転éããéã«åè£ã«ä¸ãã£ã4ãã¿ã¼ã³ã¨èå¯ãæ¸ãã¦ã¾ã.
è»¢éæ¹æ³ | Pros. | Cons. |
---|---|---|
CW agentãç¨ãã¦, CloudWatchã«è»¢éãã¦ããã®S3転é |
|
|
aws cliãç¨ãã¦ã®S3転é |
|
|
fluentdãç¨ãã¦ã®S3転é |
|
|
fluentbitãç¨ãã¦ã®S3転é |
|
|
ãã®çµæãã, fluentbitãç¨ãã¦è»¢éãããã¨ã«æ±ºãã¾ãã.
å®è£
ã¢ããªã±ã¼ã·ã§ã³, OSã®ãã°ãfluentbitãç¨ãã¦S3ã«ãã°è»¢é
fluentbitãç¨ãã¦S3ã«ãã°è»¢éãã¦ãããã¨æãã¾ã.
1. fluentbitã®ã¤ã³ã¹ãã¼ã«
Amazon Linuxã¸ã®ã¤ã³ã¹ãã¼ã«ããã¥ã¡ã³ãã¯ãã¡ãã§ã.
ä¸è¨ã®ããã«ããã±ã¼ã¸ã®è¿½å ãã¾ã.
- /etc/yum.repos.d/fluent-bit.repo
[fluent-bit] name = Fluent Bit baseurl = https://packages.fluentbit.io/amazonlinux/2/ gpgcheck=1 gpgkey=https://packages.fluentbit.io/fluentbit.key enabled=1
ä¸è¨ã®ã³ãã³ãã§fluentbitãã¤ã³ã¹ãã¼ã«ãã¾ã.
sudo yum install fluent-bit
2. fluentbitã®è¨å®
æ¸ãæ¹ã¯ä¸è¨ããã¥ã¡ã³ãã«è¨è¼ãããã¾ã.
ä¸è¨ã®ããã«fluentbitã®è¨å®ãã¡ã¤ã«ã«è¿½è¨ãã¾ã.
- /etc/fluent-bit/fluent-bit.conf
[INPUT] name tail tag os-messages path /var/log/messages [INPUT] name tail tag os-secure path /var/log/secure [INPUT] name tail tag application-{$ã¢ã¯ã»ã¹ãã°} path --------- [INPUT] name tail tag application-{ç£æ»ãã°} path --------- [OUTPUT] Name s3 Match * bucket server-log <- 夿´ãã¦ã region ap-northeast-1 total_file_size 1M compression gzip s3_key_format /$TAG[0]/$TAG[1]/%Y/%m/%d/$UUID.gz s3_key_format_tag_delimiters .- log_key log
"s3_key_format /$TAG[0]/$TAG[1]/%Y/%m/%d/$UUID.gz" AWSã®ä»ãµã¼ãã¹ã®ãã°ãã©ã¼ãããã¨, åãå½¢ã«ãªãããã«è¨å®ãã¦ã¾ã. ã¾ã, "log_key log" ããã¦çãã¼ã¿ãéã£ã¦ããçç±ã¯, ããè¨å®ããªãã¨Athenaã®Linuxã®grokãã¿ã¼ã³ã®ãµãã¼ãå¤ã«ãªãããã§ã. ãã , ãããè¡ãã¨fluentbitã®è»¢éããæå»ãã¨ããªããªãã¾ã. ãã, fluentbitã®è»¢éæå»ãå¿ è¦ãªå ´åãã®è¡ãåé¤ãã¦ã¿ã¦ãã ãã.
- fluentbitãèµ·åãã¦S3転é
ä¸è¨ã®ã³ãã³ãã§fluentbitãèµ·ååã³, ã¹ãã¼ã¿ã¹ç¢ºèªãã§ãã¾ã.
systemctl start fluent-bit.service systemctl status fluent-bit.service
æ°æéãããã°, ããããã®ãã°ãä¸è¨ã®ããã«S3ã«ä¿ç®¡ããã¦ããã¯ãã§ã.
- server-log/os/messages/2023/10/18/t1nwYVDR.gz
ããã§, ãµã¼ãã¼å ã®ãã°ã®è»¢éè¨å®ã¯å®äºã§ã!
ALBã®ã¢ã¯ã»ã¹ãã°ã®è¨å®
ALBã®ã¢ã¯ã»ã¹ãã°ã®è¨å®ããã¦ããã¾ã.
å ¬å¼ã®ããã¥ã¡ã³ãã¯ãã¡ãã§ã.
1. ãã±ããã«ããªã·ã¼è¿½å
ä¸è¨ã®ããã«å¯¾è±¡ãã±ããã«ããªã·ã¼ã追å ãã¾ã.
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::582318560864:root" }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::elb-log", <- ããã辺ããã¦ã "arn:aws:s3:::elb-log/*" ] }
582318560864 ã¯æ±äº¬ãªã¼ã¸ã§ã³ã§, ALBãç½®ããã¦ããã¢ã«ã¦ã³ãã§ã.
èªåã®ã¢ã«ã¦ã³ãã§ã¯ãªãã®ã§æ³¨æãã¦ãã ãã.
2. ã¢ã¯ã»ã¹ãã°ã®è¨å®
ALBã®ãã¼ããã©ã³ãµã¼ã®å±æ§ã®ç·¨éããã¦ãã ãã.
ä¸è¨ã®ããã«è¨å®ãããã¨ã§ãã°ãä¿ç®¡ã§ãã¾ã.
æ°æéãããã°, ããããã®ãã°ãä¸è¨ã®ããã«S3ã«ä¿ç®¡ããã¦ããã¯ãã§ã.
- elb-log/alb/AWSLogs/($ã¢ã«ã¦ã³ãID)/elasticloadbalancing/ap-northeast-1/2023/10/18/($ãã°å).log.gz
ããã§, ALBã®ãã°ã®è»¢éè¨å®ã¯å®äºã§ã!
NLBã®ã¢ã¯ã»ã¹ãã°ã®è¨å®
NLBã®ã¢ã¯ã»ã¹ãã°ã®è¨å®ããã¦ããã¾ã.
å ¬å¼ã®ããã¥ã¡ã³ãã¯ãã¡ãã§ã.
å ã«æ³¨æ!!!
ã¢ã¯ã»ã¹ãã°ã使ãããã®ã¯, ãã¼ããã©ã³ãµã¼ã« TLS ãªã¹ãã¼ããã, TLS ãªã¯ã¨ã¹ãã«é¢ããæ å ±ã®ã¿ãå«ãå ´åã®ã¿ã§ã.
ãããã£ã¦, TCPãªã¹ãã¼ã®å ´åãã°ã¯åºåãããªãã®ã§æ³¨æãã¦ãã ãã.
ããã§ã¯å®è£ ã«æ»ãã¾ã.
1. ãã±ããã«ããªã·ã¼è¿½å
ä¸è¨ã®ããã«å¯¾è±¡ãã±ããã«ããªã·ã¼ã追å ãã¾ã.
{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::elb-log", <- ããã辺ããã¦ã "Condition": { "StringEquals": { "aws:SourceAccount": "--------" <- ããã辺ããã¦ã }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:ap-northeast-1:-----:*" <- ããã辺ããã¦ã } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::elb-log/*", <- ããã辺ããã¦ã "Condition": { "StringEquals": { "aws:SourceAccount": "---------", <- ããã辺ããã¦ã "s3:x-amz-acl": "bucket-owner-full-control" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:ap-northeast-1:-------:*" <- ããã辺ããã¦ã } } } ] }
delivery.logs.amazonaws.comã¯AWSã®ãã°ãµã¼ãã¹ã§ã.
NLBå«ãããã¤ãã®ãµã¼ãã¹ã®ãã°ãåãæ±ã£ã¦ãã¾ã.
2. ã¢ã¯ã»ã¹ãã°ã®è¨å®
NLBã®ãã¼ããã©ã³ãµã¼ã®å±æ§ã®ç·¨éããã¦ãã ãã.
ä¸è¨ã®ããã«è¨å®ãããã¨ã§ãã°ãä¿ç®¡ã§ãã¾ã.
æ°æéãããã°, ããããã®ãã°ãä¸è¨ã®ããã«S3ã«ä¿ç®¡ããã¦ããã¯ãã§ã.
- elb-log/nlb/AWSLogs/($ã¢ã«ã¦ã³ãID)/elasticloadbalancing/ap-northeast-1/2023/10/18/($ãã°å).log.gz
ããã§, NLBã®ãã°ã®è»¢éè¨å®ã¯å®äºã§ã!
VPCã®ã¢ã¯ã»ã¹ãã°ã®è¨å®
VPCã®ã¢ã¯ã»ã¹ãã°ã®è¨å®ããã¦ããã¾ã.
å ¬å¼ã®ããã¥ã¡ã³ãã¯ãã¡ãã§ã.
1. ãã±ããã«ããªã·ã¼è¿½å
VPCããã¼ãã°ã¯èªåã§ãã±ããã«ããªã·ã¼ã追å ãã¦ããã¾ã.
ãã®ãã, æåã§ã®è¿½å ã¯å¿ è¦ãªãã§ã.
VPCããã¼ãã°ãã¾ã, delivery.logs.amazonaws.com ãç¨ãã¦ãããµã¼ãã¹ãªã®ã§NLBæåæ§ã®ããªã·ã¼ã追å ããã¦ããã¯ãã§ã.
2. ããã¼ãã°ã®è¨å®
VPCã®ããã¼ãã°ä½æã使ãã¾ã.
ä¾ã¨ãã¦, ä¸è¨ã®ããã«è¨å®ãããã¨ã§ãã°ãä¿ç®¡ã§ãã¾ã.
VPCããã¼ãã°ã®è¨å®ã¯, 好ã¿ãåãããè¨å®é ç®ãå¤ãã®ã§ããã¾ã§åèã§ãé¡ããã¾ã.
æ°æéãããã°, ããããã®ãã°ãä¸è¨ã®ããã«S3ã«ä¿ç®¡ããã¦ããã¯ãã§ã.
- vpc-log/AWSLogs/($ã¢ã«ã¦ã³ãID)/vpcflowlogs/ap-northeast-1/2023/10/18/($ãã°å).log.parquet
ããã§, VPCããã¼ãã°ã®è»¢éè¨å®ã¯å®äºã§ã!
CloudTrailã®è¨å®
VPCã®ã¢ã¯ã»ã¹ãã°ã®è¨å®ããã¦ããã¾ã.
å ¬å¼ã®ããã¥ã¡ã³ãã¯ãã¡ãã§ã.
å度注æ, CloudTrailã®ãã¼ã¿ã¤ãã³ãã¯ã³ã¹ããé«ããªããã¡ã§ã.
S3ã¸ã®ã¢ã¯ã»ã¹ãé »ç¹ãªå ´åã¯ç®¡çã¤ãã³ãã ãã«ãã¾ããã.
S3ã¸ã®ã¢ã¯ã»ã¹ãã°ãè¦ãããªã, S3ã®ãµã¼ãã¼ã¢ã¯ã»ã¹ãã°ãããããã§ã.
CloudTrailã®è¨¼è·¡ã®ä½æãã¯ãªãã¯ãã¦, ä¸è¨å³ã®ããã«è¨å®ãã¾ã.
ãã°ãã¡ã¤ã«ã®æ¤è¨¼ã¯è¯ãæ©è½ãªã®ã§æå¹ã«ããã®ããå§ããã¾ã.
ãæ¬¡ã«ããã¿ã³ãæ¼ãä¸è¨å³ã®ããã«è¨å®ãã¾ã.
ããã§è¨å®å®äºã§ã.
åæ
ãã®ç« ã§ã¯, GuardDutyãç¨ãã¦ã®ãã°åæã¨, Athenaãç¨ãã¦ãã°ãåæã§ããç¶æ ã«ãããã¨ã試ã¿ã¾ã.
GuardDutyãç¨ãã¦ã®ãã°åæ
GuardDutyã®å ¬å¼ããã¥ã¡ã³ãã¯ã³ãã©ã§ã.
GuardDutyã¨ã¯ãã«ããã¼ã¸ããªè 卿¤åºãµã¼ãã¹ã§, AWSã®ãã°ãç£è¦ã,æ©æ¢°å¦ç¿ã«ããæ¤åºãã¾ã.
è²»ç¨ãå®ã, AWSã使ããªã絶対ã«ç¥ã£ã¦ããã¹ããµã¼ãã¹ã§ã.
ä»åæ°ãã«åå¾ãããã°ã®ä¸ã§ã¯, ä¸è¨ããµãã¼ã対象ã®ãã°ã§ã.
- CloudTrail (管çã¤ãã³ã)
- CloudTrail (ãã¼ã¿ã¤ãã³ã)
- VPCããã¼ãã°
ã¾ã, ä¸è¨ã®ãã°ã«ã¤ãã¦ã¯, æå³çã«åå¾ãã¦ããªãã¦ãç£è¦åã³, è 卿¤åºãè¡ã£ã¦ããã¾ã.
- DNSãã°
- S3ãã¼ã¿ã¤ãã³ã
ä½¿ãæ¹ã¯ã¨ã¦ãç°¡åã§, GuardDutyã«ã¢ã¯ã»ã¹ãã¦æå¹åãã¿ã³ãæ¼ãã ãã§ã.
æ¼ãã¨èªåã§åå¾ãã¦ãããã°ãèªã¿ã¨ã£ã¦ããã¦, è 卿¤åºãè¡ã£ã¦ããã¾ã.
æ¥ã èªåã§GuardDutyã¯è 卿¤åºãè¡ã£ã¦ããã¾ãã, æ°ä»ããªãã¨æå³ããªãã®ã§ä½ãããã®éç¥ããè¨å®ãããã®ããããããã¾ã. (æ¯æ¥GuardDutyã«ã¢ã¯ã»ã¹ããã®ã¯ç¾å®çã§ã¯ãªãã®ã§)
Athenaãç¨ãã¦ãã°åæã§ããç¶æ ã«
Athenaã®å ¬å¼ããã¥ã¡ã³ãã¯ã³ãã©ã§ã.
Athenaã¯, S3ã®ãã¼ã¿ãåç §ãã¦SQLãå®è¡ã§ãããµã¼ãã¹ã§ã.
ä»åã®Athenaã®å©ç¨ç¨éã¯, ãã°åæã§ããç¶æ ã«ãããã¨ãç®çã®ãã
ãã¼ãã£ã·ã§ã³å°å½±ã使ç¨ãããã¼ãã«ã使ãããã¨æãã¾ã.
é常Athenaã¯, æ°ãããã¼ã¿ã«å¯¾ãã¦SELECTæãå®è¡ããã¨ã
ãã¼ãã£ã·ã§ã³ã®è¿½å , æ´æ°ãããªãã¨æ°è¦ãã¼ã¿ãèªã¿è¾¼ã¾ãã.
ãã®é¢åãªä½æ¥ã, ãã¼ãã£ã·ã§ã³å°å½±ãè¡ãã¨ä½ãããã«æ°è¦ãã¼ã¿ãèªã¿è¾¼ããã¨ãã§ãã¾ã.
(ãã¡ãªããã¨ãã¦, ä»ã®ãµã¼ãã¹ã¨Athenaã飿ºã§ããªããªãã¾ãã)
ã¢ããªã±ã¼ã·ã§ã³ã®ãã°ã®Athenaã§ã®èªã¿åãã«ã¤ãã¦ã¯, æ±ç¨çãªãã¨ã§ã¯ãªãããããã§ã¯å²æããã¦ããã ãã¾ã.
AWSã®ãã°ã®Athenaã¸ã®åãè¾¼ã¿
AWSã®ãã°ã¯Athenaã§æ¯è¼çåæããããããããã«, AWSãDDLåã³, åææ¹æ³ãæç¤ºãã¦ããã¦ãã¾ã.
AWSãç¨æãã¦ããã¦ãããµã¼ãã¹ä¸è¦§ã¯ã³ãã©ã§ã.
ãã®ä¸ã® "Application Load Balancer" ãããã¯ã«æ¸ããã¦ãã "ãã¼ãã£ã·ã§ã³å°å½±ã使ç¨ãã Athena ã§ã® ALB ãã°ç¨ã®ãã¼ãã«ã®ä½æ" ã®ã»ã¯ã·ã§ã³ãä»åè¡ããã¨ã§ã.
ä»ã®AWSãµã¼ãã¹ã«ã¤ãã¦ãåæ§ã®æé ã§ã§ãããã岿ãã¾ã.
1. ãã¼ã¿ãã¼ã¹ã®ä½æ
ä¸è¨ã¯ã¨ãªã§ãã¼ã¿ãã¼ã¹ã使ã§ãã¾ã.
CREATE DATABASE Logs;
2. ãã¼ãã«ã®ä½æ
ä¸è¨ã¯ã¨ãªã§ãã¼ãã«ã使ã§ãã¾ã.
CREATE EXTERNAL TABLE `alb_logs`( `type` string COMMENT '', `time` string COMMENT '', `elb` string COMMENT '', `client_ip` string COMMENT '', `client_port` int COMMENT '', `target_ip` string COMMENT '', `target_port` int COMMENT '', `request_processing_time` double COMMENT '', `target_processing_time` double COMMENT '', `response_processing_time` double COMMENT '', `elb_status_code` int COMMENT '', `target_status_code` string COMMENT '', `received_bytes` bigint COMMENT '', `sent_bytes` bigint COMMENT '', `request_verb` string COMMENT '', `request_url` string COMMENT '', `request_proto` string COMMENT '', `user_agent` string COMMENT '', `ssl_cipher` string COMMENT '', `ssl_protocol` string COMMENT '', `target_group_arn` string COMMENT '', `trace_id` string COMMENT '', `domain_name` string COMMENT '', `chosen_cert_arn` string COMMENT '', `matched_rule_priority` string COMMENT '', `request_creation_time` string COMMENT '', `actions_executed` string COMMENT '', `redirect_url` string COMMENT '', `lambda_error_reason` string COMMENT '', `target_port_list` string COMMENT '', `target_status_code_list` string COMMENT '', `classification` string COMMENT '', `classification_reason` string COMMENT '') PARTITIONED BY ( `date` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( 'input.regex'='([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*)[:-]([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-.0-9]*) (|[-0-9]*) (-|[-0-9]*) ([-0-9]*) ([-0-9]*) \"([^ ]*) (.*) (- |[^ ]*)\" \"([^\"]*)\" ([A-Z0-9-_]+) ([A-Za-z0-9.-]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^\"]*)\" ([-.0-9]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^ ]*)\" \"([^s]+?)\" \"([^s]+)\" \"([^ ]*)\" \"([^ ]*)\"') STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://elb-log/alb/AWSLogs/---------/elasticloadbalancing/ap-northeast-1' <----ãã夿´ãã¦ã TBLPROPERTIES ( 'projection.date.format'='yyyy/MM/dd', 'projection.date.interval'='1', 'projection.date.interval.unit'='DAYS', 'projection.date.range'='NOW-1MONTHS,NOW', <----ããã§æéæå®ã§ããã 'projection.date.type'='date', 'projection.enabled'='true', 'storage.location.template'='s3://elb-log/alb/AWSLogs/---------/elasticloadbalancing/ap-northeast-1/${date}', <----ãã夿´ãã¦ã )
OSã®ãã°ã®Athenaã¸ã®åãè¾¼ã¿
OSã®ãã°ã¯, AWSã®ãã°ã®ããã«ãããããæºåã¯ããã¦ããªãã§ã.
ãã®ããéãæ¹æ³ãæ¤è¨ããå¿ è¦ãããã¾ã.
ä»åã¯Glueã¯ãã¼ã©ã®çµã¿è¾¼ã¿åé¡åã«Linux ã«ã¼ãã«ãã°ããã£ãã®ã§
ãããå©ç¨ãã¦Athenaã«ãã¼ãã«ã使ãããã¨æãã¾ã.
Glueã¯ãã¼ã©ã«ã¢ã¯ã»ã¹ãã¦create crawlerãã¯ãªãã¯ãã¾ã.
S3ã®è¨å®ã¯, ä¸è¨ã®ããã«secureãã°ãè¨å®ãã¦ã¾ã.
Add a datasourceãã¯ãªãã¯ãã¦ä¸è¨å³ã®ããã«è¨å®ãã¦é²ãã§ãã£ã¦ãã ãã.
ãã®å¾, IAMãè¨å®ãã¦, Target databaseãlogsã«å¤æ´ããã¨Glueã¯ãã¼ã©ã®ä½æãå®äºã§ã.
å®è¡ãã¦ã¿ã¾ããã.
ããã¨,ä¸è¨ã®ããã«Athenaã«ãã¼ãã«ãã§ãã¦ããã¯ãã§ã.
ãããç¾å¨ã®ã¾ã¾ã§ã¯, ãã¼ãã£ã·ã§ã³ãpartition0, 1, 2ã§ãã£ãã, æ°è¦ãã¼ã¿ã®åãè¾¼ã¿ã«ã¯glueã¯ãã¼ã©ãå®è¡ããå¿ è¦ããã£ãããã¾ã.
ã«ã©ã åãæ±ãããã夿´ãã¤ã¤, ãã¼ãã£ã·ã§ã³å°å½±ãå©ç¨ãã¾ããã.
Data Catalog tablesã«è¡ãã¨å ã»ã©ä½æããããã¼ãã«ãããã¾ã.
ãããç·¨éãã¦ããã¾ã.
partition_0, partition_1, partition_2ã®ãã¼ãã£ã·ã§ã³ã®åé¤ããã¾ã.
partition_0, partition_1, partition_2ã®ã«ã©ã ãåé¤ãã¦, æ°ãããã¼ãã£ã·ã§ã³ã«ã©ã date 使ãã¾ã.
次ã«ä¸è¨ãã¼ãã«ãªãã·ã§ã³ã®è¿½è¨ãè¡ãã¾ã.
- projection.enabled: true
- projection.date.type: date
- projection.date.range: NOW-1MONTHS,NOW
- projection.date.format: yyyy/MM/dd
- projection.date.interval: 1
- projection.date.interval.unit: DAY
- storage.location.template: s3://<S3-path>/${date}
ããã§è¨å®å®äºã§ã!!
ããã§, dateã§ãã¼ãã£ã·ã§ã³ããã¦ãããã¤, å°å½±ãã¼ãã£ã·ã§ã³ãå©ç¨ãããã¼ãã«ã«ãªãã¾ãã.
å®éã«è¦ã¦ã¿ã¾ããã.
æ£ããèªã¿åãã¦ã¾ãã.
以ä¸ã§å®äºã§ã!!!
ã¾ã¨ã
ä»åã¯AWSã«æ§ç¯ããã¢ããªã±ã¼ã·ã§ã³ã®ãã°ã®è¨è¨ãã, åæã§ããç¶æ ã«ãããã¨ã¾ã§ã®ããã°ãæ¸ããã¦ããã ãã¾ãã.
å å®¹ãæ¯ãè¿ãã¨ä¸è¨ã§ã.
- ãã°ã®ä¿ç®¡å ´æã¯S3
- ãµã¼ãã¼å ã®ãã°ã®S3転éã«ã¯, fluentbitãæ¡ç¨
- ãã°ã®åæã«ã¯, GuardDuty, Glue, Athenaã使ç¨
- ä¿ç®¡ãããã°åã³ä¿ææéã¯ä¸è¨
- CloudTrail (ãã¼ã¿ã¤ãã³ã)ã¯, S3ã®ãµã¼ãã¼ã¢ã¯ã»ã¹ãã°ã§ä»£æ¿å¯è½
ãã°å | ä¿ç®¡æé |
---|---|
AWS: CloudTrail (管çã¤ãã³ã) | 5å¹´ |
AWS: CloudTrail (ãã¼ã¿ã¤ãã³ã) | 5å¹´ |
AWS: VPCããã¼ãã° | 1ã¶æ |
AWS: ALBã®ã¢ã¯ã»ã¹ãã° | 1å¹´ |
AWS: NLBã®ã¢ã¯ã»ã¹ãã° | 1å¹´ |
OS: /var/log/messages | 5å¹´ |
OS: /var/log/secure | 5å¹´ |
APP: ç£æ»ãã° | 5å¹´ |
APP: ã¢ã¯ã»ã¹ãã° | 5å¹´ |
GuradDuty, Athena, Glue, S3ã¨AWSã¯ä¾¿å©ãªãµã¼ãã¹ãå¤ãã§ãã!!