Habilitar o registro em log de auditoria - Amazon WorkMail

Habilitar o registro em log de auditoria

Você pode usar logs de auditoria para capturar informações detalhadas sobre o uso da organização do Amazon WorkMail. Os registros de auditoria podem ser usados para monitorar o acesso do usuário às caixas de correio, auditar atividades suspeitas e depurar as configurações do provedor de disponibilidade e controle de acesso.

nota

A política gerenciada do AmazonWorkmailFullAccess não inclui todas as permissões necessárias para gerenciar entregas de registros. Se você estiver usando essa política para gerenciar o WorkMail, certifique-se de que o principal (por exemplo, a função assumida) usado para configurar as entregas de registros também tenha todas as permissões necessárias.

O Amazon WorkMail oferece suporte a três destinos de entrega para logs de auditoria: CloudWatch Logs, Amazon S3 e Amazon Data Firehose. Para obter mais informações, consulte Registros que exigem permissões adicionais [V2] no Guia do usuário do Amazon CloudWatch Logs.

Além das permissões listadas em Logging que exigem permissões adicionais [V2], o Amazon WorkMail exige uma permissão adicional para configurar a entrega de registros:. workmail:AllowVendedLogDeliveryForResource

A entrega de um log de trabalho consiste em três elementos:

  • DeliverySource, um objeto lógico que representa o recurso ou os recursos que enviam os logs. Para o Amazon WorkMail, é a organização do Amazon WorkMail.

  • Um destino de entrega, que é um objeto lógico que representa o destino de entrega real.

  • Uma entrega que conecta a origem da entrega ao destino da entrega

Para configurar a entrega de logs entre o Amazon WorkMail e um destino, você pode fazer o seguinte:

  • Crie uma origem de entrega com PutDeliverySource.

  • Crie um destino de entrega com PutDeliveryDestination.

  • Se você estiver entregando logs entre contas, deverá usar PutDeliveryDestinationPolicy na conta de destino para atribuir uma política do ao destino. Essa política autoriza a criação de uma entrega da origem da entrega na conta A para o destino da entrega na conta B.

  • Crie uma entrega emparelhando exatamente uma única origem de entrega e um único destino de entrega, usando CreateDelivery.

As seções a seguir fornecem os detalhes das permissões que você precisa ter ao fazer login para configurar a entrega de logs para cada tipo de destino. Essas permissões podem ser concedidas a um perfil do IAM com o qual você está conectado.

Importante

É sua responsabilidade remover os recursos de entrega de logs após excluir o recurso que gera os logs.

Para remover os recursos de entrega de logs após excluir o recurso que gera os logs, siga estas etapas.

  1. Exclua a entrega usando a operação DeleteDelivery.

  2. Exclua a entrega usando a operação DeleteDeliverySource.

  3. Se o DeliveryDestination associado ao DeliverySource que você acabou de excluir for usado apenas para esse DeliverySource específico, você poderá removê-lo usando a operação DeleteDeliveryDestinations.

Configurar o registro de auditoria em log usando o console do Amazon WorkMail

É possível configurar o registro de auditoria em log no console do Amazon WorkMail:

  1. Abra o console do Amazon WorkMail em https://console.aws.amazon.com/workmail/.

    Se necessário, altere a região da AWS. Na barra na parte superior da janela do console, abra a lista Selecionar uma região e selecione uma região. Para obter mais informações, consulte Regiões e endpoints na Referência geral da Amazon Web Services.

  2. No painel de navegação, selecione Organizações e, em seguida, escolha o nome da organização.

  3. Escolha Configurações de registro.

  4. Escolha a guia Configurações do registro de auditoria.

  5. Configure as entregas para o tipo de registro necessário usando o widget apropriado.

  6. Escolha Salvar.

Logs enviados ao CloudWatch Logs

Permissões de usuário

Para permitir o envio de logs ao CloudWatch Logs, é necessário fazer login com as permissões a seguir.

