Exportação de dados de log para o Amazon S3 usando o console. - Amazon CloudWatch Logs

Exportação de dados de log para o Amazon S3 usando o console.

Nos exemplos a seguir, você usará o console do Amazon CloudWatch para exportar todos os dados de um grupo de logs do Amazon CloudWatch Logs chamado my-log-group para um bucket do Amazon S3 chamado my-exported-logs.

Há suporte para a exportação de dados de log para buckets do S3 criptografados por SSE-KMS. Não há suporte para a exportação de buckets do S3 criptografados com DSSE-KMS.

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.

Etapa 1: Crie um bucket do Amazon S3

Recomendamos utilizar 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 Amazon S3 deve residir na mesma região que os dados de log a serem exportados. O CloudWatch Logs não oferece suporte à exportação de dados para buckets do Amazon S3 que estejam em uma região diferente.

Para criar um bucket do Amazon S3
  1. Abra o console do Amazon S3, em https://console.aws.amazon.com/s3/.

  2. Se necessário, altere a região. Na barra de navegação, selecione a região em que seu CloudWatch Logs reside.

  3. Escolha Criar bucket.

  4. Para Bucket Name (Nome do bucket), digite um nome para o bucket.

  5. Em Region (Região), selecione a região onde os dados do CloudWatch Logs residem.

  6. Escolha Criar.

Etapa 2: configurar permissões de acesso

Para criar a tarefa de exportação na etapa 5, você precisará ter feio login com o perfil do IAM AmazonS3ReadOnlyAccess 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:

Etapa 3: Definir permissões em um bucket do Amazon S3

Por padrão, todos os buckets e objetos do Amazon S3 são privados. Somente o proprietário do recurso, o Conta da AWS que criou o bucket pode acessá-lo e quaisquer objetos que ele contenha. 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.

Quando você define a política, é recomendável incluir uma string gerada aleatoriamente como o prefixo para o bucket, para que apenas os streams de log desejados sejam exportados para o bucket.

Importante

Para tornar as exportações para buckets do Amazon 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 do S3.

No exemplo a seguir, a lista de IDs de conta na chave da aws:SourceAccount seriam as contas das quais um usuário pode exportar dados de log para o bucket do Amazon 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 Amazon S3
  1. No console do Amazon S3, escolha o bucket que você criou na etapa 1.

  2. Escolha Permissions (Permissões), Bucket policy (Política de bucket).

  3. No Bucket Policy Editor (Editor de política do bucket), adicione a política a seguir. Altere my-exported-logs para o nome do bucket do S3. Certifique-se de especificar o endpoint correto da região como us-west-1 para a Entidade principal.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCloudWatchLogsGetBucketAcl", "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": [ "123456789012", "111122223333" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:123456789012:log-group:*", "arn:aws:logs:us-east-1:111122223333:log-group:*" ] } } }, { "Sid": "AllowCloudWatchLogsPutObject", "Action": "s3:PutObject", "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "123456789012", "111122223333" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:123456789012:log-group:*", "arn:aws:logs:us-east-1:111122223333:log-group:*" ] } } } ] }
  4. Escolha Salvar para definir a política que você acabou de adicionar como política de acesso em seu bucket. Essa política permite que o CloudWatch Logs exporte dados de log para o seu bucket do Amazon S3. O proprietário do bucket tem permissões completas sobre todos os objetos exportados.

    Atenção

    Se o bucket existente já tiver uma ou mais políticas anexadas, adicione as declarações de acesso do CloudWatch Logs a essas 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 o SSE-KMS

