Configure as AWS KMS principais políticas para CloudTrail - AWS CloudTrail

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á.

Configure as AWS KMS principais políticas para CloudTrail

Você pode criar um AWS KMS key de três maneiras:

  • O CloudTrail console

  • O console AWS de gerenciamento

  • O AWS CLI

nota

Se você criar uma chave KMS no CloudTrail console, CloudTrail adicionará a política de chaves KMS necessária para você. Você não precisa adicionar manualmente as declarações de política. Consulte Política de chave KMS padrão criada no console CloudTrail .

Se você criar uma chave KMS no AWS Gerenciamento ou no AWS CLI, deverá adicionar seções de política à chave para poder usá-la com CloudTrail. A política deve permitir CloudTrail o uso da chave para criptografar seus arquivos de log e armazenamentos de dados de eventos e permitir que os usuários que você especificar leiam arquivos de log em formato não criptografado.

Consulte os recursos a seguir:

  • Para criar uma chave KMS com o AWS CLI, consulte create-key.

  • Para editar uma política de chaves do KMS para CloudTrail, consulte Editando uma política de chaves no Guia do AWS Key Management Service desenvolvedor.

  • Para obter detalhes técnicos sobre como CloudTrail usar AWS KMS, consulte Como AWS CloudTrail usar AWS KMS no Guia do AWS Key Management Service desenvolvedor.

Seções de política de chaves do KMS obrigatórias para uso com CloudTrail

Se você criou uma chave KMS com o console AWS de gerenciamento ou com o AWS CLI, você deve, no mínimo, adicionar as seguintes instruções à sua política de chaves KMS para que ela funcione. CloudTrail

Elementos obrigatórios de política de chaves do KMS para trilhas

  1. Ative as permissões de criptografia de CloudTrail registros. Consulte Conceder permissões de criptografia.

  2. Ative as permissões de descriptografia de CloudTrail registros. Consulte Conceder permissões de descriptografia. Se você estiver usando um bucket do S3 existente com uma chave de bucket do S3, permissões de kms:Decrypt serão necessárias para criar ou atualizar uma trilha com criptografia SSE-KMS habilitada.

  3. Habilite CloudTrail a descrição das propriedades da chave KMS. Consulte Habilitar CloudTrail a descrição das propriedades da chave KMS.

Como uma prática recomendada de segurança, adicione uma aws:SourceArn chave de condição para a política de chaves KMS. A chave de condição global do IAM aws:SourceArn ajuda a garantir que a chave KMS seja CloudTrail usada somente para uma trilha ou trilhas específicas. O valor de aws:SourceArn é sempre o ARN de trilha (ou matriz de ARNs de trilha) que está usando a chave KMS. Certifique-se de adicionar a aws:SourceArn chave de condição para políticas de chave KMS para trilhas existentes.

A aws:SourceAccount chave de condição também é compatível, mas não é recomendada. O valor de aws:SourceAccount é a ID da conta do proprietário da trilha, ou para trilhas da organização, a ID da conta de gerenciamento.

Importante

Quando você adicionar as novas seções à política de chave do KMS, não altere as seções existentes na política.

Se a criptografia estiver ativada em uma trilha e a chave KMS estiver desativada ou se a política de chaves KMS não estiver configurada corretamente CloudTrail, não será CloudTrail possível fornecer registros.

Elementos obrigatórios de política de chaves do KMS para armazenamentos de dados de eventos

  1. Ative as permissões de criptografia de CloudTrail registros. Consulte Conceder permissões de criptografia.

  2. Ative as permissões de descriptografia de CloudTrail registros. Consulte Conceder permissões de descriptografia.

  3. Concede aos usuários e perfis permissão para criptografar e descriptografar dados do arquivamento de dados de eventos com a chave do KMS.

    Ao criar um armazenamento de dados de eventos e criptografá-lo com uma chave do KMS ou executar consultas em um armazenamento de dados de eventos que você está criptografando com uma chave do KMS, é necessário ter acesso de gravação à chave do KMS. A política de chaves KMS deve ter acesso a CloudTrail, e a chave KMS deve ser gerenciável por usuários que executam operações (como consultas) no armazenamento de dados do evento.

  4. Habilite CloudTrail a descrição das propriedades da chave KMS. Consulte Habilitar CloudTrail a descrição das propriedades da chave KMS.

