1

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이 올 바르고 정확합니까? 나는 하나의 결과를 가져야하지만 그것은 오지 않을 것입니다.

답변

0

정책이 공개 액세스를 제공하는지 여부를 계산하는 것은 버킷 정책에 규칙을 지정할 수있는 여러 가지 방법으로 인해 매우 복잡합니다 (예 : 와일드 카드가 액세스를 제공 할 수 있음).

더 쉬운 방법은 신뢰할 수있는 조언자의 아마존 S3 버킷 권한 수표를 사용하는 것입니다 :

오픈 액세스 권한이 나에 대한 액세스를 허용 아마존 심플 스토리지 서비스 (아마존 S3)에서

확인 버킷 인증 된 AWS 사용자.

다음은 Monitor Trusted Advisor Check Results with Amazon CloudWatch Events입니다.

그러나이 특별한 검사는 무료 평가판을위한 무료 등급에 포함되어 있지 않습니다. 검사가 작동하려면 지원 계획에 이어야합니다.

Amazon S3 콘솔도 최근에 업데이트되었으므로 공개 권한이있는 버킷을 명확하게 보여줍니다.

+0

예 Trust Advisor에서 제공하는 것을 알고 있지만 많은 AWS 계정을 관리 할 때 SNS에서 내 mailBox로 알림이 필요하며 계정별로 신탁 관리자 계정을 확인하기가 어렵습니다. 모든 계정의 CloudTrail 이벤트는 하나의 버킷에 집중되어 있으므로 메트릭 필터를 배치해야합니다. – Somar

+0

비록 그것이 복잡하다해도 그 경고가 필요합니다. – Somar

+0

위 링크에서 Trusted Advisor는 SNS 알림 메시지를 보낼 수있는 CloudWatch 이벤트를 트리거 할 수 있습니다. –