Runtime Monitoring 문제 해결
Runtime Monitoring이 활성화되어 작업 및 컨테이너에서 실행 중인지 확인하거나 문제를 해결해야 할 수 있습니다.
주제
내 계정에서 Runtime Monitoring이 활성화되어 있는지 어떻게 알 수 있나요?
Amazon ECS 콘솔에서 정보는 계정 설정 페이지에 있습니다.
list-account-settings
를 effective-settings
옵션과 함께 실행할 수도 있습니다.
aws ecs list-account-settings --effective-settings
출력
이름이 guardDutyActivate
로 설정되고 값이 on
으로 설정된 설정은 계정이 구성되었음을 나타냅니다. GuardDuty 관리자에게 문의하여 관리가 자동인지, 수동인지 확인해야 합니다.
{
"setting": {
"name": "guardDutyActivate",
"value": "enabled",
"principalArn": "arn:aws:iam::123456789012:root",
"type": "aws-managed"
}
}
클러스터에서 Runtime Monitoring이 활성 상태인지 어떻게 알 수 있나요?
GuardDuty 콘솔에서 적용 범위 통계를 검토할 수 있습니다. 본인 계정 또는 멤버 계정과 연결된 Amazon ECS 리소스에 대한 정보는 선택한 AWS 리전의 모든 클러스터에 대한 정상적인 클러스터의 비율입니다. 여기에는 Fargate 및 EC2 시작 유형을 사용하는 클러스터에 대한 적용 범위가 포함됩니다. 자세한 내용은 Amazon GuardDuty 사용 설명서의 적용 범위 통계 검토를 참조하세요.
GuardDuty 보안 에이전트가 Fargate 작업에서 실행 중인지 어떻게 알 수 있나요?
GuardDuty 보안 에이전트는 Fargate 작업의 사이드카 컨테이너로 실행됩니다.
Amazon ECS 콘솔에서 사이드카는 작업 세부 정보 페이지의 컨테이너 아래에 표시됩니다.
describe-tasks
를 실행하고 이름이 aws-gd-agent
로 설정되고 LastStatus가 RUNNING
으로 설정된 컨테이너를 찾을 수 있습니다.
다음 예제에서는 작업 aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE
에 대한 기본 클러스터의 출력을 보여줍니다.
aws ecs describe-tasks --cluster default --tasks aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE
출력
이름이 gd-agent
인 컨테이너가 RUNNING
상태입니다.
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/4df26bb4-f057-467b-a079-96167EXAMPLE",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE",
"lastStatus": "RUNNING",
"healthStatus": "UNKNOWN",
"memory": "string",
"name": "aws-gd-agent"
}
]
GuardDuty 보안 에이전트가 EC2 컨테이너 인스턴스에서 실행 중인지 어떻게 알 수 있나요?
다음 명령을 실행하여 상태를 봅니다.
sudo systemctl status amazon-guardduty-agent
로그 파일은 다음 위치에 있습니다.
/var/log/amzn-guardduty-agent
클러스터에서 실행 중인 작업에 대한 작업 실행 역할이 없으면 어떻게 되나요?
Fargate 작업의 경우 GuardDuty 보안 에이전트 사이드카 컨테이너 없이 작업이 시작됩니다. GuardDuty 대시보드는 적용 범위 통계 대시보드에서 작업에 보호 기능이 누락되었음을 표시합니다.
Runtime Monitoring을 위해 클러스터에 태그를 지정할 수 있는 올바른 권한이 있는지 어떻게 알 수 있나요?
클러스터에 태그를 지정하려면 CreateCluster
및 ecs:TagResource
모두에 대한 UpdateCluster
작업이 있어야 합니다.
다음은 예제 정책의 코드 조각입니다.
{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction" : "CreateCluster", "ecs:CreateAction" : "UpdateCluster", } } } ] }
Amazon ECR에 연결되어 있지 않으면 어떻게 되나요?
Fargate 작업의 경우 GuardDuty 보안 에이전트 사이드카 컨테이너 없이 작업이 시작됩니다. GuardDuty 대시보드는 적용 범위 통계 대시보드에서 작업에 보호 기능이 누락되었음을 표시합니다.
Runtime Monitoring을 활성화한 후 Fargate 작업의 메모리 부족 오류를 해결하려면 어떻게 해야 하나요?
GuardDuty 보안 에이전트는 경량 프로세스입니다. 그러나 이 프로세스는 워크로드 크기에 따라 여전히 리소스를 소비합니다. Amazon CloudWatch Container Insights와 같은 컨테이너 리소스 추적 도구를 사용하여 클러스터에서 GuardDuty 배포를 스테이징하는 것이 좋습니다. 이러한 도구를 사용하면 애플리케이션에 대한 GuardDuty 보안 에이전트의 소비 프로파일을 검색할 수 있습니다. 그런 다음, 필요한 경우 Fargate 작업 크기를 조정하여 잠재적인 메모리 부족 조건을 방지할 수 있습니다.