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.
¿Cómo soluciono un error en una tarea de exportación en Registros de CloudWatch?
Mi tarea de exportación falla cuando intento exportar los datos de registro de Registros de Amazon CloudWatch a un bucket de Amazon Simple Storage Service (Amazon S3), aunque el bucket de Amazon S3 ya existe.
Descripción corta
Puedes configurar una tarea de exportación para un bucket de S3 en la misma cuenta de AWS o en otra cuenta.
Para exportar los datos de registro de Registros de CloudWatch a un bucket, el bucket de destino requiere los permisos correctos y debe estar en la misma región de AWS que el grupo de registro.
Si la política del bucket, los permisos de AWS Identity and Access Management (IAM) o la configuración de cifrado no están configurados correctamente, la tarea de exportación no se realizará correctamente y es posible que recibas uno de los siguientes errores:
- "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."
Resolución
Adición de la política de permisos requerida para la tarea de exportación
Para ejecutar una tarea de exportación, el usuario, grupo o rol de IAM que llama a la API de tareas de exportación requiere la política de permisos s3:PutObject. Si el bucket de destino está cifrado con SSE-KMS, incluye también la política de AWS Key Management Service (AWS KMS).
Agrega la siguiente política de permisos a tus usuarios, grupos o roles de 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 } ] }
Nota: Sustituye MY-EXPORTED-LOGS por el nombre de tu bucket de destino y sustituye ARN_OF_KMS_KEY por el nombre de recurso de Amazon (ARN) de tu clave de AWS KMS.
Adjunta la política administrada AmazonS3ReadOnlyAccess al rol de IAM que llama a la tarea de exportación. Adjunta también una política con los siguientes permisos de Registros de CloudWatch:
- logs:CreateExportTask
- logs:CancelExportTask
- logs:DescribeExportTasks
- logs:DescribeLogStreams
- logs:DescribeLogGroups
Concesión de permisos en el bucket de destino
De forma predeterminada, todos los buckets y objetos son privados. Solo el propietario del recurso o la cuenta que creó el bucket pueden acceder al bucket y a los objetos del bucket. Cuando sea necesario, el propietario del recurso puede escribir una política de acceso para conceder permisos de acceso a otros recursos y usuarios.
Cuando definas una política, incluye una cadena generada aleatoriamente como prefijo del bucket. Esto permite exportar al bucket solo las secuencias de registro previstas.
Para conceder permisos en el bucket de destino, sigue estos pasos:
- Abre la consola de S3.
- Elige el bucket al que quieres exportar los registros.
- Selecciona Permisos y, a continuación, Política del bucket.
- En el editor de políticas de bucket, introduce la siguiente política:
Nota: Sustituye example-s3-bucket por el nombre de tu bucket. Sustituye también example-region por el punto de enlace regional requerido para el parámetro Entidad principal. La política anterior se establece como la política de acceso de tu bucket. Esta política permite a Registros de CloudWatch exportar los datos de registro a tu bucket y el propietario del bucket tiene todos los permisos sobre todos los 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" } } } ] } - Selecciona Guardar.
Exportación de una tarea a un bucket cifrado con SSE-KMS
Creación y configuración de la clave de AWS KMS
Sigue estos pasos:
- Abre la consola de AWS KMS. Para cambiar la región, utiliza el selector de regiones de la barra de navegación.
- En el panel de navegación, selecciona Claves administradas por el cliente y, a continuación, selecciona Crear clave.
En Tipo de clave, elige Simétrica.
En Uso de claves, elige Cifrar y descifrar. - Elige Siguiente.
- En Agregar etiquetas, introduce un alias para la clave. Si lo deseas, agrega una descripción o etiquetas y, a continuación, elige Siguiente.
- En Administradores de claves, selecciona quién puede administrar esta clave y, a continuación, elige Siguiente dos veces para pasar a la página de revisión.
- Revisa la configuración y, a continuación, selecciona Finalizar.
- Ve a la página Claves administradas por el cliente y, a continuación, elige el nombre de la clave que creaste anteriormente.
- Elige la pestaña Política de claves y, a continuación, elige Cambiar a la vista de políticas.
- En la sección Política de claves, elige Editar y, a continuación, agrega la siguiente instrucción a la lista de instrucciones de la política de claves:
Nota: Sustituye EXAMPLE-REGION por la región de tus registros y EXAMPLE-ACCOUNT-ARN por el ARN de la cuenta que posee la clave de AWS KMS. Sustituye create_export_task_caller_account por el ID de cuenta de la persona que llama y role_name por el nombre del rol de IAM. Sustituye también ARN_OF_KMS_KEY por el ARN de tu clave de 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 } ] } - Selecciona Guardar cambios.
Configuración del cifrado del bucket
Sigue estos pasos:
- Abre la consola de Amazon S3.
- Elige el bucket al que quieres exportar los registros.
- Selecciona la pestaña Propiedades. A continuación, en Cifrado predeterminado, selecciona Editar.
- En Cifrado del lado del servidor, elige Activar.
- En Tipo de cifrado, elige la clave de AWS Key Management Service (SSE-KMS).
- Selecciona Elegir entre tus claves de AWS KMS y busca la clave que creaste.
- En Clave del bucket, elige Activar.
- Selecciona Guardar cambios.
Nota: Registros de CloudWatch permite exportar una tarea cada vez por cuenta y región. Si aparece el error "Unable to create export task. Resource limit exceeded", espera a que finalice la tarea de exportación actual antes de iniciar una nueva.
Información relacionada
Exportación de los datos de registro a Amazon S3 mediante la consola
- Idioma
- Español

Contenido relevante
- Como solucionar el error: Supplied Policy document is breaching Cloudwatch Logs policy length limit.Respuesta aceptada
preguntada hace 2 años
- Respuesta aceptada
preguntada hace un año
preguntada hace 2 años
OFICIAL DE AWSActualizada hace 9 meses
OFICIAL DE AWSActualizada hace 3 años