Essa etapa é necessária somente se você estiver exportando para um bucket do Amazon 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
  1. Abra o console do AWS KMS em https://console.aws.amazon.com/kms.

  2. Para alterar a Região da AWS, use o seletor de regiões no canto superior direito da página.

  3. Na barra de navegação esquerdo, escolha Customer managed keys (Chaves gerenciadas pelo cliente).

    Escolha Create Key (Criar chave).

  4. Para Key type (Tipo de chave), escolha Symmetric (Simétrica).

  5. Em Key usage (Uso da chave), escolha Encrypt and decrypt (Criptografar e descriptografar) e, em seguida, escolha Next (Avançar).

  6. Em Add labels (Adicionar rótulos), insira um alias para a chave e, opcionalmente, adicione uma descrição ou tags. Escolha Próximo.

  7. Em Key administrators (Administradores de chaves), selecione quem pode administrar essa chave e escolha Next (Avançar).

  8. Em Define key usage permissions (Definir permissões de uso da chave), não faça alterações e escolha Next (Avançar).

  9. Revise as configurações e escolha Finish (Concluir).

  10. De volta à página Customer managed keys (Chaves gerenciadas pelo cliente), escolha o nome da chave que você acabou de criar.

  11. Na guia Key Policy (Política de chaves), selecione Switch to policy view (Alternar para visualização de política).

  12. Na seção Key policy (Política de chaves), escolha Edit (Editar).

  13. Adicione a declaração a seguir à lista de declarações de política de chaves. Ao fazer isso, substitua Região pela Região dos seus registros e substitua o account-ARN (ARN da conta) pelo ARN da conta que possui a chave KMS.

    JSON
    { "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": "*" } ] }
  14. Selecione Salvar alterações.

  15. Abra o console do Amazon S3, em https://console.aws.amazon.com/s3/.

  16. Encontre o bucket que você criou no Etapa 1: criar um bucket do S3 e escolha o nome do bucket.

  17. Escolha a guia Properties (Propriedades). Em seguida, em Default encryption (Criptografia padrão), escolha Edit (Editar).

  18. Em Server-side encryption (Criptografia no lado do servidor), escolha Enable (Habilitar).

  19. Em Encryption type (Tipo de criptografia), selecione AWS Key Management Service key (SSE-KMS) (Chave do SSE-KMS)).

  20. Escolha Choose from you keys (Escolher entre suas AWS KMS chaves) e encontre a chave que você criou.

  21. Para Bucket key (Chave do bucket), escolha Enable (Habilitar).

  22. Selecione Salvar alterações.

Etapa 5: Criar uma tarefa de exportação

Nesta etapa, você criará a tarefa de exportação para exportar os logs de um grupo de logs.

Para exportar dados para o Amazon S3 usando o console do CloudWatch
  1. Faça login com permissões suficientes, conforme documentado em Etapa 2: configurar permissões de acesso.

  2. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  3. No painel de navegação, escolha Grupos de logs.

  4. Na tela Grupos de logs, escolha o nome do grupo de logs.

  5. Escolha Actions (Ações), Export to Amazon S3 (Exportar para o Amazon S3).

  6. Na tela Export data to Amazon S3 (Exportar dados para o Amazon S3), em Define data export (Definir exportação de dados), defina o período dos dados a serem exportados usando From (De) e To (Até).

  7. Se o seu grupo de logs tiver vários streams de log, você poderá fornecer um prefixo de stream de logs para limitar os dados do grupo de logs para um stream específico. Escolha Advanced (Avançado) e, depois, em Stream prefix (Prefixo do stream), digite o prefixo do stream de logs.

  8. Em Escolher bucket do S3, escolha a conta associada ao bucket do S3.

  9. Em Nome do bucket do S3, escolha um bucket do &S3;.

  10. Em Prefixo do bucket do S3, insira a string gerada aleatoriamente que você especificou na política do bucket.

  11. Escolha Export (Exportar) para exportar seus dados de log para o Amazon S3.

  12. Para visualizar o status dos dados de log exportados para o Amazon S3, escolha Actions (Ações), View all exports to Amazon S3 (Visualizar todas as exportações para o Amazon S3).

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.

Etapa 1: Crie um bucket do Amazon S3

Recomendamos utilizar 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 Amazon S3 deve residir na mesma região que os dados de log a serem exportados. O CloudWatch Logs não oferece suporte à exportação de dados para buckets do Amazon S3 que estejam em uma região diferente.

