GuardDuty 자동 보안 에이전트와 함께 코드로 인프라 사용(IaC)
다음 목록이 사용 사례에 적용되는 경우에만 이 섹션을 사용합니다.
-
AWS Cloud Development Kit (AWS CDK) 및 Terraform과 같은 IaC(Infrastructure as Code) 도구를 사용하여 AWS 리소스를 관리합니다.
-
하나 이상의 리소스 유형(Amazon EKS, Amazon EC2 또는 Amazon ECS-Fargate)에 대해 GuardDuty 자동화된 에이전트 구성을 사용 설정해야 합니다.
IaC 리소스 종속성 그래프 개요
리소스 유형에 대해 GuardDuty 자동 에이전트 구성을 사용하도록 설정하면 GuardDuty는 자동으로 이 VPC 엔드포인트와 연결된 보안 그룹을 생성하고 이 리소스 유형에 대한 보안 에이전트를 설치합니다. 기본적으로 GuardDuty는 런타임 모니터링을 비활성화한 후에만 VPC 엔드포인트 및 연결된 보안 그룹을 삭제합니다. 자세한 내용은 런타임 모니터링에서 리소스 비활성화, 제거 및 정리하기 단원을 참조하십시오.
IaC 도구를 사용하면 리소스의 종속성 그래프가 유지됩니다. IaC 도구를 사용하여 리소스를 삭제할 때는 리소스의 종속성 그래프의 일부로 추적할 수 있는 리소스만 삭제합니다. IaC 도구는 지정된 구성 외부에서 생성된 리소스에 대해 알지 못할 수 있습니다. 예를 들어 IaC 도구를 사용하여 VPC를 생성한 다음 AWS 콘솔 또는 API 작업을 사용하여 이 VPC에 보안 그룹을 추가합니다. 리소스 종속성 그래프에서 생성하는 VPC 리소스는 연결된 보안 그룹에 따라 달라집니다. IaC 도구를 사용하여 이 VPC 리소스를 삭제하면 오류가 발생합니다. 이 오류를 해결하는 방법은 연결된 보안 그룹을 수동으로 삭제하거나 이 추가된 리소스를 포함하도록 IaC 구성을 업데이트하는 것입니다.
일반적인 문제 - IaC에서 리소스 삭제
GuardDuty 자동화된 에이전트 구성을 사용할 때 IaC 도구를 사용하여 만든 리소스(Amazon EKS, Amazon EC2 또는 Amazon ECS-Fargate)를 삭제하고 싶을 수 있습니다. 그러나 이 리소스는 GuardDuty가 생성한 VPC 엔드포인트에 따라 달라집니다. 이렇게 하면 IaC 도구가 자체적으로 리소스를 삭제할 수 없으며 런타임 모니터링을 비활성화해야 VPC 엔드포인트가 자동으로 삭제됩니다.
예를 들어 GuardDuty가 사용자를 대신하여 만든 VPC 엔드포인트를 삭제하려고 하면 다음 예와 유사한 오류가 발생합니다.
CDK 사용 시 오류 예제
The following resource(s) failed to delete: [
mycdkvpcapplicationpublicsubnet1Subnet1SubnetEXAMPLE1
,mycdkvpcapplicationprivatesubnet1Subnet2SubnetEXAMPLE2
]. Resource handler returned message: "The subnet 'subnet-APKAEIVFHP46CEXAMPLE
' has dependencies and cannot be deleted. (Service: Ec2, Status Code: 400, Request ID:e071c3c5-7442-4489-838c-0dfc6EXAMPLE
)" (RequestToken:4381cff8-6240-208a-8357-5557b7EXAMPLE
, HandlerErrorCode: InvalidRequest)
Terraform 사용 시 오류 예제
module.vpc.aws_subnet.private[1]: Still destroying... [id=subnet-
APKAEIVFHP46CEXAMPLE
, 19m50s elapsed] module.vpc.aws_subnet.private[1]: Still destroying... [id=subnet-APKAEIVFHP46CEXAMPLE
, 20m0s elapsed] Error: deleting EC2 Subnet (subnet-APKAEIBAERJR2EXAMPLE
): DependencyViolation: The subnet 'subnet-APKAEIBAERJR2EXAMPLE
' has dependencies and cannot be deleted. status code: 400, request id:e071c3c5-7442-4489-838c-0dfc6EXAMPLE
솔루션 - 리소스 삭제 문제 방지
이 섹션에서는 GuardDuty와 독립적으로 VPC 엔드포인트 및 보안 그룹을 관리하는 데 도움이 됩니다.
IaC 도구를 사용하여 구성된 리소스에 대한 완전한 소유권을 얻으려면 다음 단계를 나열된 순서대로 수행하세요:
-
VPC를 생성합니다. 진입 권한을 허용하려면 GuardDuty VPC 엔드포인트를 보안 그룹과 이 VPC에 연결하세요.
-
리소스 유형에 대한 GuardDuty 자동 에이전트 구성 활성화
앞의 단계를 완료하면 GuardDuty는 자체 VPC 엔드포인트를 만들지 않고 사용자가 IaC 도구를 사용하여 만든 엔드포인트를 재사용합니다.
자체 VPC 생성에 대한 자세한 내용은 Amazon VPC Transit Gateways에서 VPC만 생성을 참조하세요. VPC 엔드포인트 만들기에 대한 자세한 내용은 리소스 유형에 대한 다음 섹션을 참조하세요:
-
Amazon EC2는 사전 조건 - Amazon VPC 엔드포인트 수동 생성을 참조하세요.
-
Amazon EKS는 사전 조건 - Amazon VPC 엔드포인트 생성을 참조하세요.