Criptografia em repouso - Amazon Inspector

Criptografia em repouso

Por padrão, o Amazon Inspector armazena dados em repouso usando soluções de criptografia da AWS. O Amazon Inspector criptografa dados, como os seguintes:

  • Inventário de recursos coletado com o AWS Systems Manager.

  • Inventário de recursos analisado com base em imagens do Amazon Elastic Container Registry

  • Descobertas de segurança geradas usando chaves de criptografia do AWS Key Management Service de propriedade da AWS

Você não pode visualizar, usar ou gerenciar chaves de propriedade da AWS. No entanto, você não precisa realizar nenhuma ação nem alterar programas para proteger as chaves que criptografam os dados. Para ter mais informações, consulte AWS owned keys.

Se você desabilitar o Amazon Inspector, ele excluirá permanentemente todos os recursos que armazena ou mantém para você, como inventário coletado e descobertas de segurança.

Criptografia em repouso para código em suas descobertas

Para a digitalização de código Lambda do Amazon Inspector, o Amazon Inspector faz parceria com o CodeGuru para escanear o código em busca de vulnerabilidades. Quando uma vulnerabilidade é detectada, o CodeGuru extrai um trecho do seu código contendo a vulnerabilidade e armazena esse código até que o Amazon Inspector solicite acesso. Por padrão, o CodeGuru usa uma chave própria da AWS para criptografar o código extraído. No entanto, você pode configurar o Amazon Inspector para usar sua própria chave do AWS KMS gerenciada pelo cliente para criptografia.

O fluxo de trabalho a seguir explica como o Amazon Inspector usa a chave que você configura para criptografar o código:

  1. Forneça uma chave do AWS KMS para o Amazon Inspector usando a API do Amazon Inspector UpdateEncryptionKey.

  2. O Amazon Inspector encaminha as informações sobre a chave do AWS KMS para o CodeGuru. O CodeGuru armazena as informações para uso futuro.

  3. O CodeGuru solicita uma concessão do AWS KMS para a chave configurada no Amazon Inspector.

  4. O CodeGuru cria uma chave de dados criptografada a partir da chave do AWS KMS e a armazena. Esta chave de dados é usada para criptografar os dados do código armazenados pelo CodeGuru.

  5. Sempre que o Amazon Inspector solicita dados de escaneamentos de código, o CodeGuru usa a concessão para descriptografar a chave de dados criptografada e, em seguida, usa essa chave para descriptografar os dados para que possam ser recuperados.

Quando você desativa a digitalização de código Lambda, o CodeGuru retira a concessão e exclui a chave de dados associada.

É possível usar uma chave gerenciada pelo cliente para criptografar um volume.

Para usar a criptografia, você precisa ter uma política que permita o acesso às ações do AWS KMS, assim como uma declaração que conceda ao Amazon Inspector e ao CodeGuru permissões para usar essas ações por meio de chaves de condição.

Se estiver configurando, atualizando ou redefinindo a chave de criptografia da conta, precisará usar uma política de administrador do Amazon Inspector, como Política gerenciada da AWS: AmazonInspector2FullAccess. Você também precisará conceder as seguintes permissões aos usuários somente para leitura que precisam recuperar trechos de código de descobertas ou dados sobre a chave escolhida para criptografia.

Para o KMS, a política deve permitir executar as seguintes ações:

  • kms:CreateGrant

  • kms:Decrypt

  • kms:DescribeKey

  • kms:GenerateDataKeyWithoutPlainText

  • kms:Encrypt

  • kms:RetireGrant

Depois de verificar se você tem as permissões corretas do AWS KMS na política, anexe uma declaração que permita que o Amazon Inspector e o CodeGuru usem a chave para criptografia. Anexe a seguinte declaração de política:

nota

Substitua a região pela região da AWS na qual você habilitou a digitalização de código Lambda do Amazon Inspector.

{ "Sid": "allow CodeGuru Security to request a grant for a AWS KMS key", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "Encrypt", "Decrypt", "RetireGrant", "DescribeKey" ] }, "StringEquals": { "kms:ViaService": [ "codeguru-security.Region.amazonaws.com" ] } } }, { "Sid": "allow Amazon Inspector and CodeGuru Security to use your AWS KMS key", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:RetireGrant", "kms:DescribeKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "inspector2.Region.amazonaws.com", "codeguru-security.Region.amazonaws.com" ] } } }
nota

Ao adicionar a instrução, verifique se a sintaxe é válida. As políticas usam o formato JSON. Isso significa que você precisa adicionar uma vírgula antes ou depois da declaração, dependendo de onde você adiciona a declaração à política. Se você incluir a instrução como a última instrução, adicione uma vírgula após o colchete de fechamento para a instrução anterior. Se você adicioná-la como a primeira instrução ou adicioná-la entre duas instruções existentes, adicione uma vírgula após o colchete de fechamento.

É possível usar uma chave gerenciada pelo cliente para criptografar um volume.

Para configurar a criptografia para sua conta usando uma chave gerenciada pelo cliente, você deve ser um administrador do Amazon Inspector com as permissões descritas em É possível usar uma chave gerenciada pelo cliente para criptografar um volume.. Além disso, você precisará de uma chave do AWS KMS na mesma região AWS das descobertas ou de uma chave multirregional. Você pode usar uma chave simétrica existente em sua conta ou criar uma chave simétrica gerenciada pelo cliente usando o Console de gerenciamento da AWS ou as APIs do AWS KMS. Para obter mais informações, consulte Criar chaves do AWS KMS simétricas no Guia do desenvolvedor do AWS KMS.

Usando a API do Amazon Inspector para configurar a criptografia

Para definir uma chave para criptograr a operação UpdateEncryptionKey da API do Amazon Inspector enquanto estiver conectado como administrador do Amazon Inspector. Na solicitação da API, use o campo kmsKeyId para especificar o ARN da chave do AWS KMS que deseja usar. Para scanType digitar o CODE e para resourceType digitar o AWS_LAMBDA_FUNCTION.

Você pode usar a API UpdateEncryptionKey para verificar qual chave do AWS KMS o Amazon Inspector está usando para criptografia.

nota

Se você tentar usar GetEncryptionKey sem definir uma chave gerenciada pelo cliente, a operação retornará um erro ResourceNotFoundException que significa que uma chave da AWS está sendo usada para criptografia.

Se você excluir a chave ou alterar sua política para negar acesso ao Amazon Inspector ou ao CodeGuru, você não conseguirá acessar as descobertas de vulnerabilidade de código e a digitalização de código Lambda falhará em sua conta.

Você pode usar ResetEncryptionKey para continuar usando uma chave da AWS para criptografar o código extraído como parte das descobertas do Amazon Inspector.