Logs enviados ao Amazon S3
Quando você define que os logs sejam enviados para o Amazon S3, a AWS cria ou altera as políticas de recursos associadas ao bucket do S3 que está recebendo os logs, se necessário.
Os logs publicados diretamente no Amazon S3 são publicados em um bucket especificado por você. Um ou mais arquivos de log são criados a cada cinco minutos no bucket especificado.
Quando você entrega logs a um bucket do Amazon S3 pela primeira vez, o serviço que entrega logs registra o proprietário do bucket para garantir que os logs sejam entregues somente a um bucket pertencente a essa conta. Consequentemente, para alterar o proprietário do bucket do Amazon S3, é necessário recriar ou atualizar a assinatura de log no serviço de origem.
nota
O CloudFront usa um modelo de permissões diferente dos outros serviços que enviam os logs vendidos para o S3. Para obter mais informações, consulte Permissões necessárias para configurar o registro padrão e acessar seus arquivos de log.
Além disso, se você usar o mesmo bucket do S3 para os logs de acesso do CloudFront e outra fonte de logs, habilitar uma ACL no bucket para o CloudFront também concederá permissão a todas as outras fontes de logs que usam esse bucket.
Importante
Se você for enviar logs para um bucket do Amazon S3 e a política do bucket contiver um elemento NotAction ou NotPrincipal, adicionar automaticamente permissões de entrega de logs ao bucket e criar uma assinatura de log não funcionará. Para criar uma assinatura de logs com sucesso, você precisa adicionar manualmente as permissões de entrega de logs à política do bucket e depois criar a assinatura de logs. Para obter mais informações, consulte as instruções desta seção.
Se o bucket tiver criptografia no servidor usando uma chave do AWS KMS gerenciada pelo cliente, você também deverá adicionar a política de chaves para a sua chave gerenciada pelo cliente. Para obter mais informações, consulte Amazon S3.
Se o bucket de destino tiver SSE-KMS e uma chave de bucket ativados, a política de chave KMS gerenciada pelo cliente anexada não funcionará mais conforme o esperado para todas as solicitações. Para obter mais informações, consulte Reduzir o custo da SSE-KMS usando chaves de bucket do Amazon S3.
Se você estiver usando logs fornecidos e criptografia S3 com uma chave AWS KMS gerenciada pelo cliente, deverá usar um ARN de chave AWS KMS totalmente qualificado em vez de um ID de chave ao configurar o bucket. Para obter mais informações, consulte Criptografia do bucket PUT.
Permissões de usuário
Para poder configurar o envio de qualquer um desses tipos de logs ao Amazon S3 pela primeira vez, é necessário conectar-se a uma conta com as permissões a seguir.
-
logs:CreateLogDelivery -
S3:GetBucketPolicy -
S3:PutBucketPolicy
Se algum desses tipos de logs já estiver sendo enviado a um bucket do Amazon S3, para configurar o envio de outro desses tipos de logs para esse mesmo bucket, apenas a permissão logs:CreateLogDelivery será necessária.
Política de recursos do bucket do S
O bucket do S3 para o qual os logs estão sendo enviados deve ter uma política de recursos que contenha determinadas permissões. Se o bucket atualmente não tem uma política de recursos e o usuário que está configurando o log tem as permissões S3:GetBucketPolicy e S3:PutBucketPolicy para o bucket, a AWS cria automaticamente a seguinte política quando você começa a enviar os logs ao Amazon S3.
Na política anterior, para aws:SourceAccount, especifique a lista de IDS de conta para os quais os logs estão sendo entregues a esse bucket. Para aws:SourceArn, especifique a lista de ARNs do recurso que gera os logs, no formulário arn:aws:logs:. source-region:source-account-id:*
Se o bucket tiver uma política de recursos, mas ela não contiver a instrução exibida na política anterior, e o usuário configurando o log tiver as permissões S3:GetBucketPolicy e S3:PutBucketPolicy para o bucket, essa instrução será anexada à política de recursos do bucket.
nota
Em alguns casos, você poderá ver os erros AccessDenied em AWS CloudTrail se a permissão s3:ListBucketnão tiver sido concedida a delivery.logs.amazonaws.com. Para evitar esses erros nos logs do CloudTrail, você deve conceder a permissão s3:ListBucket a delivery.logs.amazonaws.com e incluir os parâmetros de Condition mostrados com a permissão s3:GetBucketAcl definida na política de bucket anterior. Para simplificar isso, em vez de criar uma nova Statement, você pode atualizar AWSLogDeliveryAclCheck diretamente para “Action”:
[“s3:GetBucketAcl”, “s3:ListBucket”]
Criptografia no lado do servidor de bucket do Amazon S3
Você pode proteger os dados no bucket do Amazon S3 habilitando a criptografia no lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) ou a criptografia no lado do servidor com uma chave do AWS KMS armazenada no AWS Key Management Service (SSE-KMS). Para obter mais informações, consulte Proteger dados usando a criptografia no lado do servidor.
Se você escolher SSE-S3, nenhuma configuração adicional será necessária. O Amazon S3 lida com a chave de criptografia.
Atenção
Se você escolher o SSE-KMS, deverá usar uma chave gerenciada pelo cliente, porque o uso de uma chave gerenciada pela AWS não tem suporte neste cenário. Se você configurar a criptografia usando uma chave gerenciada AWS, os registros serão entregues em um formato ilegível.
Quando você usa uma chave do AWS KMS gerenciada pelo cliente, é possível especificar o nome do recurso da Amazon (ARN) da chave gerenciada pelo cliente ao habilitar a criptografia do bucket. Você precisa adicionar o seguinte à política de chaves da chave gerenciada pelo cliente (não à política de bucket para o bucket do S3), para que a conta de entrega de log possa gravar no bucket do S3.
Se você escolher o SSE-KMS, deverá usar uma chave gerenciada pelo cliente, porque o uso de uma chave gerenciada pela AWS não tem suporte neste cenário. Quando você usa uma chave do AWS KMS gerenciada pelo cliente, é possível especificar o nome do recurso da Amazon (ARN) da chave gerenciada pelo cliente ao habilitar a criptografia do bucket. Você precisa adicionar o seguinte à política de chaves da chave gerenciada pelo cliente (não à política de bucket para o bucket do S3), para que a conta de entrega de log possa gravar no bucket do 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 a lista de IDS de conta para os quais os logs estão sendo entregues a esse bucket. Para aws:SourceArn, especifique a lista de ARNs do recurso que gera os logs, no formulário arn:aws:logs:. source-region:source-account-id:*