View a markdown version of this page

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

Configurar 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 adicione a política de chave 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 Console de gerenciamento da AWS 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, arquivos de resumo e armazenamentos de dados de eventos, e permitir que os usuários que você especificar leiam arquivos de log e resumos de forma não criptografada.

Consulte os recursos a seguir:

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

Se você criou uma chave KMS com o console AWS de gerenciamento ou com o AWS CLI, deverá, no mínimo, adicionar as seguintes declaraçõ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. Conceda permissões para criptografar arquivos de CloudTrail log e resumo. Para obter mais informações, consulte Conceder permissões de criptografia para trilhas.

  2. Conceda permissões para descriptografar arquivos de CloudTrail log e de resumo. Para obter mais informações, consulte Conceder permissões de descriptografia para trilhas. Se você estiver usando um bucket S3 existente com uma chave de bucket do S3, são necessárias kms:Decrypt permissões para criar ou atualizar uma trilha com a SSE-KMS criptografia ativada.

  3. Ative CloudTrail a descrição das propriedades da chave KMS. Para obter mais informações, 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 habilitada em uma trilha e a chave KMS estiver desativada ou se a política de chave KMS não estiver configurada corretamente CloudTrail, não será CloudTrail possível entregar registros.

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

  1. Conceda permissões para criptografar um armazenamento de dados de eventos do CloudTrail Lake. Para obter mais informações, consulte Conceder permissões de criptografia para datastores de eventos.

  2. Conceda permissões para descriptografar um armazenamento de dados de eventos do CloudTrail Lake. Para obter mais informações, consulte Conceder permissões de descriptografia para datastores de eventos.

    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 e a CloudTrail chave KMS deve ser gerenciada por usuários que executam operações (como consultas) no armazenamento de dados do evento.

  3. Ative CloudTrail a descrição das propriedades da chave KMS. Para obter mais informações, 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 habilitada em um armazenamento de dados de eventos e a chave KMS estiver desativada ou excluída, ou se a política de chave KMS não estiver configurada corretamente CloudTrail, CloudTrail não poderá entregar eventos ao seu armazenamento de dados de eventos.

Conceder permissões de criptografia para trilhas

exemplo Permite CloudTrail criptografar arquivos de log e digerir arquivos em nome de contas específicas

CloudTrail precisa de permissão explícita para usar a chave KMS para criptografar arquivos de log e digerir arquivos em nome de contas específicas. Para especificar uma conta, adicione a seguinte declaração obrigatória à sua política de chaves do KMS e substitua-a account-idregion, e trailName com os valores apropriados para sua configuração. Você pode adicionar IDs de conta adicionais à EncryptionContext seção para permitir que essas contas CloudTrail usem sua chave KMS para criptografar arquivos de log e digerir arquivos.

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": "AllowCloudTrailEncryptLogs", "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/*" } } }
exemplo

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

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

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

Na política, você adiciona uma ou mais contas que criptografam com sua chave ao. CloudTrail EncryptionContext Isso restringe CloudTrail o uso de sua chave para criptografar arquivos de log e digerir arquivos somente para as contas que você especificar. Quando você concede 222222222222 permissão à raiz da conta para criptografar arquivos de log e arquivos de resumo, 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": "EnableCloudTrailEncryptPermissions", "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 como editar uma política de chaves KMS para uso com CloudTrail, consulte Editando uma política de chaves no Guia do AWS Key Management Service desenvolvedor.

Conceder permissões de criptografia para datastores de eventos

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

{ "Sid": "AllowCloudTrailEncryptEds", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

Conceder permissões de descriptografia para trilhas

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 S3 existente com uma chave de bucket do S3, são necessárias kms:Decrypt permissões para criar ou atualizar uma trilha com a SSE-KMS criptografia ativada.

Habilitar 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 o CloudTrail criptografou. 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": "EnableCloudTrailLogDecryptPermissions", "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 principal do CloudTrail serviço descriptografe os registros de trilhas.

{ "Sid": "AllowCloudTrailDecryptTrail", "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 os registros no bucket do S3.

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

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

{ "Sid": "EnableCloudTrailLogDecryptPermissions", "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 de outras contas usem sua chave do KMS para descriptografar logs de trilhas. 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 os 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": "EnableEncryptedCloudTrailLogReadAccess", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::222222222222:root" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:111111111111:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

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

    JSON
    { "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ê habilita as permissões de descriptografia para a função do IAM CloudTrailReadRole em sua conta e, em seguida, dá permissão à outra conta para assumir essa função.

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

    { "Sid": "EnableEncryptedCloudTrailLogReadAccess", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111111111111: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:

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

    Para obter informações sobre como editar uma política de chaves 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 para datastores de eventos

    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": "EnableUserKeyPermissionsEds" "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 descriptografe um armazenamento de dados de eventos.

    { "Sid": "AllowCloudTrailDecryptEds", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

    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": "AllowCloudTrailAccess", "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 .