As chaves de condição aws:SourceArn e aws:SourceAccount não são compatíveis com políticas de chaves do KMS para armazenamentos de dados de eventos.

Importante

Quando você adicionar as novas seções à política de chave do KMS, não altere as seções existentes na política.

Se a criptografia estiver ativada em um armazenamento de dados de eventos e a chave KMS estiver desativada ou excluída, ou se a política de chaves KMS não estiver configurada corretamente CloudTrail, não será CloudTrail possível entregar eventos ao seu armazenamento de dados de eventos.

Conceder permissões de criptografia

exemplo CloudTrail Permitir criptografar registros em nome de contas específicas

CloudTrail precisa de permissão explícita para usar a chave KMS para criptografar registros em nome de contas específicas. Para especificar uma conta, adicione a seguinte instrução necessária à sua política de chaves do KMS e substitua account-id, region e trailName pelos valores apropriados para sua configuração. Você pode adicionar IDs de conta adicionais à EncryptionContext seção para permitir que essas contas sejam usadas CloudTrail para usar sua chave KMS para criptografar arquivos de log.

Como uma prática recomendada de segurança, adicione uma chave de condição aws:SourceArn à política de chaves do KMS para uma trilha. A chave de condição global do IAM aws:SourceArn ajuda a garantir que a chave KMS seja CloudTrail usada somente para uma trilha ou trilhas específicas.

