CloudWatch에서 메트릭 필터와 그에 기반한 알람을 생성하여 S3 이벤트에 대해 알리려고합니다. 특히 파일 또는 버킷이 공개로 설정된 경우 특히 그렇습니다. 이것은 내가 메트릭을 만드는 데 사용되는 메트릭 필터입니다 :S3 객체를 공개로 설정하는 것에 대해 알리는 CloudWatch 알람을 생성합니다.
{($ .eventSource = s3.amazonaws.com) & & (($ .eventName = PutBucketAcl) || ($ .eventName = PutObjectAcl)) & & (($ .requestParameters.AccessControlPolicy.AccessControlList.Grant.Grantee.type = 그룹))}
나는 다음과 같은 Custom log data
를 넣어이 pattern
테스트 :
{
"Records": [
{
"eventVersion": "1.03",
"userIdentity": {
"type": "IAMUser",
"principalId": "111122223333",
"arn": "arn:aws:iam::111122223333:user/myUserName",
"accountId": "111122223333",
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"userName": "myUserName"
},
"eventTime": "2015-08-26T20:46:31Z",
"eventSource": "s3.amazonaws.com",
"eventName": "DeleteBucketPolicy",
"awsRegion": "us-west-2",
"sourceIPAddress": "127.0.0.1",
"userAgent": "[]",
"requestParameters": {
"bucketName": "myawsbucket"
},
"responseElements": null,
"requestID": "47B8E8D397DCE7A6",
"eventID": "cdc4b7ed-e171-4cef-975a-ad829d4123e8",
"eventType": "AwsApiCall",
"recipientAccountId": "111122223333"
},
{
"eventVersion": "1.03",
"userIdentity": {
"type": "IAMUser",
"principalId": "111122223333",
"arn": "arn:aws:iam::111122223333:user/myUserName",
"accountId": "111122223333",
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"userName": "myUserName"
},
"eventTime": "2015-08-26T20:46:31Z",
"eventSource": "s3.amazonaws.com",
"eventName": "PutBucketAcl",
"awsRegion": "us-west-2",
"sourceIPAddress": "",
"userAgent": "[]",
"requestParameters": {
"bucketName": "",
"AccessControlPolicy": {
"AccessControlList": {
"Grant": {
"Grantee": {
"xsi:type": "Group",
"xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
"ID": "d25639fbe9c19cd30a4c0f43fbf00e2d3f96400a9aa8dabfbbebe1906Example"
},
"Permission": "FULL_CONTROL"
}
},
"xmlns": "http://s3.amazonaws.com/doc/2006-03-01/",
"Owner": {
"ID": "d25639fbe9c19cd30a4c0f43fbf00e2d3f96400a9aa8dabfbbebe1906Example"
}
}
},
"responseElements": null,
"requestID": "BD8798EACDD16751",
"eventID": "607b9532-1423-41c7-b048-ec2641693c47",
"eventType": "AwsApiCall",
"recipientAccountId": "111122223333"
},
{
"eventVersion": "1.03",
"userIdentity": {
"type": "IAMUser",
"principalId": "111122223333",
"arn": "arn:aws:iam::111122223333:user/myUserName",
"accountId": "111122223333",
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"userName": "myUserName"
},
"eventTime": "2015-08-26T20:46:31Z",
"eventSource": "s3.amazonaws.com",
"eventName": "GetBucketVersioning",
"awsRegion": "us-west-2",
"sourceIPAddress": "",
"userAgent": "[]",
"requestParameters": {
"bucketName": "myawsbucket"
},
"responseElements": null,
"requestID": "07D681279BD94AED",
"eventID": "f2b287f3-0df1-4961-a2f4-c4bdfed47657",
"eventType": "AwsApiCall",
"recipientAccountId": "111122223333"
}
]
}
나는 테스트 패턴을 클릭하고 나는이 메시지를 얻을 : 샘플 로그 (50) 이벤트 (들)에서 0 일치를 찾을 수
결과.
metric filter
이 올 바르고 정확합니까? 나는 하나의 결과를 가져야하지만 그것은 오지 않을 것입니다.
예 Trust Advisor에서 제공하는 것을 알고 있지만 많은 AWS 계정을 관리 할 때 SNS에서 내 mailBox로 알림이 필요하며 계정별로 신탁 관리자 계정을 확인하기가 어렵습니다. 모든 계정의 CloudTrail 이벤트는 하나의 버킷에 집중되어 있으므로 메트릭 필터를 배치해야합니다. – Somar
비록 그것이 복잡하다해도 그 경고가 필요합니다. – Somar
위 링크에서 Trusted Advisor는 SNS 알림 메시지를 보낼 수있는 CloudWatch 이벤트를 트리거 할 수 있습니다. –