Executei uma tarefa do AWS DataSync, mas não consigo encontrar os logs no grupo de logs do Amazon CloudWatch correspondente. Como faço para resolver isso?
Resolução
Confirme se o CloudWatch Logs tem uma política de recursos que permite que o DataSync faça upload de logs. Siga estas etapas para examinar as políticas de recursos do CloudWatch Logs na região da AWS do seu agente do DataSync:
Observação: se receber erros ao executar comandos da AWS CLI, verifique se você está usando a versão mais recente da AWS CLI.
1. Execute o comando describe-resource-policies usando a AWS Command Line Interface (AWS CLI):
aws logs describe-resource-policies --region us-east-1
Observação: cada conta da AWS tem permissão para até 10 políticas de recursos por região para o CloudWatch Logs. Se você exceder esse limite, receberá uma mensagem de erro ao criar sua política de recursos.
2. Examine a saída do comando. Se ainda não houver uma política de recursos configurada, a saída será semelhante ao seguinte:
{
"resourcePolicies": []
}
Importante: confirme se a política de recursos do DataSync está habilitada na região da AWS correta. A política deve estar na mesma região do atendente do DataSync que você está usando.
Siga estas etapas para criar uma política de recursos que conceda permissões para o DataSync fazer upload de logs:
1. Crie um arquivo JSON que conceda ao DataSync as permissões mínimas para fazer upload de logs:
{
"Statement": [
{
"Sid": "DataSyncLogsToCloudWatchLogs",
"Effect": "Allow",
"Action": [
"logs:PutLogEvents",
"logs:CreateLogStream"
],
"Principal": {
"Service": "datasync.amazonaws.com"
},
"Resource": "*"
}
],
"Version": "2012-10-17"
}
Você pode chamar o arquivo de policy.json.
2. Execute o comando put-resource-policy usando a AWS CLI para criar uma política de recursos usando o arquivo JSON:
aws logs put-resource-policy --policy-name trustDataSync --policy-document file://policy.json --region <Region>
Importante: defina a região da AWS do agente do DataSync como valor de --region.
3. Execute o comando describe-resource-policies para confirmar que a política de recursos foi criada:
aws logs describe-resource-policies --region <Region>
Observação: cada conta da AWS tem permissão para até 10 políticas de recursos por região para o CloudWatch Logs. Se você exceder esse limite, receberá uma mensagem de erro ao criar sua política de recursos. Use o comando put-resource-policy para confirmar se você atingiu o limite.
4. Depois que você criar a política de recursos, a saída do comando será semelhante ao seguinte:
{
"resourcePolicies": [
{
"policyName": "trustDataSync",
"policyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"DataSyncLogsToCloudWatchLogs\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"datasync.amazonaws.com\"},\"Action\":[\"logs:PutLogEvents\",\"logs:CreateLogStream\"],\"Resource\":\"*\"}]}",
"lastUpdatedTime": 1577448776606
}
]
}
5. Para testar a política de recursos, execute uma tarefa do DataSync. Alguns minutos após a execução da tarefa, confirme se você está vendo o fluxo de logs do grupo de logs do CloudWatch correspondente.
Informações relacionadas
Visão geral do gerenciamento de permissões de acesso a seus recursos do CloudWatch Logs