Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Habilitar el registro desde AWS los servicios
Si bien muchos servicios publican registros solo en CloudWatch Logs, algunos AWS servicios pueden publicar registros directamente en Amazon Simple Storage Service o Amazon Data Firehose. Si su requisito principal para los registros es el almacenamiento o el procesamiento en uno de estos servicios, puede conseguir fácilmente que el servicio que crea los registros los envíe directamente a Amazon S3 o a Firehose sin configuración adicional.
Aunque los registros se publican directamente en Amazon S3 o Firehose, se aplican cargos. Para obtener más información, consulta Registros vendidos en la pestaña Logs de Amazon CloudWatch Pricing
Algunos AWS servicios utilizan una infraestructura común para enviar sus registros. Para habilitar el registro desde estos servicios, debe iniciar sesión como usuario con ciertos permisos. Además, debe conceder permisos para AWS permitir el envío de los registros.
Para los servicios que requieren estos permisos, se necesitan dos versiones de los permisos. Los servicios que requieren estos permisos adicionales se indican en la tabla como Compatibles [permisos V1] y Compatibles [permisos V2]. Para obtener información sobre estos permisos necesarios, consulte las secciones que aparecen después de la tabla.
Registro que requiere permisos adicionales [V1]
Algunos AWS servicios utilizan una infraestructura común para enviar sus CloudWatch registros a Logs, Amazon S3 o Firehose. Para habilitar los servicios de AWS que se muestran en la siguiente tabla a fin de enviar sus registros a estos destinos, debe iniciar sesión como usuario con ciertos permisos.
Además, se deben conceder permisos para AWS permitir el envío de los registros. AWS puede crear esos permisos automáticamente al configurar los registros, o puede crearlos usted mismo antes de configurar el registro. Para realizar entregas entre cuentas, debe crear manualmente las políticas de permisos.
Si decide configurar AWS automáticamente los permisos y las políticas de recursos necesarios cuando usted o alguien de su organización configura por primera vez el envío de registros, el usuario que configura el envío de registros debe tener determinados permisos, como se explica más adelante en esta sección. Como alternativa, puede crear las políticas de recursos usted mismo y, por lo tanto, los usuarios que configuran el envío de registros no necesitan tantos permisos.
En la siguiente tabla, se resumen los tipos de registros y los destinos de registro a los que se aplica la información de esta sección.
En las siguientes secciones, se proporcionan más detalles para cada uno de estos destinos.
Los registros se envían a CloudWatch Logs
importante
Al configurar los tipos de registro de la siguiente lista para que se envíen a CloudWatch Logs, AWS crea o cambia las políticas de recursos asociadas al grupo de registros que recibe los registros, si es necesario. Siga leyendo esta sección para ver los detalles.
Esta sección se aplica cuando los tipos de registros enumerados en la tabla de la sección anterior se envían a CloudWatch Logs:
Permisos de usuario
Para poder configurar el envío de cualquiera de estos tipos de CloudWatch registros a Logs por primera vez, debe iniciar sesión en una cuenta con los siguientes permisos.
logs:CreateLogDelivery
logs:PutResourcePolicy
logs:DescribeResourcePolicies
logs:DescribeLogGroups
nota
Cuando especifique el permiso
logs:DescribeLogGroups
,logs:DescribeResourcePolicies
ologs:PutResourcePolicy
, asegúrese de configurar el ARN de su líneaResource
para que utilice un comodín*
, en lugar de especificar solo un nombre de grupo de registro. Por ejemplo,"Resource": "arn:aws:logs:us-east-1:111122223333:log-group:*"
.
Si alguno de estos tipos de registros ya se está enviando a un grupo de CloudWatch registros de Logs, solo necesitará el logs:CreateLogDelivery
permiso para configurar el envío de otro de estos tipos de registros a ese mismo grupo de registros.
Política de recursos del grupo de registro
El grupo de registro al que se envían los registros debe tener una política de recursos que incluya determinados permisos. Si el grupo de registros actualmente no tiene una política de recursos y el usuario que configura el registro tiene los logs:PutResourcePolicy
logs:DescribeLogGroups
permisos y los permisos para el grupo de registros, creará AWS automáticamente la siguiente política para dicho grupo cuando comience a enviar los CloudWatch registros a Logs. logs:DescribeResourcePolicies
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:
us-east-1
:0123456789
:log-group:my-log-group
:log-stream:*" ], "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789
"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1
:0123456789
:*"] } } } ] }
Si el grupo de registro 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 logs:PutResourcePolicy
, logs:DescribeResourcePolicies
y logs:DescribeLogGroups
para el grupo de registro, esa instrucción se anexa a la política de recursos del grupo de registro.
Consideraciones de límite de tamaño de la política de recursos del grupo de registro
Estos servicios deben enumerar cada grupo de registros al que envían registros en la política de recursos, y las políticas de recursos de CloudWatch Logs están limitadas a 5120 caracteres. Un servicio que envía registros a un gran número de grupos de registro puede alcanzar este límite.
Para mitigar esta situación, CloudWatch Logs supervisa el tamaño de las políticas de recursos utilizadas por el servicio que envía los registros y, cuando detecta que una política se acerca al límite de tamaño de 5120 caracteres, CloudWatch Logs activa /aws/vendedlogs/*
automáticamente la política de recursos de ese servicio. Puede comenzar a utilizar grupos de registro con nombres que comiencen por /aws/vendedlogs/
como los destinos de los registros de estos servicios.
Registros enviados a Amazon S3
Cuando configura los registros para que se envíen a Amazon S3, AWS crea o cambia las políticas de recursos asociadas al depósito 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 de los demás servicios que envían los registros vendidos 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 depósito de S3 para CloudFront acceder a los registros y otra fuente de registros, al habilitar la ACL en el depósito CloudFront también se concederán permisos a todas las demás fuentes de registro que utilicen este depósito.
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 depósito tiene un cifrado del lado del servidor mediante una AWS KMS clave administrada por el cliente, también debe agregar la política de claves para su clave administrada por el cliente. Para obtener más información, consulte Amazon S3.
Si utiliza registros vendidos y cifrado S3 con una AWS KMS clave administrada por el cliente, debe usar un ARN de AWS KMS clave totalmente cualificado en lugar de un ID de clave al configurar el depósito. 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 S3
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 no tiene actualmente una política de recursos y el usuario que configura el registro tiene los S3:PutBucketPolicy
permisos S3:GetBucketPolicy
y para el bucket, creará AWS automáticamente la siguiente política para él cuando comience a enviar los registros a Amazon S3.
{ "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
:0123456789
:*"] } } }, { "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
:0123456789
:*"] } } } ] }
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
ello, especifique la lista ARNs del recurso que genera los registros en el formularioarn: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 veas AccessDenied
errores AWS CloudTrail si no se ha concedido el s3:ListBucket
permisodelivery.logs.amazonaws.com
. Para evitar estos errores en sus CloudTrail registros, debe conceder el s3:ListBucket
permiso delivery.logs.amazonaws.com
e incluir Condition
los parámetros que se muestran con el conjunto de s3:GetBucketAcl
permisos 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
Puede proteger los datos de su bucket de Amazon S3 habilitando el cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3) o el cifrado del lado del servidor con una clave almacenada en (SSE-KMS). AWS KMS AWS Key Management Service 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 usar una clave administrada por el cliente, ya que no se admite el uso de una clave administrada en este escenario. AWS Si configura el cifrado con una clave AWS administrada, los registros se entregarán en un formato ilegible.
Cuando utilizas una AWS KMS clave gestionada por el cliente, puedes especificar el nombre de recurso de Amazon (ARN) de la clave gestionada por el cliente al activar el cifrado de buckets. 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 usar una clave administrada por el cliente, ya que no se admite el uso de una clave AWS administrada en este escenario. Cuando utilizas una AWS KMS clave gestionada por el cliente, puedes especificar el nombre de recurso de Amazon (ARN) de la clave gestionada por el cliente al activar el cifrado de buckets. 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
ello, especifique la lista ARNs del recurso que genera los registros, en el formularioarn:aws:logs:
. source-region
:source-account-id
:*
Registros enviados a Firehose
Esta sección se aplica cuando se envían los tipos de registros enumerados en la tabla de la sección anterior a Firehose:
Permisos de usuario
Para poder configurar el envío de cualquiera de estos tipos de registros a Firehose por primera vez, debe iniciar sesión en una cuenta con los siguientes permisos.
logs:CreateLogDelivery
firehose:TagDeliveryStream
iam:CreateServiceLinkedRole
Si alguno de estos tipos de registros ya se envió a Firehose, entonces para configurar el envío de otro de estos tipos de registros a Firehose solo necesita tener los permisos logs:CreateLogDelivery
y firehose:TagDeliveryStream
.
Roles de IAM utilizados para permisos
Como Firehose no usa políticas de recursos, AWS usa roles de IAM al configurar estos registros para enviarlos a Firehose. AWS crea un rol vinculado a un servicio denominado AWSServiceRoleForLogDelivery. Esta función vinculada al servicio incluye los siguientes permisos.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }
Esta función vinculada al servicio concede permisos para todas las transmisiones de entrega de Firehose que tengan la LogDeliveryEnabled
etiqueta establecida en. true
AWS asigna esta etiqueta al flujo de entrega de destino cuando configuras el registro.
Este rol vinculado a un servicio también tiene una política de confianza que permite que la entidad principal de servicio delivery.logs.amazonaws.com
asuma el rol vinculado al servicio necesario. Esta política de confianza es la siguiente:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Registro que requiere permisos adicionales [V2]
Algunos AWS servicios utilizan un método nuevo para enviar sus registros. Se trata de un método flexible que le permite configurar la entrega de registros desde estos servicios a uno o más de los siguientes destinos: CloudWatch Logs, Amazon S3 o Firehose.
La entrega de un registro funcional consta de tres elementos:
Una
DeliverySource
, que es un objeto lógico que representa el recurso que realmente envía los registros.Un
DeliveryDestination
, que es un objeto lógico que representa el destino de entrega real.Un
Delivery
, que conecta un origen de entrega con el destino de la entrega.
Para configurar la entrega de registros entre un AWS servicio compatible y un destino, debe hacer lo siguiente:
Cree una fuente de entrega con PutDeliverySource.
Cree un destino de entrega con PutDeliveryDestination.
Si va a entregar registros entre cuentas, debe utilizarlos PutDeliveryDestinationPolicyen la cuenta de destino para asignar una IAM política al destino. Esta política autoriza la creación de una entrega desde el origen de entrega de la cuenta A hasta el destino de la entrega en la cuenta B. En el caso de las entregas entre cuentas, debe crear manualmente las políticas de permisos.
Cree una entrega combinando exactamente una fuente de entrega y un destino de entrega, utilizando CreateDelivery.
En las siguientes secciones, se brindan detalles de los permisos que debe tener al iniciar sesión para configurar la entrega de registros en cada tipo de destino, mediante el proceso V2. Estos permisos se pueden conceder a un rol de IAM con el que haya iniciado sesión.
importante
Es su responsabilidad eliminar los recursos de entrega de registros después de eliminar el recurso que genera los registros. Para ello, siga estos pasos.
Elimine el
Delivery
mediante la DeleteDeliveryoperación.Elimine el
DeliverySource
mediante la DeleteDeliverySourceoperación.Si lo
DeliveryDestination
asociado alDeliverySource
que acaba de eliminar se usa solo para esto específicoDeliverySource
, puede eliminarlo mediante la DeleteDeliveryDestinationsoperación.
Contenido
Registros enviados a CloudWatch Logs
Permisos de usuario
Para habilitar el envío de CloudWatch registros a Logs, debe iniciar sesión con los siguientes permisos.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:
region
:account-id
:delivery:*", "arn:aws:logs:region
:account-id
:delivery-source:*", "arn:aws:logs:region
:account-id
:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyCWL", "Effect": "Allow", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:region
:account-id
:*" ] } ] }
Política de recursos del grupo de registro
El grupo de registro al que se envían los registros debe tener una política de recursos que incluya determinados permisos. Si el grupo de registros actualmente no tiene una política de recursos y el usuario que configura el registro tiene los logs:PutResourcePolicy
logs:DescribeLogGroups
permisos y los permisos para el grupo de registros, crea AWS automáticamente la siguiente política para él cuando comience a enviar los CloudWatch registros a Logs. logs:DescribeResourcePolicies
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:
us-east-1
:0123456789
:log-group:my-log-group
:log-stream:*" ], "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789
"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1
:0123456789
:*"] } } } ] }
Consideraciones de límite de tamaño de la política de recursos del grupo de registro
Estos servicios deben enumerar cada grupo de registros al que envían registros en la política de recursos, y las políticas de recursos de CloudWatch Logs están limitadas a 5120 caracteres. Un servicio que envía registros a un gran número de grupos de registro podría alcanzar este límite.
Para mitigar esta situación, CloudWatch Logs supervisa el tamaño de las políticas de recursos utilizadas por el servicio que envía los registros y, cuando detecta que una política se acerca al límite de tamaño de 5120 caracteres, CloudWatch Logs activa /aws/vendedlogs/*
automáticamente la política de recursos de ese servicio. Puede comenzar a utilizar grupos de registro con nombres que comiencen por /aws/vendedlogs/
como los destinos de los registros de estos servicios.
Registros enviados a Amazon S3
Permisos de usuario
Para habilitar el envío de registros a Amazon S3, debe iniciar sesión con los siguientes permisos.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:
region
:account-id
:delivery:*", "arn:aws:logs:region
:account-id
:delivery-source:*", "arn:aws:logs:region
:account-id
:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyS3", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::bucket-name" } ] }
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 no tiene actualmente una política de recursos y el usuario que configura el registro tiene los S3:PutBucketPolicy
permisos S3:GetBucketPolicy
y para el bucket, creará AWS automáticamente la siguiente política para él cuando comience a enviar los registros a Amazon S3.
{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "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:0123456789:delivery-source:*"] } } } ] }
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
ello, especifique la lista ARNs del recurso que genera los registros en el formularioarn: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 veas AccessDenied
errores AWS CloudTrail si no se ha concedido el s3:ListBucket
permisodelivery.logs.amazonaws.com
. Para evitar estos errores en sus CloudTrail registros, debe conceder el s3:ListBucket
permiso delivery.logs.amazonaws.com
e incluir Condition
los parámetros que se muestran con el conjunto de s3:GetBucketAcl
permisos 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
Puede proteger los datos de su bucket de Amazon S3 habilitando el cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3) o el cifrado del lado del servidor con una clave almacenada en (SSE-KMS). AWS KMS AWS Key Management Service 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 usar una clave administrada por el cliente, ya que no se admite el uso de una clave administrada en este escenario. AWS Si configura el cifrado con una clave AWS administrada, los registros se entregarán en un formato ilegible.
Cuando utilizas una AWS KMS clave gestionada por el cliente, puedes especificar el nombre de recurso de Amazon (ARN) de la clave gestionada por el cliente al activar el cifrado de buckets. 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 usar una clave administrada por el cliente, ya que no se admite el uso de una clave AWS administrada en este escenario. Cuando utilizas una AWS KMS clave gestionada por el cliente, puedes especificar el nombre de recurso de Amazon (ARN) de la clave gestionada por el cliente al activar el cifrado de buckets. 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
:delivery-source:*"] } } }
Para aws:SourceAccount
, especifique la lista de ID de cuenta para los que se entregan los registros a este bucket. Para aws:SourceArn
ello, especifique la lista ARNs del recurso que genera los registros, en el formularioarn:aws:logs:
. source-region
:source-account-id
:*
Registros enviados a Firehose
Permisos de usuario
Para habilitar el envío de registros a Firehose, debe iniciar sesión con los siguientes permisos.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery", "logs:UpdateDeliveryConfiguration" ], "Resource": [ "arn:aws:logs:
region
:account-id
:delivery:*", "arn:aws:logs:region
:account-id
:delivery-source:*", "arn:aws:logs:region
:account-id
:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeConfigurationTemplates" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyFH", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream" ], "Resource": [ "arn:aws:firehose:region
:account-id
:deliverystream/*" ] }, { "Sid": "CreateServiceLinkedRole", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::account-id
:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery" } ] }
Roles de IAM utilizados para permisos de recursos
Como Firehose no usa políticas de recursos, AWS usa roles de IAM al configurar estos registros para enviarlos a Firehose. AWS crea un rol vinculado a un servicio denominado AWSServiceRoleForLogDelivery. Esta función vinculada al servicio incluye los siguientes permisos.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }
Esta función vinculada al servicio concede permisos para todas las transmisiones de entrega de Firehose que tengan la LogDeliveryEnabled
etiqueta establecida en. true
AWS asigna esta etiqueta al flujo de entrega de destino cuando configuras el registro.
Este rol vinculado a un servicio también tiene una política de confianza que permite que la entidad principal de servicio delivery.logs.amazonaws.com
asuma el rol vinculado al servicio necesario. Esta política de confianza es la siguiente:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Permisos específicos del servicio
Además de los permisos específicos del destino enumerados en las secciones anteriores, algunos servicios requieren una autorización explícita para que los clientes puedan enviar registros desde sus recursos, como medida de seguridad adicional. Autoriza la acción AllowVendedLogDeliveryForResource
en los recursos que ofrecen registros dentro de ese servicio. Para estos servicios, utilice la siguiente política y sustituya service
y por resource-type
los valores correspondientes. Para ver los valores específicos de cada servicio en estos campos, consulte la página de documentación de esos servicios para ver los registros que se ofrecen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ServiceLevelAccessForLogDelivery", "Effect": "Allow", "Action": [ "
service
:AllowVendedLogDeliveryForResource" ], "Resource": "arn:aws:service
:region
:account-id
:resource-type
/*" } ] }
Permisos específicos de la consola
Además de los permisos enumerados en las secciones anteriores, si va a configurar la entrega de registros mediante la consola en lugar de mediante la consola APIs, también necesitará los siguientes permisos adicionales:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLogDeliveryActionsConsoleCWL", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:
111122223333
:log-group:*" ] }, { "Sid": "AllowLogDeliveryActionsConsoleS3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowLogDeliveryActionsConsoleFH", "Effect": "Allow", "Action": [ "firehose:ListDeliveryStreams", "firehose:DescribeDeliveryStream" ], "Resource": [ "*" ] } ] }
Ejemplo de entrega entre cuentas
En este ejemplo, se usan dos cuentas. La cuenta con el recurso generador de registros es la cuenta A, ID:AAAAAAAAAAAA
, y la cuenta con el recurso que consume registros es la cuenta B, ID:. BBBBBBBBBBBB
La cuenta A quiere entregar registros de la base de Amazon Bedrock conocimientos de su cuenta con el ARN arn:aws:bedrock: ::knowledge-base/. region
AAAAAAAAAAAA
XXXXXXXXXX
En este ejemplo, la cuenta A necesita estos permisos:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowVendedLogDeliveryForKnowledgeBase", "Effect": "Allow", "Action": [ "bedrock:AllowVendedLogDeliveryForResource" ], "Resource": "arn:aws:bedrock:
region
:AAAAAAAAAAAA
:knowledge-base/XXXXXXXXXX
" }, { "Sid": "CreateLogDeliveryPermissions", "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:CreateDelivery" ], "Resource": [ "arn:aws:logs:region
:AAAAAAAAAAAA
:delivery-source:*", "arn:aws:logs:region
:AAAAAAAAAAAA
:delivery:*", "arn:aws:logs:region
:BBBBBBBBBBBB
:delivery-destination:*" ] } ] }
Creación de origen de entrega
Para empezar, la cuenta A crea un origen de entrega con su base de conocimientos básica:
aws logs put-delivery-source --name my-delivery-source --log-type APPLICATION_LOGS --resource-arn arn:aws:bedrock:
region
:AAAAAAAAAAAA
:knowledge-base/XXXXXXXXXX
A continuación, la cuenta B debe crear el destino de entrega mediante uno de los siguientes flujos:
Configuración de la entrega a un bucket de Amazon S3
La cuenta B desea recibir los registros en el bucket de S3 con el ARN arn:aws:s3:::amzn-s3-demo-bucket. En este ejemplo, la cuenta B necesitará los siguientes permisos:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PutLogDestinationPermissions", "Effect": "Allow", "Action": [ "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy" ], "Resource": "arn:aws:logs:
region
:BBBBBBBBBBBB
:delivery-destination:*" } ] }
El bucket necesitará los siguientes permisos en su política de bucket:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogsDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/AWSLogs/
AAAAAAAAAAAA
/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["AAAAAAAAAAAA
"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region
:AAAAAAAAAAAA
:delivery-source:my-delivery-source"] } } } ] }
Si el depósito está cifrado con SSE-KMS, asegúrese de que la política de claves tenga los permisos adecuados. AWS KMS Por ejemplo, si la clave de KMS es arn:aws:kms:
, utilice lo siguiente: region
:BBBBBBBBBBBB
:key/X
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLogsGenerateDataKey", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" } "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:
region
:BBBBBBBBBBBB
:key/X
", "Condition": { "StringEquals": { "aws:SourceAccount": ["AAAAAAAAAAAA
"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region
:AAAAAAAAAAAA
:delivery-source:my-delivery-source"] } } } ] }
A continuación, la cuenta B puede crear un destino de entrega con el bucket de S3 como recurso de destino:
aws logs put-delivery-destination --name my-s3-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:s3:::amzn-s3-demo-bucket"
Luego, la cuenta B crea una política de destino de entrega en el destino de entrega recién creado, lo que permitirá a la cuenta A crear un registro de entrega. La política que se añadirá al destino de entrega recién creado es la siguiente:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": { "AWS": "
AAAAAAAAAAAA
" }, "Action": [ "logs:CreateDelivery" ], "Resource": "arn:aws:logs:region
:BBBBBBBBBBBB
:delivery-destination:my-s3-delivery-destination" } ] }
Esta política se guardará en el ordenador de la cuenta B como destination-policy-s3.json
. Para adjuntar este recurso, la cuenta B ejecutará el siguiente comando:
aws logs put-delivery-destination-policy --delivery-destination-name my-s3-delivery-destination --delivery-destination-policy file://destination-policy-s3.json
Por último, la cuenta A crea la entrega, que vincula el origen de entrega de la cuenta A con el destino de la entrega de la cuenta B.
aws logs create-delivery --delivery-source-name my-delivery-source --delivery-destination-arn arn:aws:logs:
region
:BBBBBBBBBBBB
:delivery-destination:my-s3-delivery-destination
Configuración de la entrega a un flujo de Firehose
En este ejemplo, la cuenta B quiere recibir registros en su flujo de Firehose. La transmisión Firehose tiene el siguiente ARN y está configurada para usar el tipo de transmisión de DirectPut entrega:
arn:aws:firehose:
region
:BBBBBBBBBBBB
:deliverystream/X
En este ejemplo, la cuenta B necesita estos permisos:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFirehoseCreateSLR", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::
BBBBBBBBBBBB
:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery", }, { "Sid": "AllowFirehoseTagging", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream" ], "Resource": "arn:aws:firehose:region
:BBBBBBBBBBBB
:deliverystream/X
" }, { "Sid": "AllowFirehoseDeliveryDestination", "Effect": "Allow", "Action": [ "logs:PutDeliveryDestination", "logs:PutDeliveryDestinationPolicy" ], "Resource": "arn:aws:logs:region
:BBBBBBBBBBBB
:delivery-destination:*" } ] }
El flujo de Firehose debe tener la etiqueta LogDeliveryEnabled
configurada en true
.
A continuación, la cuenta B crea un destino de entrega con el flujo de Firehose como recurso de destino:
aws logs put-delivery-destination --name my-fh-delivery-destination --delivery-destination-configuration "destinationResourceArn=arn:aws:firehose:
region
:BBBBBBBBBBBB
:deliverystream/X
"
Luego, la cuenta B crea una política de destino de entrega en el destino de entrega recién creado, lo que permitirá a la cuenta A crear un registro de entrega. La política que se añadirá al destino de entrega recién creado es la siguiente:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDelivery", "Effect": "Allow", "Principal": { "AWS": "
AAAAAAAAAAAA
" }, "Action": [ "logs:CreateDelivery" ], "Resource": "arn:aws:logs:region
:BBBBBBBBBBBB
:delivery-destination:my-fh-delivery-destination" } ] }
Esta política se guardará en el ordenador de la cuenta B como destination-policy-fh.json
. Para adjuntar este recurso, la cuenta B ejecuta el siguiente comando:
aws logs put-delivery-destination-policy --delivery-destination-name my-fh-delivery-destination --delivery-destination-policy file://destination-policy-fh.json
Por último, la cuenta A crea la entrega, que vincula el origen de entrega de la cuenta A con el destino de la entrega de la cuenta B.
aws logs create-delivery --delivery-source-name my-delivery-source --delivery-destination-arn arn:aws:logs:
region
:BBBBBBBBBBBB
:delivery-destination:my-fh-delivery-destination
Prevención de la sustitución confusa entre servicios
El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En AWS, la suplantación de identidad entre servicios puede provocar el confuso problema de un diputado. La suplantación entre servicios puedes producirse cuando un servicio (el servicio que lleva a cabo las llamadas) llama a otro servicio (el servicio al que se llama). El servicio que lleva a cabo las llamadas se puedes manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitarlo, AWS proporciona herramientas que lo ayudan a proteger sus datos para todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta.
Se recomienda utilizar las claves de contexto de condición aws:SourceOrgPaths
global aws:SourceArn
aws:SourceAccount
aws:SourceOrgID
, y las claves de contexto de condición global en las políticas de recursos para limitar los permisos que CloudWatch Logs concede a otro servicio al recurso. Utilice aws:SourceArn
para asociar solo un recurso al acceso entre servicios. Utilice aws:SourceAccount
para permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios. Utilice aws:SourceOrgID
para permitir que cualquier recurso de cuentas dentro de una organización se asocie al uso entre servicios. Utilice aws:SourceOrgPaths
para asociar cualquier recurso de cuentas dentro de una ruta de AWS Organizations al uso entre servicios. Para obtener más información sobre el uso y la comprensión de las rutas, consulte Comprender la ruta de la AWS Organizations entidad.
La forma más eficaz de protegerse contra el problema de la sustitución confusa es utilizar la clave de contexto de condición global de aws:SourceArn
con el ARN completo del recurso. Si no conoce el ARN completo del recurso o si está especificando varios recursos, utilice la clave de condición de contexto global aws:SourceArn
con caracteres comodines (*
) para las partes desconocidas del ARN. Por ejemplo, arn:aws:
. servicename
:*:123456789012
:*
Si el valor de aws:SourceArn
no contiene el ID de cuenta, como un ARN de bucket de Amazon S3, debe utilizar aws:SourceAccount
y aws:SourceArn
para limitar los permisos.
Para protegerse contra el problema del suplente confuso a gran escala, utilice la clave de contexto de condición global aws:SourceOrgID
o aws:SourceOrgPaths
con el identificador de organización o la ruta de organización del recurso en sus políticas basadas en recursos. Las políticas que incluyan la clave aws:SourceOrgID
o aws:SourceOrgPaths
incluirán automáticamente las cuentas correctas y no requerirán una actualización manual cuando se agregan, quitan o mueven cuentas en la organización.
Las políticas de las secciones anteriores de esta página muestran cómo se puede utilizar las claves del contexto de condición global aws:SourceArn
y aws:SourceAccount
para evitar el problema suplente confuso.
CloudWatch Registra las actualizaciones de las políticas AWS gestionadas
Consulta los detalles sobre las actualizaciones de las políticas AWS administradas para CloudWatch los registros desde que este servicio comenzó a rastrear estos cambios. Para recibir alertas automáticas sobre los cambios en esta página, suscríbase a la fuente RSS de la página del historial de documentos de CloudWatch registro.
Cambio | Descripción | Fecha |
---|---|---|
AWSServiceRoleForLogDelivery política de funciones vinculadas al servicio: se actualiza a una política existente |
CloudWatch Los registros cambiaron los permisos de la política de IAM asociada a la AWSServiceRoleForLogDeliveryrol vinculado al servicio. Se realizó el siguiente cambio:
|
15 de julio de 2021 |
CloudWatch Los registros comenzaron a rastrear los cambios |
CloudWatch Los registros empezaron a registrar los cambios de sus políticas AWS gestionadas. |
10 de junio de 2021 |