AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Como soluciono problemas de uma tarefa de exportação que falhou no CloudWatch Logs?
Minha tarefa de exportação falha quando tento exportar dados de log do Amazon CloudWatch Logs para um bucket do Amazon Simple Storage Service (Amazon S3), mesmo que o bucket do Amazon S3 exista.
Breve descrição
É possível configurar uma tarefa de exportação em um bucket do S3 na mesma conta da AWS ou em uma conta diferente.
Para exportar dados de log do CloudWatch Logs para um bucket, o bucket de destino exige as permissões corretas e deve estar na mesma região da AWS que o grupo de logs.
Se a política do bucket, as permissões do AWS Identity and Access Management (AWS IAM) ou as configurações de criptografia não estiverem configuradas corretamente, a tarefa de exportação falha e você pode receber um dos seguintes erros:
- "Could not create export task. GetBucketAcl call on the given bucket failed. Please check if CloudWatch Logs has been granted permission to perform this operation."
- "Could not create export task. PutObject call on the given bucket failed. Please check if CloudWatch Logs has been granted permission to perform this operation."
- "Unable to create export task. Resource limit exceeded."
- "PutObject call on the given bucket failed. Please check if CloudWatch Logs has been granted permission to perform this operation. This may be a result of a KMS key or bucket encryption misconfiguration."
- "GetBucketAcl call on the given bucket failed. Please check if the specified Amazon S3 Bucket is in the same AWS region as CloudWatch Logs."
Resolução
Adicione a política de permissões necessária na tarefa de exportação
Para executar uma tarefa de exportação, o usuário, grupo ou perfil do IAM que chama a API da tarefa de exportação exige a política de permissões s3:PutObject. Se o bucket de destino estiver criptografado com SSE-KMS, inclua também a política do AWS Key Management Service (AWS KMS).
Adicione a seguinte política de permissões aos seus usuários, grupos ou perfis do IAM:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": arn:aws:s3:::MY-EXPORTED-LOGS/* }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": ARN_OF_KMS_KEY } ] }
Observação: substitua MY-EXPORTED-LOGS pelo nome do seu bucket de destino e substitua ARN_OF_KMS_KEY pelo nome do recurso da Amazon (ARN) da sua chave do AWS KMS.
Anexe a política gerenciada AmazonS3ReadOnlyAccess ao perfil do IAM que chama a tarefa de exportação. Também anexe uma política com as seguintes permissões do CloudWatch Logs:
- logs:CreateExportTask
- logs:CancelExportTask
- logs:DescribeExportTasks
- logs:DescribeLogStreams
- logs:DescribeLogGroups
Conceda permissões no bucket de destino
Por padrão, todos os buckets e objetos são privados. Somente o proprietário do recurso ou a conta que criou o bucket pode acessar o bucket e os objetos dentro do bucket. Quando necessário, o proprietário do recurso pode gravar uma política de acesso para conceder permissões de acesso a outros recursos e usuários.
Ao definir uma política, inclua uma string gerada aleatoriamente como prefixo do bucket. Isso permite que somente os fluxos de log pretendidos sejam exportados para o bucket.
Para conceder permissões no bucket de destino, conclua as seguintes etapas:
- Abra o console do S3.
- Selecione o bucket para o qual você deseja exportar os logs.
- Clique em Permissions (Permissões) e depois em Bucket policy (Política de bucket).
- No Bucket Policy Editor (Editor de política do bucket), adicione a seguinte política:
Observação: substitua example-s3-bucket pelo nome do seu bucket. Também substitua example-region pelo endpoint de região necessário para o parâmetro Principal. A política anterior é definida como a política de acesso em seu bucket. Essa política permite que o CloudWatch Logs exporte dados de log para seu bucket e que o proprietário do bucket tenha permissões completas em todos os objetos exportados.{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::exammple-s3-bucket", "Principal": { "Service": "logs.example-region.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": [ "AccountId1", "AccountId2", ... ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:Region:AccountId1:log-group:", "arn:aws:logs:Region:AccountId2:log-group:", ... ] } } }, { "Action": "s3:PutObject", "Effect": "Allow", "Resource": "arn:aws:s3:::example-s3-bucket/", "Principal": { "Service": "logs.example-region.amazonaws.com" }, "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "AccountId1", "AccountId2", ... ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:Region:AccountId1:log-group:", "arn:aws:logs:Region:AccountId2:log-group:", ... ] } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::create_export_task_caller_account:role/role_name" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::example-s3-bucket/", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] } - Clique em Save (Salvar).
Exporte uma tarefa para um bucket criptografado com SSE-KMS
Crie e configure a chave do AWS KMS
Conclua as etapas a seguir:
- Abra o console do AWS KMS. Para alterar a região, use o seletor Region (Região) na barra de navegação.
- No painel de navegação, selecione Customer managed keys (Chaves gerenciadas pelo cliente) e, em seguida, Create Key (Criar chave).
Em Key type (Tipo de chave), clique em Symmetric (Simétrica).
Em Key usage (Uso da chave), selecione Encrypt and decrypt (Criptografar e descriptografar). - Clique em Next (Próximo).
- Em Add labels (Adicionar rótulos), insira um alias para a chave. Opcionalmente, adicione uma descrição ou tags e clique em Next (Próximo).
- Em Key administrators (Administradores de chaves), selecione quem pode administrar essa chave e clique em Next (Próximo) duas vezes para pular para a página de revisão.
- Revise as configurações e selecione Finish (Concluir).
- Acesse a página Customer managed keys (Chaves gerenciadas pelo cliente) e clique no nome da chave que você criou anteriormente.
- Selecione a guia Key policy (Política de chave) e, em seguida, Switch to policy view (Mudar para visualização da política).
- Na seção Key policy (Política de chave), clique em Edit (Editar) e adicione a seguinte declaração à lista de declarações da política de chave:
Observação: substitua EXAMPLE-REGION pela região dos seus logs e EXAMPLE-ACCOUNT-ARN pelo ARN da conta que possui a chave do AWS KMS. Substitua create_export_task_caller_account pelo ID da conta do chamador e role_name pelo nome do perfil do IAM. Substitua também ARN_OF_KMS_KEY pelo ARN da sua chave do AWS KMS.{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CWL Service Principal usage", "Effect": "Allow", "Principal": { "Service": "logs.EXAMPLE-REGION.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": EXAMPLE-ACCOUNT-ARN }, "Action": [ "kms:GetKeyPolicy", "kms:PutKeyPolicy", "kms:DescribeKey", "kms:CreateAlias", "kms:ScheduleKeyDeletion", "kms:Decrypt" ], "Resource": "*" }, { "Sid": "Enable IAM Role Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::create_export_task_caller_account:role/role_name" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": ARN_OF_KMS_KEY } ] } - Clique em Save changes (Salvar alterações).
Configure a criptografia do bucket
Conclua as etapas a seguir:
- Abra o console do Amazon S3.
- Selecione o bucket para o qual você deseja exportar os logs.
- Clique na guia Properties (Propriedades). Em seguida, em Default Encryption (Criptografia padrão), selecione Edit (Editar).
- Em Server-side Encryption (Criptografia do lado do servidor), clique em Enable (Ativar).
- Em Encryption type (Tipo de criptografia), selecione AWS Key Management Service key (SSE-KMS) (Chave do AWS Key Management Service (SSE-KMS)).
- Clique em Choose from your AWS KMS keys (Escolher entre suas chaves do AWS KMS) e encontre a chave que você criou.
- Em Bucket key (Chave do bucket), selecione Enable (Ativar).
- Clique em Save changes (Salvar alterações).
Observação: o CloudWatch Logs permite uma tarefa de exportação por vez por conta e por região. Se você receber a mensagem de erro "Unable to create export task. Resource limit exceeded", aguarde a conclusão da tarefa de exportação atual antes de iniciar uma nova.
Informações relacionadas
Exportação de dados de log para o Amazon S3 usando o console
- Tópicos
- Management & Governance
- Idioma
- Português

Conteúdo relevante
feita há um ano
AWS OFICIALAtualizada há 9 meses