Para criar um bucket do Amazon S3
  1. Abra o console do Amazon S3, em https://console.aws.amazon.com/s3/.

  2. Se necessário, altere a região. Na barra de navegação, selecione a região em que seu CloudWatch Logs reside.

  3. Escolha Criar bucket.

  4. Para Bucket Name (Nome do bucket), digite um nome para o bucket.

  5. Em Region (Região), selecione a região onde os dados do CloudWatch Logs residem.

  6. Escolha Criar.

Etapa 2: configurar permissões de acesso

Primeiro, é necessário criar uma nova política do IAM para permitir que o CloudWatch Logs tenha a ação s3:PutObject para o bucket do Amazon S3 de destino na conta de destino.

As ações adicionais incluídas na política dependem se o bucket de destino usa criptografia AWS KMS ou tem ACLs habilitadas usando a configuração S3 Object Ownership.

  • Se estiver usando a criptografia KMS, adicione as ações GenerateDataKey e Decrypt ao recurso chave

  • Se as ACLs estiverem habilitadas no bucket, adicione a ação s3:PutObjectAcl ao recurso do bucket.

Para criar uma política do IAM para exportar registros para um bucket do Amazon S3
  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, escolha Políticas.

  3. Escolha Criar política.

  4. Na seção Editor de políticas, escolha JSON.

  5. Se o bucket de destino não usar criptografia do AWS KMS, cole a política a seguir no editor.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-exported-logs/*" } ] }

    Se o bucket de destino usar criptografia do AWS KMS, cole a política a seguir no editor.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ] }
  6. Escolha Próximo.

  7. Insira um nome de política. Você usará esse nome para vincular a política ao seu perfil do IAM.

  8. Escolha Criar política para salvar a nova política.

Para criar a tarefa de exportação na etapa 5, será necessário ter feito login com o perfil do IAM AmazonS3ReadOnlyAccess. Você deverá estar conectado com a política do IAM que acabou de criar 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:

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, o Conta da AWS que criou o bucket pode acessá-lo e quaisquer objetos que ele contenha. 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.

Quando você define a política, é recomendável incluir uma string gerada aleatoriamente como o prefixo para o bucket, para que apenas os streams de log desejados sejam exportados para o bucket.

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 IDs de conta na chave da aws:SourceAccount seriam as contas das quais um usuário pode exportar dados de log para o 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 Amazon S3
  1. No console do Amazon S3, escolha o bucket que você criou na etapa 1.

  2. Escolha Permissions (Permissões), Bucket policy (Política de bucket).

  3. No Bucket Policy Editor (Editor de política do bucket), adicione a política a seguir. Altere my-exported-logs para o nome do bucket do S3. Certifique-se de especificar o endpoint correto da região como us-west-1 para a Entidade principal.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Condition": { "StringEquals": { "aws:SourceAccount": [ "123456789012", "111122223333" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:123456789012:log-group:*", "arn:aws:logs:us-east-1:111122223333:log-group:*" ] } } }, { "Action": "s3:PutObject", "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "123456789012", "111122223333" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:123456789012:log-group:*", "arn:aws:logs:us-east-1:111122223333:log-group:*" ] } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/role_name" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
  4. Escolha Salvar para definir a política que você acabou de adicionar como política de acesso em seu bucket. Essa política permite que o CloudWatch Logs exporte dados de log para o seu bucket do S3. O proprietário do bucket tem permissões completas sobre todos os objetos exportados.

    Atenção

    Se o bucket existente já tiver uma ou mais políticas anexadas, adicione as declarações de acesso do CloudWatch Logs a essas 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 o SSE-KMS

Essa etapa é necessária somente se você estiver exportando para um bucket 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
  1. Abra o console do AWS KMS em https://console.aws.amazon.com/kms.

  2. Para alterar a Região da AWS, use o seletor de regiões no canto superior direito da página.

  3. Na barra de navegação esquerdo, escolha Customer managed keys (Chaves gerenciadas pelo cliente).

    Escolha Create Key (Criar chave).

  4. Para Key type (Tipo de chave), escolha Symmetric (Simétrica).

  5. Em Key usage (Uso da chave), escolha Encrypt and decrypt (Criptografar e descriptografar) e, em seguida, escolha Next (Avançar).

  6. Em Add labels (Adicionar rótulos), insira um alias para a chave e, opcionalmente, adicione uma descrição ou tags. Escolha Próximo.

  7. Em Key administrators (Administradores de chaves), selecione quem pode administrar essa chave e escolha Next (Avançar).

  8. Em Define key usage permissions (Definir permissões de uso da chave), não faça alterações e escolha Next (Avançar).

  9. Revise as configurações e escolha Finish (Concluir).

  10. De volta à página Customer managed keys (Chaves gerenciadas pelo cliente), escolha o nome da chave que você acabou de criar.

  11. Na guia Key Policy (Política de chaves), selecione Switch to policy view (Alternar para visualização de política).

  12. Na seção Key policy (Política de chaves), escolha Edit (Editar).

  13. Adicione a declaração a seguir à lista de declarações de política de chaves. Ao fazer isso, substitua Região pela Região dos seus registros e substitua o account-ARN (ARN da conta) pelo ARN da conta que possui a chave KMS.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "Allow CWL Service Principal usage", "Effect": "Allow", "Principal": { "Service": "logs.us-east-1.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::111122223333:role/role_name" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id" } ] }
  14. Selecione Salvar alterações.

  15. Abra o console do Amazon S3, em https://console.aws.amazon.com/s3/.

  16. Encontre o bucket que você criou no Etapa 1: criar um bucket do S3 e escolha o nome do bucket.

  17. Escolha a guia Properties (Propriedades). Em seguida, em Default encryption (Criptografia padrão), escolha Edit (Editar).

  18. Em Server-side encryption (Criptografia no lado do servidor), escolha Enable (Habilitar).

  19. Em Encryption type (Tipo de criptografia), selecione AWS Key Management Service key (SSE-KMS) (Chave do SSE-KMS)).

  20. Escolha Choose from you keys (Escolher entre suas AWS KMS chaves) e encontre a chave que você criou.

  21. Para Bucket key (Chave do bucket), escolha Enable (Habilitar).

  22. Selecione Salvar alterações.

Etapa 5: Criar uma tarefa de exportação

Nesta etapa, você criará a tarefa de exportação para exportar os logs de um grupo de logs.

Para exportar dados para o Amazon S3 usando o console do CloudWatch
  1. Faça login com permissões suficientes, conforme documentado em Etapa 2: configurar permissões de acesso.

  2. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  3. No painel de navegação, escolha Grupos de logs.

  4. Na tela Grupos de logs, escolha o nome do grupo de logs.

  5. Escolha Actions (Ações), Export to Amazon S3 (Exportar para o Amazon S3).

  6. Na tela Export data to Amazon S3 (Exportar dados para o Amazon S3), em Define data export (Definir exportação de dados), defina o período dos dados a serem exportados usando From (De) e To (Até).

  7. Se o seu grupo de logs tiver vários streams de log, você poderá fornecer um prefixo de stream de logs para limitar os dados do grupo de logs para um stream específico. Escolha Advanced (Avançado) e, depois, em Stream prefix (Prefixo do stream), digite o prefixo do stream de logs.

  8. Em Escolher bucket do S3, escolha a conta associada ao bucket do S3.

  9. Em Nome do bucket do S3, escolha um bucket do S3.

  10. Em Prefixo do bucket do S3, insira a string gerada aleatoriamente que você especificou na política do bucket.

  11. Escolha Export (Exportar) para exportar seus dados de log para o Amazon S3.

  12. Para visualizar o status dos dados de log exportados para o Amazon S3, escolha Actions (Ações), View all exports to Amazon S3 (Visualizar todas as exportações para o Amazon S3).