

# Solução de problemas de monitoramento de runtime
<a name="ecs-guard-duty-troubleshooting"></a>

Talvez seja necessário solucionar problemas ou verificar se o monitoramento de runtime está habilitado e em execução nas tarefas e nos contêineres.

**Topics**
+ [Como posso saber se o monitoramento de runtime está ativo na minha conta?](#verify-ecs-runtime-enabled)
+ [Como posso saber se o monitoramento de runtime está ativo em um cluster?](#verify-ecs-runtime-enabled)
+ [Como posso saber se o agente de segurança do GuardDuty está sendo executado em uma tarefa do Fargate?](#verify-ecs-runtime-fargate-run)
+ [Como posso saber se o agente de segurança do GuardDuty está sendo executado em uma instância de contêiner do EC2?](#verify-ecs-runtime-ec2-run)
+ [O que acontece quando não há perfil de execução de tarefas para uma tarefa em execução no cluster?](#no-task-execution-role)
+ [Como posso saber se tenho as permissões corretas para marcar clusters no monitoramento de runtime?](#tag-permissions)
+ [O que acontece quando não há conexão com o Amazon ECR?](#no-ecr-connection)
+ [Como soluciono erros de falta de memória nas tarefas do Fargate depois de habilitar o monitoramento de runtime?](#memory-error)

## Como posso saber se o monitoramento de runtime está ativo na minha conta?
<a name="verify-ecs-runtime-enabled"></a>

No console do Amazon ECS, as informações estão na página **Configurações da conta**. 

Você também pode executar `list-account-settings` com a opção `effective-settings`.

```
aws ecs list-account-settings --effective-settings
```

Output

A configuração com **nome** definido como `guardDutyActivate` e **valor** definido como `on` indica que a conta está configurada. Você deve verificar com o administrador do GuardDuty se o gerenciamento é automático ou manual.

```
{
    "setting": {
        "name": "guardDutyActivate",
        "value": "enabled",
        "principalArn": "arn:aws:iam::123456789012:root",
        "type": "aws-managed"
    }
}
```

## Como posso saber se o monitoramento de runtime está ativo em um cluster?
<a name="verify-ecs-runtime-enabled"></a>

Você pode revisar as estatísticas de cobertura no console do GuardDuty. Isso inclui informações para os recursos do Amazon ECS associados à sua própria conta ou às contas-membro e a porcentagem de clusters íntegros dentre todos os clusters na Região da AWS selecionada. Isso inclui a cobertura para os clusters que usam o Fargate e o EC2. Para obter mais informações, consulte [Reviewing coverage statistics](https://docs.aws.amazon.com/guardduty/latest/ug/gdu-assess-coverage-ecs.html#ecs-review-coverage-statistics-ecs-runtime-monitoring) no *Amazon GuardDuty User Guide*.

## Como posso saber se o agente de segurança do GuardDuty está sendo executado em uma tarefa do Fargate?
<a name="verify-ecs-runtime-fargate-run"></a>

O agente de segurança do GuardDuty é executado como contêiner auxiliar em tarefas do Fargate.

No console do Amazon ECS, o auxiliar é exibido em **Contêineres** na página **Detalhes da tarefa**. 

Você pode executar `describe-tasks` e procurar o contêiner com um **nome** definido como `aws-gd-agent` e **lastStatus** definido como `RUNNING`.

O exemplo a seguir mostra a saída do cluster padrão para a tarefa `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
```

Output

O contêiner denominado `gd-agent` está no estado `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" 
      }
    ]
```

## Como posso saber se o agente de segurança do GuardDuty está sendo executado em uma instância de contêiner do EC2?
<a name="verify-ecs-runtime-ec2-run"></a>

Execute o seguinte comando para visualizar o status:

```
sudo systemctl status amazon-guardduty-agent
```

O arquivo de log está no seguinte local:

```
/var/log/amzn-guardduty-agent
```

## O que acontece quando não há perfil de execução de tarefas para uma tarefa em execução no cluster?
<a name="no-task-execution-role"></a>

Para tarefas do Fargate, a tarefa começa sem o contêiner auxiliar do agente de segurança do GuardDuty. O painel do GuardDuty mostrará que a tarefa está sem proteção no painel de estatísticas de cobertura.

## Como posso saber se tenho as permissões corretas para marcar clusters no monitoramento de runtime?
<a name="tag-permissions"></a>

Para marcar um cluster, você deve ter a ação `ecs:TagResource` para `CreateCluster` e `UpdateCluster`.

Veja a seguir um trecho de um exemplo de política.

```
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
         "ecs:TagResource"
      ],
      "Resource": "*",
      "Condition": {
         "StringEquals": {
             "ecs:CreateAction" : "CreateCluster",
             "ecs:CreateAction" : "UpdateCluster",
          }
       }
    }
  ]
}
```

## O que acontece quando não há conexão com o Amazon ECR?
<a name="no-ecr-connection"></a>

Para tarefas do Fargate, a tarefa começa sem o contêiner auxiliar do agente de segurança do GuardDuty. O painel do GuardDuty mostrará que a tarefa está sem proteção no painel de estatísticas de cobertura.

## Como soluciono erros de falta de memória nas tarefas do Fargate depois de habilitar o monitoramento de runtime?
<a name="memory-error"></a>

O agente de segurança do GuardDuty é um processo leve. No entanto, o processo ainda consome recursos de acordo com o tamanho da workload. Recomendamos usar ferramentas de rastreamento de recursos de contêineres, como o Amazon CloudWatch Container Insights, para preparar as implantações do GuardDuty no cluster. Essas ferramentas ajudam você a descobrir o perfil de consumo do agente de segurança do GuardDuty para as aplicações. Em seguida, você pode ajustar o tamanho da tarefa do Fargate, se necessário, para evitar possíveis condições de falta de memória.