JSON
{ "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" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:delivery:*", "arn:aws:logs:us-east-1:111122223333:delivery-source:*", "arn:aws:logs:us-east-1:111122223333:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeLogGroups" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyCWL", "Effect": "Allow", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:*" ] }, { "Sid": "AllowLogDeliveryForWorkMail", "Effect": "Allow", "Action": [ "workmail:AllowVendedLogDeliveryForResource" ], "Resource": [ "arn:aws:workmail:us-east-1:111122223333:organization/organization-id" ] } ] }

Política de recursos do grupo de logs

O grupo de logs para o qual os logs estão sendo enviados deve ter uma política de recursos que contenha determinadas permissões. Se o grupo de logs atualmente não tem uma política de recursos e o usuário que está configurando o log tem as permissões logs:PutResourcePolicy, logs:DescribeResourcePolicies e logs:DescribeLogGroups para o grupo de logs, a AWS cria automaticamente a seguinte política quando você começar a enviar os logs ao CloudWatch Logs.

JSON
{ "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:111122223333:log-group:my-log-group:log-stream:*" ], "Condition": { "StringEquals": { "aws:SourceAccount": [ "111122223333" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:111122223333:*" ] } } } ] }

Considerações sobre o limite do tamanho da política de recursos do grupo de logs

Esses serviços devem listar cada grupo de logs para os quais estão enviando logs para a política de recursos. As políticas de recursos do CloudWatch Logs são limitadas a 5.120 caracteres. Um serviço que envia logs a muitos grupos de logs pode atingir esse limite.

Para mitigar isso, o CloudWatch Logs monitora o tamanho das políticas de recursos usadas pelo serviço que está enviando os registros. Quando detecta que uma política se aproxima do limite de tamanho de 5.120 caracteres, o CloudWatch Logs /aws/vendedlogs/* habilita automaticamente a política de recursos desse serviço. Depois, você pode começar a usar grupos de logs com nomes que começam com /aws/vendedlogs/ como destinos para os logs desses serviços.

Logs enviados ao Amazon S3

Permissões de usuário

Para permitir o envio de logs ao Amazon S3, é necessário fazer login com as permissões a seguir.

JSON
{ "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" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:delivery:*", "arn:aws:logs:us-east-1:111122223333:delivery-source:*", "arn:aws:logs:us-east-1:111122223333:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeLogGroups" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyS3", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": "arn:aws:s3:::bucket-name" }, { "Sid": "AllowLogDeliveryForWorkMail", "Effect": "Allow", "Action": [ "workmail:AllowVendedLogDeliveryForResource" ], "Resource": [ "arn:aws:workmail:us-east-1:111122223333:organization/organization-id" ] } ] }

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.

JSON
{ "Version":"2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::my-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": [ "account-id" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:111122223333:delivery-source:*" ] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-bucket/AWSLogs/111122223333/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "account-id" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:logs:us-east-1:111122223333:delivery-source:*" ] } } } ] }

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 seus registros do CloudTrail, você deve conceder s3:ListBucket a permissão para. delivery.logs.amazonaws.com Você também deve incluir os Condition parâmetros mostrados com o conjunto de s3:GetBucketAcl permissões 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. Adicione 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. Adicione 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":[ "account-id" ] }, "ArnLike":{ "aws:SourceArn":[ "arn:aws:logs:region:account-id:delivery-source:*" ] } } }

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:*.

Logs enviados ao Firehose

Permissões de usuário

Para permitir o envio de logs ao Firehose, você primeiro deve fazer login com as permissões a seguir.

JSON
{ "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" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:delivery:*", "arn:aws:logs:us-east-1:111122223333:delivery-source:*", "arn:aws:logs:us-east-1:111122223333:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries", "logs:DescribeLogGroups" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyFH", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream" ], "Resource": [ "arn:aws:firehose:us-east-1:111122223333:deliverystream/*" ] }, { "Sid": "CreateServiceLinkedRole", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::111122223333:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery" }, { "Sid": "AllowLogDeliveryForWorkMail", "Effect": "Allow", "Action": [ "workmail:AllowVendedLogDeliveryForResource" ], "Resource": [ "arn:aws:workmail:us-east-1:111122223333:organization/organization-id" ] } ] }

Perfis do IAM usados para permissões de recursos

Como o Firehose não usa políticas de recursos, a AWS usa os perfis do IAM ao configurar esses logs para serem enviados ao Firehose. A AWS cria um perfil vinculado ao serviço denominado AWSServiceRoleForLogDelivery. Essa função vinculada ao serviço inclui as permissões a seguir.

Esse perfil vinculado ao serviço concede permissão para todos os fluxos de entrega do Firehose que tenham a tag LogDeliveryEnabled definida como true. A AWS atribui essa tag ao fluxo de entrega do destino quando você configura o registro em log.

Essa função vinculada ao serviço também tem uma política de confiança que permite que a entidade de serviço delivery.logs.amazonaws.com assuma a função vinculada ao serviço necessária. Essa política de confiança é a seguinte:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Permissões específicas do console

Além das permissões listadas nas seções anteriores, se você for configurar a entrega de logs usando o console em vez de APIs, precisará das seguintes permissões:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowLogDeliveryActions", "Effect": "Allow", "Action": [ "firehose:DescribeDeliveryStream", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:*", "arn:aws:firehose:us-east-1:111122223333:deliverystream/*", "arn:aws:s3:::*" ] }, { "Sid": "ListAccessForDeliveryDestinations", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "firehose:ListDeliveryStreams", "s3:ListAllMyBuckets" ], "Resource": "*" } ] }