AWS 리소스에 대한 모니터링 시행

AWS 리소스에 대한 모니터링 시행

우리는 두 개의 거대한 AWS 계정을 가지고 있으며 리소스 모니터링을 위한 지침을 구현하고 모든 기존 및 향후 리소스에 대해 모니터링이 설정되었는지 확인하는 임무를 맡았습니다.

리소스 옵션 및/또는 사용자 지정 조건을 기반으로 규칙을 호출하여 리소스 생성/수정을 방지할 수 있는 방법이 있습니까? 예를 들어, 향상된 모니터링이 활성화되지 않은 경우 RDS 인스턴스 생성을 허용하지 않거나 특정 CloudWatch 경보 없이 EC2 인스턴스 생성을 허용하지 마십시오.

정책/가드레일을 살펴봤지만 충분히 강력하지 않은 것 같습니다. 이 시나리오에서 다른 사람들은 무엇을 사용하고 있나요?

편집하다AWS Config를 잠재적인 솔루션으로 살펴봤지만 거기에는 많은 한계가 있는 것 같습니다. 예를 들어 RDS 클러스터를 감사하여 특정 지표에 대해 생성된 경보가 있는지 확인할 수 있지만 RDS 인스턴스에 대해서는 동일한 작업을 수행할 수 없습니다.

답변1

SCP로 리소스 생성 방지

경우에 따라 이러한 유형의 요구 사항에 대해 서비스 제어 정책을 사용할 수 있지만 생성되는 리소스의 속성과 관련된 경우에만 - AFAIK는 "CloudWatch 경보가 발생하지 않으면 EC2 인스턴스를 생성할 수 없습니다"라고 말하는 것은 작동하지 않습니다. 생성되었습니다."

AWS에는 몇 가지 서비스 제어 정책 예시가 있습니다.이 페이지, 아래에 하나 복사하겠습니다. 저는 이 기술을 사용하여 암호화되지 않은 경우 EC2 인스턴스 생성을 방지하고, EBS 볼륨이 암호화되지 않은 경우, 스토리지가 암호화되지 않은 경우 RDS 생성을 방지하는 등의 작업을 수행했습니다.

Amazon의 SCP 예: 이 SCP를 사용하면 t2.micro 인스턴스 유형을 사용하지 않는 모든 인스턴스 시작이 거부됩니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "RequireMicroInstanceType",
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": "arn:aws:ec2:*:*:instance/*",
      "Condition": {
        "StringNotEquals":{                 
          "ec2:InstanceType":"t2.micro"
        }
      }
    }
  ]
}

자동 교정

리소스가 생성된 후 자동 수정을 고려할 수 있습니다. AWS Config와 같은 기능은 리소스가 생성될 때마다 알림을 받고 Lambda 스크립트를 실행한 다음 사용자 지정 코드를 실행하여 상태를 감지하고 관련 리소스를 설정할 수 있습니다. 다시 말하지만 이는 관습이지만 과거에는 이 작업을 수행한 적이 있습니다. 예를 들어, S3 버킷이 생성될 때 특정 태그가 없으면 로깅 및 버전 관리가 활성화됩니다.

같은 방식으로 자동으로 수정하는 대신 비준수 리소스를 삭제할 수 있습니다.

IAM 권한으로 리소스 생성 방지

규정을 준수하지 않는 리소스를 제거하는 대신 사용자가 리소스를 직접 생성할 수 없도록 사용자의 권한을 줄이고 필요한 모든 관련 리소스가 설정된 상태에서 리소스를 설정하는 일종의 셀프 서비스 시스템을 마련하는 방법을 살펴볼 수 있습니다. 위로. 제가 직접 해본 적이 없어서 정확히 어떻게 해야 할지 말씀드릴 수 없습니다.

이는 제공한 CloudFormation 템플릿이 서비스 역할로 실행되도록 허용하지만 사용자에게 리소스를 직접 생성할 수 있는 권한은 허용하지 않는 것처럼 간단할 수 있습니다.

관련 정보