As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Exporte dados de log para o Amazon S3 usando o AWS CLI
No exemplo a seguir, você usa uma tarefa de exportação para exportar todos os dados de um grupo de CloudWatch logs de registros chamado my-log-group
para um bucket do Amazon S3 chamado. my-exported-logs
Este exemplo pressupõe que você já tenha criado um grupo de logs denominado my-log-group
.
Há suporte para a exportação de dados de log para buckets do S3 que são criptografados pelo AWS KMS . A exportação para buckets criptografados com DSSE - não KMS é suportada.
Os detalhes de como configurar a exportação dependem se o bucket do Amazon S3 para o qual você deseja exportar está na mesma conta que os logs que estão sendo exportados ou em uma conta diferente.
Exportação para a mesma conta
Se o bucket do Amazon S3 estiver na mesma conta dos logs que estão sendo exportados, use as instruções nesta seção.
Tópicos
Etapa 1: criar um bucket do S3
Recomendamos que você use um bucket criado especificamente para o CloudWatch Logs. No entanto, se você desejar usar um bucket existente, vá para a etapa 2.
nota
O bucket do S3 deve residir na mesma região dos dados de log a serem exportados. CloudWatch O Logs não oferece suporte à exportação de dados para buckets do S3 em uma região diferente.
Para criar um bucket S3 usando o AWS CLI
Em um prompt de comando, execute o seguinte comando create-bucket, em que LocationConstraint
é a região onde você está exportando dados de log.
aws s3api create-bucket --bucket
my-exported-logs
--create-bucket-configuration LocationConstraint=us-east-2
O seguinte é um exemplo de saída.
{ "Location": "/
my-exported-logs
" }
Etapa 2: configurar permissões de acesso
Para criar a tarefa de exportação na etapa 5, você precisará estar conectado com a AmazonS3ReadOnlyAccess
IAM função e com as seguintes permissões:
logs:CreateExportTask
logs:CancelExportTask
logs:DescribeExportTasks
logs:DescribeLogStreams
logs:DescribeLogGroups
Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:
-
Usuários e grupos em AWS IAM Identity Center:
Crie um conjunto de permissões. Siga as instruções em Criação de um conjunto de permissões no Guia do usuário do AWS IAM Identity Center .
-
Usuários gerenciados IAM por meio de um provedor de identidade:
Crie um perfil para a federação de identidades. Siga as instruções em Criar uma função para um provedor de identidade terceirizado (federação) no Guia IAM do usuário.
-
IAMusuários:
-
Crie um perfil que seu usuário possa assumir. Siga as instruções em Criar uma função para um IAM usuário no Guia do IAM usuário.
-
(Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em Adicionar permissões a um usuário (console) no Guia do IAM usuário.
-
Etapa 3: Definir permissões em um bucket do S3.
Por padrão, todos os buckets e objetos do S3 são privados. Somente o proprietário do recurso e a conta que criou o bucket podem acessar o bucket e todos os objetos que ele contém. No entanto, o proprietário do recurso pode optar por conceder permissões de acesso a outros recursos e usuários ao criar uma política de acesso padrão.
Importante
Para tornar as exportações para buckets S3 mais seguras, agora exigimos que você especifique a lista de contas de origem que têm permissão para exportar dados de log para seu bucket S3.
No exemplo a seguir, a lista de contas IDs na aws:SourceAccount
chave seriam as contas das quais um usuário pode exportar dados de log para seu bucket do S3. A chave aws:SourceArn
seria o recurso para o qual a ação está sendo realizada. Você pode restringir isso a um grupo de logs específico ou usar um curinga, como mostrado neste exemplo.
Recomendamos que você inclua também o ID da conta na qual o bucket do S3 foi criado para permitir a exportação dentro da mesma conta.
Para definir permissões em um bucket do S3.
-
Crie um arquivo denominado
policy.json
e adicione a seguinte política de acesso, alterandomy-exported-logs
para o nome do bucket do S3 ePrincipal
para o endpoint da região na qual você está exportando dados de log, como, por exemplo,us-west-1
. Use um editor de texto para criar este arquivo de política. Não use o console do 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 a política que você acabou de adicionar como política de acesso no seu bucket usando o put-bucket-policycomando. Essa política permite que o CloudWatch Logs exporte dados de log para seu bucket do S3. O proprietário do bucket terá permissões completas sobre todos os objetos exportados.
aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json
Atenção
Se o bucket existente já tiver uma ou mais políticas anexadas, adicione as instruções de acesso de CloudWatch registros a essa política ou políticas. Recomendamos avaliar o conjunto resultante de permissões para ter certeza de que elas são apropriadas para os usuários que acessarão o bucket.
(Opcional) Etapa 4: exportar para um bucket criptografado com SSE - KMS
Essa etapa é necessária somente se você estiver exportando para um bucket do S3 que usa criptografia do lado do servidor com. AWS KMS keys Essa criptografia é conhecida como SSE -KMS.
Para exportar para um bucket criptografado com SSE - KMS
-
Use um editor de texto para criar um arquivo chamado
key_policy.json
e adicione a seguinte política de acesso. Ao adicionar a política, faça as seguintes alterações:-
Substituir
Region
com a região dos seus registros. -
Substituir
account-ARN
com a ARN da conta que possui a KMS chave.
{ "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": "*" } ] } -
-
Digite o comando :
aws kms create-key --policy file://key_policy.json
A seguir está um exemplo de saída deste 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 } -
Use um editor de texto para criar um arquivo chamado
bucketencryption.json
com o seguinte conteúdo:{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] }
-
Digite o comando a seguir, substituindo
bucket-name
com o nome do bucket para o qual você está exportando registros.aws s3api put-bucket-encryption --bucket
bucket-name
--server-side-encryption-configuration file://bucketencryption.jsonSe o comando não retornar um erro, o processo foi bem-sucedido.
Etapa 5: Criar uma tarefa de exportação
Use o comando a seguir para criar a tarefa de exportação. Depois de criada, a tarefa de exportação pode levar de alguns segundos a algumas horas, dependendo do tamanho dos dados a serem exportados.
Para exportar dados para o Amazon S3 usando o AWS CLI
-
Faça login com permissões suficientes, conforme documentado em Etapa 2: configurar permissões de acesso.
-
Em um prompt de comando, use o create-export-taskcomando a seguir para criar a tarefa de exportação.
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
"O seguinte é um exemplo de saída.
{ "taskId": "
cda45419-90ea-4db5-9833-aade86253e66
" }
Exportação entre contas
Se o bucket do Amazon S3 estiver em uma conta diferente da conta dos logs que estão sendo exportados, use as instruções nesta seção.
Tópicos
Etapa 1: criar um bucket do S3
Recomendamos que você use um bucket criado especificamente para o CloudWatch Logs. No entanto, se você desejar usar um bucket existente, vá para a etapa 2.
nota
O bucket do S3 deve residir na mesma região dos dados de log a serem exportados. CloudWatch O Logs não oferece suporte à exportação de dados para buckets do S3 em uma região diferente.
Para criar um bucket S3 usando o AWS CLI
Em um prompt de comando, execute o seguinte comando create-bucket, em que LocationConstraint
é a região onde você está exportando dados de log.
aws s3api create-bucket --bucket
my-exported-logs
--create-bucket-configuration LocationConstraint=us-east-2
O seguinte é um exemplo de saída.
{ "Location": "/
my-exported-logs
" }
Etapa 2: configurar permissões de acesso
Primeiro, você deve criar uma nova IAM política para permitir que CloudWatch os Logs tenham a s3:PutObject
permissão para o bucket Amazon S3 de destino.
Para criar a tarefa de exportação na etapa 5, você precisará estar conectado com a AmazonS3ReadOnlyAccess
IAM função e com algumas outras permissões. Você pode criar uma política que contenha algumas dessas outras permissões necessárias.
A política que você cria depende se o bucket de destino usa AWS KMS criptografia. Se não usar AWS KMS criptografia, crie uma política com o conteúdo a seguir.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
my-exported-logs
/*" } ] }
Se o bucket de destino usar AWS KMS criptografia, crie uma política com o conteúdo a seguir.
{ "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 criar a tarefa de exportação na etapa 5, você deve estar conectado com a AmazonS3ReadOnlyAccess
IAM função, a IAM política que acabou de criar e também com as seguintes permissões:
logs:CreateExportTask
logs:CancelExportTask
logs:DescribeExportTasks
logs:DescribeLogStreams
logs:DescribeLogGroups
Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:
-
Usuários e grupos em AWS IAM Identity Center:
Crie um conjunto de permissões. Siga as instruções em Criação de um conjunto de permissões no Guia do usuário do AWS IAM Identity Center .
-
Usuários gerenciados IAM por meio de um provedor de identidade:
Crie um perfil para a federação de identidades. Siga as instruções em Criar uma função para um provedor de identidade terceirizado (federação) no Guia IAM do usuário.
-
IAMusuários:
-
Crie um perfil que seu usuário possa assumir. Siga as instruções em Criar uma função para um IAM usuário no Guia do IAM usuário.
-
(Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em Adicionar permissões a um usuário (console) no Guia do IAM usuário.
-
Etapa 3: Definir permissões em um bucket do S3.
Por padrão, todos os buckets e objetos do S3 são privados. Somente o proprietário do recurso e a conta que criou o bucket podem acessar o bucket e todos os objetos que ele contém. No entanto, o proprietário do recurso pode optar por conceder permissões de acesso a outros recursos e usuários ao criar uma política de acesso padrão.
Importante
Para tornar as exportações para buckets S3 mais seguras, agora exigimos que você especifique a lista de contas de origem que têm permissão para exportar dados de log para seu bucket S3.
No exemplo a seguir, a lista de contas IDs na aws:SourceAccount
chave seriam as contas das quais um usuário pode exportar dados de log para seu bucket do S3. A chave aws:SourceArn
seria o recurso para o qual a ação está sendo realizada. Você pode restringir isso a um grupo de logs específico ou usar um curinga, como mostrado neste exemplo.
Recomendamos que você inclua também o ID da conta na qual o bucket do S3 foi criado para permitir a exportação dentro da mesma conta.
Para definir permissões em um bucket do S3.
-
Crie um arquivo denominado
policy.json
e adicione a seguinte política de acesso, alterandomy-exported-logs
para o nome do bucket do S3 ePrincipal
para o endpoint da região na qual você está exportando dados de log, como, por exemplo,us-west-1
. Use um editor de texto para criar este arquivo de política. Não use o console do 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 a política que você acabou de adicionar como política de acesso no seu bucket usando o put-bucket-policycomando. Essa política permite que o CloudWatch Logs exporte dados de log para seu bucket do S3. O proprietário do bucket terá permissões completas sobre todos os objetos exportados.
aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json
Atenção
Se o bucket existente já tiver uma ou mais políticas anexadas, adicione as instruções de acesso de CloudWatch registros a essa política ou políticas. Recomendamos avaliar o conjunto resultante de permissões para ter certeza de que elas são apropriadas para os usuários que acessarão o bucket.
(Opcional) Etapa 4: exportar para um bucket criptografado com SSE - KMS
Essa etapa é necessária somente se você estiver exportando para um bucket do S3 que usa criptografia do lado do servidor com. AWS KMS keys Essa criptografia é conhecida como SSE -KMS.
Para exportar para um bucket criptografado com SSE - KMS
-
Use um editor de texto para criar um arquivo chamado
key_policy.json
e adicione a seguinte política de acesso. Ao adicionar a política, faça as seguintes alterações:-
Substituir
Region
com a região dos seus registros. -
Substituir
account-ARN
com a ARN da conta que possui a KMS chave.
{ "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
" } ] } -
-
Digite o comando :
aws kms create-key --policy file://key_policy.json
A seguir está um exemplo de saída deste 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 } -
Use um editor de texto para criar um arquivo chamado
bucketencryption.json
com o seguinte conteúdo:{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "{KMS Key ARN}" }, "BucketKeyEnabled": true } ] }
-
Digite o comando a seguir, substituindo
bucket-name
com o nome do bucket para o qual você está exportando registros.aws s3api put-bucket-encryption --bucket
bucket-name
--server-side-encryption-configuration file://bucketencryption.jsonSe o comando não retornar um erro, o processo foi bem-sucedido.
Etapa 5: Criar uma tarefa de exportação
Use o comando a seguir para criar a tarefa de exportação. Depois de criada, a tarefa de exportação pode levar de alguns segundos a algumas horas, dependendo do tamanho dos dados a serem exportados.
Para exportar dados para o Amazon S3 usando o AWS CLI
-
Faça login com permissões suficientes, conforme documentado em Etapa 2: configurar permissões de acesso.
-
Em um prompt de comando, use o create-export-taskcomando a seguir para criar a tarefa de exportação.
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
"O seguinte é um exemplo de saída.
{ "taskId": "
cda45419-90ea-4db5-9833-aade86253e66
" }