{ "Sid": "Allow CloudTrail to encrypt logs", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:account-id:trail/*" } } }

Uma política para uma chave KMS usada para criptografar os registros do armazenamento de dados de eventos do CloudTrail Lake não pode usar as chaves aws:SourceArn de condição ou. aws:SourceAccount Veja a seguir um exemplo de uma política de chaves do KMS para um armazenamento de dados de eventos.

{ "Sid": "Allow CloudTrail to encrypt event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

O exemplo de declaração de política a seguir ilustra como outra conta pode usar sua chave KMS para CloudTrail criptografar registros.

Cenário
  • Sua chave do KMS está na conta 111111111111.

  • Tanto você quanto a conta 222222222222 criptografarão logs.

Na política, você adiciona uma ou mais contas criptografadas com sua chave ao CloudTrail EncryptionContext. Isso se restringe CloudTrail ao uso de sua chave para criptografar registros somente para as contas que você especificar. Quando você concede permissão 222222222222 à raiz da conta para criptografar logs, ela delega permissão ao administrador da conta para criptografar as permissões necessárias para outros usuários dessa conta. O administrador da conta faz isso alterando as políticas associadas a esses usuários do IAM.

Como uma prática recomendada de segurança, adicione uma aws:SourceArn chave de condição para a política de chaves KMS. A chave de condição global do IAM aws:SourceArn ajuda a garantir que a chave KMS seja CloudTrail usada somente para as trilhas especificadas. Não há suporte para essa condição nas políticas de chaves do KMS para armazenamentos de dados de eventos.

Declaração de política de chaves do KMS:

{ "Sid": "Enable CloudTrail encrypt permissions", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": [ "arn:aws:cloudtrail:*:111111111111:trail/*", "arn:aws:cloudtrail:*:222222222222:trail/*" ] }, "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

Para obter mais informações sobre a edição de uma política de chaves do KMS para uso com CloudTrail, consulte Editando uma política de chaves no Guia do AWS Key Management Service desenvolvedor.

Conceder permissões de descriptografia

Antes de adicionar sua chave KMS à sua CloudTrail configuração, é importante conceder permissões de descriptografia a todos os usuários que precisarem delas. Os usuários que têm permissões de criptografia, mas não têm permissões de descriptografia, não conseguirão ler logs criptografados. Se você estiver usando um bucket do S3 existente com uma chave de bucket do S3, permissões de kms:Decrypt serão necessárias para criar ou atualizar uma trilha com criptografia SSE-KMS habilitada.

Ativar CloudTrail permissões de descriptografia de registros

Os usuários da sua chave devem receber permissões explícitas para ler os arquivos de log que CloudTrail foram criptografados. Para permitir que os usuários leiam logs criptografados, adicione a seguinte declaração necessária à sua política de chave do KMS, modificando a seção Principal de modo a adicionar uma linha para cada entidade principal que deseja descriptografar usando sua chave do KMS.

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

Veja a seguir um exemplo de política necessária para permitir que o responsável pelo CloudTrail serviço decifre os registros de trilhas.

{ "Sid": "Allow CloudTrail to decrypt a trail", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

Uma política de descriptografia para uma chave KMS usada com um armazenamento de dados de eventos do CloudTrail Lake é semelhante à seguinte. Os ARNs de usuário ou perfil especificados como valores para Principal precisam de permissões de descriptografia para criar ou atualizar armazenamentos de dados de eventos, executar consultas ou obter resultados de consultas.

{ "Sid": "Enable user key permissions for event data stores" "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

Veja a seguir um exemplo de política necessária para permitir que o responsável pelo CloudTrail serviço decifre os registros do armazenamento de dados de eventos.

{ "Sid": "Allow CloudTrail to decrypt an event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

Permitir que usuários em sua conta descriptografem logs de trilha com sua chave do KMS

Exemplo

Esta instrução da política ilustra como permitir que um usuário ou perfil na sua conta use sua chave para ler os logs criptografados no bucket do S3 da conta.

exemplo Cenário
  • Sua chave do KMS, o bucket do S3 e o usuário do IAM Bob estão na conta 111111111111.

  • Você dá permissão ao usuário do IAM Bob para descriptografar CloudTrail registros no bucket do S3.

Na política de chaves, você ativa as permissões de descriptografia de CloudTrail log para o usuário do IAM Bob.

Declaração de política de chaves do KMS:

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/Bob" }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }
Tópicos

    Permitir que usuários em outras contas descriptografem logs de trilha com sua chave do KMS

    Você pode permitir que os usuários em outras contas usem sua chave do KMS para descriptografar logs de trilhas, mas não logs de armazenamentos de dados de eventos. As alterações necessárias à sua política de chaves dependem de onde o bucket do S3 está, na sua conta ou em outra.

    Permitir que os usuários de um bucket de outra conta descriptografem os logs

    Exemplo

    Esta declaração da política ilustra como permitir que um usuário ou função do IAM em outra conta use sua chave para ler os logs criptografados a partir de um bucket do S3 na outra conta.

    Cenário
    • Sua chave do KMS está na conta 111111111111.

    • O usuário do IAM Alice e o bucket do S3 estão na conta 222222222222.

    Nesse caso, você dá CloudTrail permissão para descriptografar registros na conta 222222222222 e dá permissão à política de usuário do IAM de Alice para usar sua chaveKeyA, que está na conta. 111111111111

    Declaração de política de chaves do KMS:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::222222222222:root" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    Declaração da política de usuários do IAM de Alice:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111111111111:key/KeyA" } ] }

    Permitir que usuários em outra conta descriptografem os logs de trilha do seu bucket

    exemplo

    Esta política ilustra como outra conta pode usar sua chave para ler os logs criptografados do bucket do S3.

    exemplo Cenário
    • Sua chave do KMS e o bucket do S3 estão na conta 111111111111.

    • O usuário que lê os logs do seu bucket está na conta 222222222222.

    Para ativar esse cenário, você ativa as permissões de descriptografia para a função do IAM CloudTrailReadRoleem sua conta e, em seguida, concede à outra conta permissão para assumir essa função.

    Declaração de política de chaves do KMS:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::11111111111:role/CloudTrailReadRole" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    CloudTrailReadRoledeclaração de política de entidade fiduciária:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "sts:AssumeRole" } ] }

    Para obter informações sobre a edição de uma política de chaves do KMS para uso com CloudTrail, consulte Editando uma política de chaves no Guia do AWS Key Management Service desenvolvedor.

    Habilitar CloudTrail a descrição das propriedades da chave KMS

    CloudTrail requer a capacidade de descrever as propriedades da chave KMS. Para habilitar essa funcionalidade, adicione a seguinte declaração obrigatória da forma em que se encontra à sua política de chave do KMS. Essa declaração não concede CloudTrail nenhuma permissão além das outras permissões que você especificar.

    Como uma prática recomendada de segurança, adicione uma aws:SourceArn chave de condição para a política de chaves KMS. A chave de condição global do IAM aws:SourceArn ajuda a garantir que a chave KMS seja CloudTrail usada somente para uma trilha ou trilhas específicas.

    { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

    Para obter informações sobre como editar políticas de chaves do KMS, consulte Como editar uma política de chaves no Guia do desenvolvedor do AWS Key Management Service .