Registros enviados a Amazon S3 - Amazon CloudWatch Logs

Registros enviados a Amazon S3

Cuando configure los registros que quiere enviar a Amazon S3, AWS crea o cambia las políticas de recursos asociadas con el bucket de S3 que recibe los registros, si es necesario.

Los registros publicados directamente en Amazon S3 se publican en un bucket existente que especifique. Se crean uno o varios archivos de registro cada cinco minutos en el bucket especificado.

Cuando entrega registros por primera vez a un bucket de Amazon S3, el servicio que entrega registros registra al propietario del bucket para asegurarse de que los registros se entregan solo a un bucket perteneciente a esta cuenta. Como resultado, para cambiar el propietario del bucket de Amazon S3, debe volver a crear o actualizar la suscripción de registro en el servicio de origen.

nota

CloudFront utiliza un modelo de permisos diferente al del resto de servicios que envían registros ofrecidos a S3. Para obtener más información, consulte Permisos necesarios para configurar el registro estándar y el acceso a los archivos de registro.

Además, si utiliza el mismo bucket de S3 para los registros de acceso de CloudFront y otro origen de registros, la activación de ACL en el bucket de CloudFront también otorga permiso al resto de orígenes de registro que utilizan este bucket.

importante

Si envía registros a un bucket de Amazon S3 y la política del bucket contiene un elemento NotAction o NotPrincipal, no podrá añadir automáticamente los permisos de entrega de registros al bucket ni crear una suscripción de registros. Para crear una suscripción de registros correctamente, debe añadir manualmente los permisos de entrega de registros a la política del bucket y, a continuación, crear la suscripción de registros. Para obtener más información, consulte las instrucciones en esta sección.

Si el bucket tiene un cifrado del servidor que usa una clave de AWS KMS administrada por el cliente, debe agregar también la política de claves de la clave administrada por el cliente. Para obtener más información, consulte Amazon S3.

Si el bucket de destino tiene SSE-KMS y una clave de bucket habilitados, la política de claves de KMS administradas por el cliente adjunta ya no funciona como se esperaba para todas las solicitudes. Para obtener más información, consulte Reducción del costo de SSE-KMS con las claves de bucket de Amazon S3.

Si utiliza registros ofrecidos y cifrado S3 con una clave AWS KMS administrada por el cliente, debe usar un ARN de clave de AWS KMS totalmente cualificado en lugar de un ID de clave al configurar el bucket. Para obtener más información, consulte put-bucket-encryption.

Permisos de usuario

Para poder configurar el envío de cualquiera de estos tipos de registros a Amazon S3 por primera vez, debe iniciar sesión en una cuenta con los siguientes permisos.

  • logs:CreateLogDelivery

  • S3:GetBucketPolicy

  • S3:PutBucketPolicy

Si alguno de estos tipos de registros ya se envía a un bucket de Amazon S3, para configurar el envío de otro de estos tipos de registros al mismo bucket, solo necesita tener el permiso logs:CreateLogDelivery.

Política de recursos de bucket de S

El bucket de S3 al que se envían los registros debe tener una política de recursos que incluya determinados permisos. Si el bucket actualmente no tiene una política de recursos, y el usuario que configura el registro tiene los permisos S3:GetBucketPolicy y S3:PutBucketPolicy para el bucket, AWS crea automáticamente la siguiente política cuando empiece a enviar los registros a Amazon S3.

JSON
{ "Version":"2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": [ "0123456789" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:111122223333:*" ] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/account-ID/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "0123456789" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:111122223333:*" ] } } } ] }

En la política anterior, para aws:SourceAccount, especifique la lista de ID de cuenta para los que se entregan los registros a este bucket. Para aws:SourceArn, especifique la lista de ARN del recurso que genera los registros, en el formulario arn:aws:logs:source-region:source-account-id:*.

Si el bucket tiene una política de recursos, pero esa política no contiene la instrucción que se muestra en la política anterior, y el usuario que configura el registro tiene los permisos S3:GetBucketPolicy y S3:PutBucketPolicy para el bucket, esa instrucción se anexa a la política de recursos del bucket.

nota

En algunos casos, es posible que aparezcan errores de AccessDenied en AWS CloudTrail si no se ha otorgado el permiso s3:ListBucket a delivery.logs.amazonaws.com. Para evitar estos errores en sus registros de CloudTrail, debe conceder el permiso s3:ListBucket a delivery.logs.amazonaws.com e incluir los parámetros de Condition que se muestran con el permiso s3:GetBucketAcl establecido en la política de bucket anterior. Para simplificar esto, en lugar de crear una nueva Statement, puede actualizar directamente AWSLogDeliveryAclCheck para que sea “Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]

Uso de cifrado del servidor del bucket de Amazon S3

Para proteger los datos del bucket de Amazon S3, habilite el cifrado del servidor con claves administradas de Amazon S3 (SSE-S3) o el cifrado del servidor con claves de AWS KMS almacenadas en AWS Key Management Service (SSE-KMS). Para obtener más información, consulte Protección de los datos con el cifrado del servidor.

Si elige SSE-S3, no se requiere ninguna configuración adicional. Amazon S3 se encarga de la clave de cifrado.

aviso

Si elige SSE-KMS, debe utilizar una clave administrada por el cliente, ya que el uso de una clave administrada de AWS no se admite en este contexto. Si configura el cifrado mediante una clave administrada de AWS, los registros se entregarán en un formato ilegible.

Cuando utilice una clave de AWS KMS administrada por el cliente, especifique el nombre de recurso de Amazon (ARN) de la clave administrada por el cliente cuando habilite el cifrado del bucket. Debe agregar lo siguiente a la política de clave para la clave administrada por el cliente (no a la política del bucket para el bucket de S3), de modo que la cuenta de entrega de registros pueda escribir en el bucket de S3.

Si elige SSE-KMS, debe utilizar una clave administrada por el cliente, ya que el uso de una clave administrada de AWS no se admite en este contexto. Cuando utilice una clave de AWS KMS administrada por el cliente, especifique el nombre de recurso de Amazon (ARN) de la clave administrada por el cliente cuando habilite el cifrado del bucket. Debe agregar lo siguiente a la política de clave para la clave administrada por el cliente (no a la política del bucket para el bucket de S3), de modo que la cuenta de entrega de registros pueda escribir en el bucket de S3.

{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } }

Para aws:SourceAccount, especifique la lista de ID de cuenta para los que se entregan los registros a este bucket. Para aws:SourceArn, especifique la lista de ARN del recurso que genera los registros, en el formulario arn:aws:logs:source-region:source-account-id:*.