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.
Exporte los datos de registro a Amazon S3 mediante AWS CLI
En el siguiente ejemplo, utiliza una tarea de exportación para exportar todos los datos de un grupo de CloudWatch registros denominado Logs my-log-group
a un bucket de Amazon S3 denominadomy-exported-logs
. En este ejemplo se presupone que ya ha creado un grupo denominado my-log-group
.
Se admite la exportación de datos de registro a buckets de S3 cifrados mediante AWS KMS . No se admite la exportación a depósitos cifrados con DSSE -KMS.
Los detalles de cómo configurar la exportación dependen de si el bucket de Amazon S3 al que desea exportar está en la misma cuenta que los registros que se están exportando o en una diferente.
Exportación en la misma cuenta
Si el bucket de Amazon S3 está en la misma cuenta que los registros que se exportan, siga las instrucciones de esta sección.
Temas
Paso 1: crear un bucket de S3
Le recomendamos que utilice un depósito que se haya creado específicamente para CloudWatch los registros. Sin embargo, si desea utilizar un bucket existente, puede pasar al paso 2.
nota
El depósito de S3 debe residir en la misma región que los datos de registro que se van a exportar. CloudWatch Los registros no admiten la exportación de datos a depósitos de S3 en una región diferente.
Para crear un bucket de S3 mediante el AWS CLI
En el símbolo del sistema, ejecute el siguiente comando create-bucket, donde LocationConstraint
es la región en la que se exportan los datos de registro.
aws s3api create-bucket --bucket
my-exported-logs
--create-bucket-configuration LocationConstraint=us-east-2
A continuación, se muestra un ejemplo del resultado.
{ "Location": "/
my-exported-logs
" }
Paso 2: Configurar los permisos de acceso
Para crear la tarea de exportación en el paso 5, tendrás que iniciar sesión con el AmazonS3ReadOnlyAccess
IAM rol y con los siguientes permisos:
logs:CreateExportTask
logs:CancelExportTask
logs:DescribeExportTasks
logs:DescribeLogStreams
logs:DescribeLogGroups
Para dar acceso, agregue permisos a los usuarios, grupos o roles:
-
Usuarios y grupos en AWS IAM Identity Center:
Cree un conjunto de permisos. Siga las instrucciones de Creación de un conjunto de permisos en la Guía del usuario de AWS IAM Identity Center .
-
Usuarios gestionados IAM a través de un proveedor de identidad:
Cree un rol para la federación de identidades. Siga las instrucciones de la Guía del IAM usuario sobre cómo crear un rol para un proveedor de identidades externo (federación).
-
IAMusuarios:
-
Cree un rol que el usuario pueda aceptar. Siga las instrucciones de la Guía del IAMusuario sobre cómo crear un rol para un IAM usuario.
-
(No recomendado) Adjunte una política directamente a un usuario o añada un usuario a un grupo de usuarios. Siga las instrucciones de Añadir permisos a un usuario (consola) de la Guía del IAM usuario.
-
Paso 3: definir permisos en un bucket de S3
De forma predeterminada, los buckets y los objetos de S3 son privados. Solo el propietario del recurso y la cuenta que creó el bucket pueden tener acceso a ese bucket y a los objetos que contiene. No obstante, el propietario del recurso puede elegir conceder permisos de acceso a otros recursos y usuarios escribiendo una política de acceso.
importante
Para que las exportaciones a los buckets de S3 sean más seguras, ahora debe especificar la lista de cuentas de origen que pueden exportar datos de registro a su bucket de S3.
En el siguiente ejemplo, la lista de cuentas IDs de la aws:SourceAccount
clave serían las cuentas desde las que un usuario puede exportar los datos de registro a su bucket de S3. La clave aws:SourceArn
sería el recurso para el que se está tomando la acción. Puede restringirla a un grupo de registro específico o utilizar un comodín como se muestra en este ejemplo.
Le recomendamos que también incluya el ID de cuenta de la cuenta en la que se creó el bucket de S3 para permitir la exportación dentro de la misma cuenta.
Para definir permisos en un bucket de S3
-
Cree un archivo denominado
policy.json
y agregue la siguiente política de acceso, cambiandomy-exported-logs
por el nombre de su bucket de S3 yPrincipal
por el punto de conexión de la región a la que va a exportar los datos de registro, comous-west-1
. Utilice un editor de texto para crear este archivo de política. No utilice la consola de IAM.{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::
my-exported-logs
", "Principal": { "Service": "logs.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:::my-exported-logs
/*", "Principal": { "Service": "logs.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:*", ... ] } } } ] } -
Defina la política que acaba de añadir como política de acceso a su bucket mediante el put-bucket-policycomando. Esta política permite a CloudWatch Logs exportar los datos de registro a su bucket de S3. El propietario del bucket tendrá permisos completos en todos los objetos exportados.
aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json
aviso
Si el bucket existente ya tiene una o más políticas asociadas, añada las instrucciones para que CloudWatch Logs acceda a esa política o políticas. Le recomendamos que evalúe el conjunto de permisos resultante para asegurarse de que sean adecuados para los usuarios que van a tener acceso al bucket.
(Opcional) Paso 4: Exportar a un depósito cifrado con SSE - KMS
Este paso solo es necesario si va a exportar a un bucket de S3 que utilice el cifrado del lado del servidor con. AWS KMS keys Este cifrado se conoce como SSE -. KMS
Para exportar a un depósito cifrado con SSE - KMS
-
Utilice un editor de texto para crear un archivo denominado
key_policy.json
y agregue la siguiente política de acceso. Al agregar la política, realice los siguientes cambios:-
Region
Sustitúyalo por la región de tus registros. -
account-ARN
ARNSustitúyala por la de la cuenta propietaria de la KMS clave.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CWL Service Principal usage", "Effect": "Allow", "Principal": { "Service": "logs.
Region
.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "account-ARN
" }, "Action": [ "kms:GetKeyPolicy*", "kms:PutKeyPolicy*", "kms:DescribeKey*", "kms:CreateAlias*", "kms:ScheduleKeyDeletion*", "kms:Decrypt" ], "Resource": "*" } ] } -
-
Escriba el siguiente comando:
aws kms create-key --policy file://key_policy.json
A continuación, se muestra un ejemplo de salida de este comando:
{ "KeyMetadata": { "AWSAccountId": "
account_id
", "KeyId": "key_id
", "Arn": "arn:aws:kms:us-east-2:account_id
:key/key_id
", "CreationDate": "time
", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } -
Utilice un editor de texto para crear un archivo denominado
bucketencryption.json
con los siguientes contenidos.{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] }
-
Introduzca el siguiente comando y
bucket-name
sustitúyalo por el nombre del depósito al que va a exportar los registros.aws s3api put-bucket-encryption --bucket
bucket-name
--server-side-encryption-configuration file://bucketencryption.jsonSi el comando no devuelve ningún error, el proceso se ha realizado correctamente.
Paso 5: crear una tarea de exportación
Utilice el siguiente comando para crear la política. Después de crearla, la tarea de exportación podría llevar de unos segundos a unas horas, en función del tamaño de los datos que se van a exportar.
Para exportar datos a Amazon S3 mediante el AWS CLI
-
Inicie sesión con los permisos necesarios, tal y como se indica en Paso 2: Configurar los permisos de acceso.
-
En una línea de comandos, utilice el siguiente create-export-taskcomando para crear la tarea de exportación.
aws logs create-export-task --profile CWLExportUser --task-name "
my-log-group-09-10-2015
" --log-group-name "my-log-group
" --from1441490400000
--to1441494000000
--destination "my-exported-logs
" --destination-prefix "export-task-output
"A continuación, se muestra un ejemplo del resultado.
{ "taskId": "
cda45419-90ea-4db5-9833-aade86253e66
" }
Exportación entre cuentas
Si el bucket de Amazon S3 está en una cuenta diferente a la de los registros que se exportan, siga las instrucciones de esta sección.
Temas
Paso 1: crear un bucket de S3
Le recomendamos que utilice un depósito que se haya creado específicamente para CloudWatch los registros. Sin embargo, si desea utilizar un bucket existente, puede pasar al paso 2.
nota
El depósito de S3 debe residir en la misma región que los datos de registro que se van a exportar. CloudWatch Los registros no admiten la exportación de datos a depósitos de S3 en una región diferente.
Para crear un bucket de S3 mediante el AWS CLI
En el símbolo del sistema, ejecute el siguiente comando create-bucket, donde LocationConstraint
es la región en la que se exportan los datos de registro.
aws s3api create-bucket --bucket
my-exported-logs
--create-bucket-configuration LocationConstraint=us-east-2
A continuación, se muestra un ejemplo del resultado.
{ "Location": "/
my-exported-logs
" }
Paso 2: Configurar los permisos de acceso
En primer lugar, debe crear una nueva IAM política para permitir que CloudWatch Logs tenga el s3:PutObject
permiso para el bucket de Amazon S3 de destino.
Para crear la tarea de exportación en el paso 5, tendrás que iniciar sesión con el AmazonS3ReadOnlyAccess
IAM rol y algunos otros permisos. Puede crear una política que contenga algunos de estos otros permisos necesarios.
La política que cree depende de si el depósito de destino utiliza el AWS KMS cifrado. Si no utiliza el AWS KMS cifrado, cree una política con el siguiente contenido.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
my-exported-logs
/*" } ] }
Si el depósito de destino usa AWS KMS cifrado, cree una política con el siguiente contenido.
{ "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
" } ] }
Para crear la tarea de exportación en el paso 5, debe iniciar sesión con el AmazonS3ReadOnlyAccess
IAM rol, la IAM política que acaba de crear y también con los siguientes permisos:
logs:CreateExportTask
logs:CancelExportTask
logs:DescribeExportTasks
logs:DescribeLogStreams
logs:DescribeLogGroups
Para dar acceso, agregue permisos a los usuarios, grupos o roles:
-
Usuarios y grupos en AWS IAM Identity Center:
Cree un conjunto de permisos. Siga las instrucciones de Creación de un conjunto de permisos en la Guía del usuario de AWS IAM Identity Center .
-
Usuarios gestionados IAM a través de un proveedor de identidad:
Cree un rol para la federación de identidades. Siga las instrucciones de la Guía del IAM usuario sobre cómo crear un rol para un proveedor de identidades externo (federación).
-
IAMusuarios:
-
Cree un rol que el usuario pueda aceptar. Siga las instrucciones de la Guía del IAMusuario sobre cómo crear un rol para un IAM usuario.
-
(No recomendado) Adjunte una política directamente a un usuario o añada un usuario a un grupo de usuarios. Siga las instrucciones de Añadir permisos a un usuario (consola) de la Guía del IAM usuario.
-
Paso 3: definir permisos en un bucket de S3
De forma predeterminada, los buckets y los objetos de S3 son privados. Solo el propietario del recurso y la cuenta que creó el bucket pueden tener acceso a ese bucket y a los objetos que contiene. No obstante, el propietario del recurso puede elegir conceder permisos de acceso a otros recursos y usuarios escribiendo una política de acceso.
importante
Para que las exportaciones a los buckets de S3 sean más seguras, ahora debe especificar la lista de cuentas de origen que pueden exportar datos de registro a su bucket de S3.
En el siguiente ejemplo, la lista de cuentas IDs de la aws:SourceAccount
clave serían las cuentas desde las que un usuario puede exportar los datos de registro a su bucket de S3. La clave aws:SourceArn
sería el recurso para el que se está tomando la acción. Puede restringirla a un grupo de registro específico o utilizar un comodín como se muestra en este ejemplo.
Le recomendamos que también incluya el ID de cuenta de la cuenta en la que se creó el bucket de S3 para permitir la exportación dentro de la misma cuenta.
Para definir permisos en un bucket de S3
-
Cree un archivo denominado
policy.json
y agregue la siguiente política de acceso, cambiandomy-exported-logs
por el nombre de su bucket de S3 yPrincipal
por el punto de conexión de la región a la que va a exportar los datos de registro, comous-west-1
. Utilice un editor de texto para crear este archivo de política. No utilice la consola de IAM.{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::
my-exported-logs
", "Principal": { "Service": "logs.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:::my-exported-logs
/*", "Principal": { "Service": "logs.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:::my-exported-logs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] } -
Defina la política que acaba de añadir como política de acceso a su bucket mediante el put-bucket-policycomando. Esta política permite a CloudWatch Logs exportar los datos de registro a su bucket de S3. El propietario del bucket tendrá permisos completos en todos los objetos exportados.
aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json
aviso
Si el bucket existente ya tiene una o más políticas asociadas, añada las instrucciones para que CloudWatch Logs acceda a esa política o políticas. Le recomendamos que evalúe el conjunto de permisos resultante para asegurarse de que sean adecuados para los usuarios que van a tener acceso al bucket.
(Opcional) Paso 4: Exportar a un depósito cifrado con SSE - KMS
Este paso solo es necesario si va a exportar a un bucket de S3 que utilice el cifrado del lado del servidor con. AWS KMS keys Este cifrado se conoce como SSE -. KMS
Para exportar a un depósito cifrado con SSE - KMS
-
Utilice un editor de texto para crear un archivo denominado
key_policy.json
y agregue la siguiente política de acceso. Al agregar la política, realice los siguientes cambios:-
Region
Sustitúyalo por la región de tus registros. -
account-ARN
ARNSustitúyala por la de la cuenta propietaria de la KMS clave.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CWL Service Principal usage", "Effect": "Allow", "Principal": { "Service": "logs.
Region
.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "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
" } ] } -
-
Escriba el siguiente comando:
aws kms create-key --policy file://key_policy.json
A continuación, se muestra un ejemplo de salida de este comando:
{ "KeyMetadata": { "AWSAccountId": "
account_id
", "KeyId": "key_id
", "Arn": "arn:aws:kms:us-east-2:account_id
:key/key_id
", "CreationDate": "time
", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } -
Utilice un editor de texto para crear un archivo denominado
bucketencryption.json
con los siguientes contenidos.{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] }
-
Introduzca el siguiente comando y
bucket-name
sustitúyalo por el nombre del depósito al que va a exportar los registros.aws s3api put-bucket-encryption --bucket
bucket-name
--server-side-encryption-configuration file://bucketencryption.jsonSi el comando no devuelve ningún error, el proceso se ha realizado correctamente.
Paso 5: crear una tarea de exportación
Utilice el siguiente comando para crear la política. Después de crearla, la tarea de exportación podría llevar de unos segundos a unas horas, en función del tamaño de los datos que se van a exportar.
Para exportar datos a Amazon S3 mediante el AWS CLI
-
Inicie sesión con los permisos necesarios, tal y como se indica en Paso 2: Configurar los permisos de acceso.
-
En una línea de comandos, utilice el siguiente create-export-taskcomando para crear la tarea de exportación.
aws logs create-export-task --profile CWLExportUser --task-name "
my-log-group-09-10-2015
" --log-group-name "my-log-group
" --from1441490400000
--to1441494000000
--destination "my-exported-logs
" --destination-prefix "export-task-output
"A continuación, se muestra un ejemplo del resultado.
{ "taskId": "
cda45419-90ea-4db5-9833-aade86253e66
" }