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á.
Chaves gerenciadas pelo cliente para o AWS Security Agent
Por padrão, o AWS Security Agent criptografa todos os dados em repouso usando chaves AWS de criptografia gerenciadas. Opcionalmente, você pode usar uma chave gerenciada pelo cliente do AWS Key Management Service (AWS KMS) para criptografar seus dados, oferecendo controle total sobre as chaves de criptografia que protegem seus recursos.
AWS O Security Agent oferece suporte a chaves gerenciadas pelo cliente em nível de recursos. Ao criar um recurso de nível superior, como um Espaço do Agente ou uma integração, você pode especificar uma chave KMS para criptografar todos os dados pertencentes a esse recurso e seus sub-recursos. Por exemplo, especificar uma chave gerenciada pelo cliente ao criar um Espaço do Agente criptografa todos os dados associados a esse Espaço do Agente, incluindo configurações do Espaço do Agente, configurações de testes de penetração, tarefas e detalhes de execução, descobertas de segurança, endpoints descobertos e capturas de tela. Você também pode fornecer AWS recursos que já estão criptografados com sua própria chave gerenciada pelo cliente, como buckets S3, grupos de registros de CloudWatch registros ou segredos do Secrets Manager. Para obter as permissões necessárias do KMS, consultePermissões KMS necessárias.
Como funcionam as chaves gerenciadas pelo cliente
AWS O Security Agent usa o chaveiro hierárquico do AWS KMS para criptografar seus dados com chaves gerenciadas pelo cliente. Quando você especifica uma chave KMS durante a criação do recurso, o serviço cria uma chave de ramificação protegida pela sua chave KMS e a armazena em um repositório de DynamoDB-based chaves da Amazon. Para cada operação de criptografia, o chaveiro hierárquico deriva uma chave de encapsulamento exclusiva da chave de ramificação ativa, que criptografa uma chave de criptografia de dados exclusiva para cada solicitação.
O chaveiro hierárquico oferece os seguintes benefícios:
-
Per-resource escopo de criptografia — Cada recurso de nível superior tem sua própria chave de ramificação, portanto, os dados de diferentes recursos são criptografados em chaves separadas.
-
Rotação automática de chaves — o AWS Security Agent gira periodicamente as chaves de ramificação. Após a rotação, os novos dados são criptografados com a nova versão da chave de ramificação, enquanto as versões mais antigas são retidas para descriptografar os dados criptografados anteriormente.
Contexto de criptografia
AWS O Security Agent usa contexto de criptografia em todas as operações criptográficas com sua chave KMS. O contexto de criptografia é um conjunto de pares de valores-chave não secretos que fornece dados autenticados adicionais para a operação de criptografia.
A chave de contexto de criptografia segue o formatoaws:securityagent:_<resource-type>_, onde
<resource-type>
é o tipo de recurso que está sendo criptografado (por exemplo, agent-space ouintegration). O valor é o Amazon Resource Name (ARN) do recurso.
nota
Para integrações, a chave de contexto de criptografia inclui o aws-crypto-ec: prefixo, resultando no formato. aws-crypto-ec:aws:securityagent:integration
Você pode usar o contexto de criptografia para definir a política de chaves do KMS para tipos específicos de recursos. Para obter mais informações, consulte Permissões KMS necessárias.
Default encryption (Criptografia padrão)
Quando você cria um recurso sem especificar uma chave gerenciada pelo cliente, o AWS Security Agent criptografa o recurso usando chaves de criptografia AWS gerenciadas fornecidas pelos serviços de armazenamento subjacentes (Amazon DynamoDB e Amazon S3). Nenhuma configuração adicional é necessária para a criptografia padrão.
Chave KMS padrão para aplicativos
Você pode definir uma chave KMS padrão no nível do aplicativo. Quando uma chave KMS padrão é configurada, o AWS Security Agent a usa como alternativa para novos Agent Spaces e integrações quando você não especifica explicitamente uma chave KMS durante a criação do recurso.
Para definir uma chave KMS padrão, especifique o defaultKmsKeyId parâmetro ao criar ou atualizar seu aplicativo usando a AWS CLI ou o SDK. O console solicita que você especifique uma chave KMS padrão durante a configuração do aplicativo.
Quando você especifica explicitamente uma chave KMS durante a criação do recurso, ela tem precedência sobre o padrão no nível do aplicativo.
Pré-requisitos
Antes de configurar uma chave gerenciada pelo cliente, preencha os seguintes pré-requisitos:
-
Crie uma chave KMS de criptografia simétrica no AWS KMS. A chave deve atender aos seguintes requisitos:
-
Tipo de chave: Simétrico
-
Uso da chave: criptografar e descriptografar
-
Especificação chave:
SYMMETRIC_DEFAULT -
Estado da chave: Ativado
Para obter instruções, consulte Criação de chaves no Guia do desenvolvedor do AWS Key Management Service.
-
-
Configure a política de chaves do KMS e as políticas do IAM para conceder ao AWS Security Agent as permissões necessárias. Para obter detalhes, consulte Permissões KMS necessárias.
Permissões KMS necessárias
AWS O Security Agent exige permissões KMS em dois cenários:
-
Criptografar dados no AWS Security Agent — Quando você especifica uma chave gerenciada pelo cliente para um Espaço do Agente ou integração, o serviço precisa de permissões para usar essa chave para operações criptográficas em seus dados.
-
Uso de CMK-encrypted AWS recursos — Quando você fornece AWS recursos criptografados com uma chave gerenciada pelo cliente (como buckets do S3, grupos de CloudWatch registros de registros ou segredos do Secrets Manager), o serviço precisa de permissões para usar essas chaves para acessar os recursos criptografados.
AWS O Security Agent acessa sua chave KMS usando identidades diferentes, dependendo da operação:
-
AWS Operações do Management Console — Quando os administradores criam ou gerenciam recursos no AWS Management Console (por exemplo, criando um Espaço do Agente ou atualizando um aplicativo), o serviço usa a função de administrador para chamar o AWS KMS.
-
Operações do aplicativo Web — Quando os usuários do IAM Identity Center acessam dados por meio do aplicativo web do AWS Security Agent (por exemplo, visualizando os resultados do teste de penetração ou iniciando um teste de penetração), o serviço usa a função de aplicativo criada durante a configuração do AWS Security Agent para chamar AWS o KMS.
-
Acessando recursos fornecidos pelo cliente — Quando o serviço acessa os AWS recursos fornecidos pelo cliente durante o teste de penetração (como buckets do S3, CloudWatch grupos de registros de registros e segredos do Secrets Manager), ele usa a função de serviço de teste de penetração para chamar o KMS. AWS
-
Fluxos de trabalho assíncronos — Para operações em segundo plano que são executadas fora de qualquer sessão do usuário (por exemplo, execução de testes de penetração, processamento de revisão de código e rotação de chaves de ramificação), o serviço usa seu próprio serviço principal (
securityagent.amazonaws.com) para chamar AWS o KMS em seu nome.
As seções a seguir descrevem as permissões necessárias para cada identidade.
Política de chave
Sua política de chaves do KMS deve conceder permissão ao AWS Security Agent para usar a chave para operações criptográficas. As principais declarações de política necessárias dependem dos tipos de recursos que você planeja criptografar e CMK-encrypted AWS dos recursos que você fornece ao serviço.
Política fundamental para Agent Spaces
A política de chaves a seguir concede ao AWS Security Agent as permissões necessárias para criptografar e descriptografar dados do Agent Space, incluindo resultados de testes de penetração e capturas de tela.
Substitua os seguintes valores de espaço reservado na política:
-
111122223333— O ID AWS da sua conta -
MyRole— A função do IAM que você usa para gerenciar o AWS Security Agent no console -
MyApplicationRole— A função do aplicativo criada durante a configuração do AWS Security Agent -
us-east-1— A AWS região onde você usa o AWS Security Agent
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyMetadataValidationForApplicationAndAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowUseOfHierarchicalKeyringForAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowSynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyApplicationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowAsynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" } } }, { "Sid": "AllowAsynchronousDataAccessForCodeRemediation", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } ] }
Importante
Para alternar as chaves de ramificação, sua política de chaves do KMS deve conceder kms:GenerateDataKeyWithoutPlaintextkms:ReEncryptTo, e kms:ReEncryptFrom permissões ao responsável pelo serviço principal do AWS Security Agent (securityagent.amazonaws.com), ou a rotação de chaves de ramificação falhará. Para obter mais informações sobre as permissões necessárias, consulte Girar uma chave de ramificação.
Política-chave para integrações
A política de chaves a seguir AWS concede ao Security Agent as permissões necessárias para criptografar e descriptografar dados de integração, incluindo descobertas de revisão de código.
Substitua os seguintes valores de espaço reservado na política:
-
111122223333— O ID AWS da sua conta -
MyRole— A função do IAM que você usa para gerenciar o AWS Security Agent no console -
us-east-1— A AWS região onde você usa o AWS Security Agent
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyAccessValidationForIntegrations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws-crypto-ec:aws:securityagent:integration": "arn:aws:securityagent:us-east-1:111122223333:integration/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowKeyMetadataValidationForIntegrations", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowAsynchronousDataAccessForIntegrations", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:integration/*" }, "StringLike": { "kms:EncryptionContext:aws-crypto-ec:aws:securityagent:integration": "arn:aws:securityagent:us-east-1:111122223333:integration/*" } } } ] }
nota
Você pode combinar as principais declarações de política do Agent Space, da integração e do pacote de requisitos de segurança em uma única política de chave se quiser usar a mesma chave KMS para vários tipos de recursos.
Política chave para pacotes de requisitos de segurança
A política de chaves a seguir concede ao AWS Security Agent as permissões necessárias para criptografar e descriptografar os dados do pacote de requisitos de segurança. Os pacotes de requisitos de segurança não usam uma função de aplicativo web. A política usa dois caminhos de acesso:
-
Caminho síncrono — Quando você chama a API, o serviço usa suas credenciais encaminhadas para chamar o AWS KMS em seu nome (por meio da condição).
kms:ViaService -
Caminho assíncrono — Para operações assíncronas em que os pacotes podem ser usados, o serviço usa seu próprio principal de serviço para chamar o KMS diretamente. AWS
Substitua os seguintes valores na política:
-
111122223333— O ID AWS da sua conta -
MyRole— A função do IAM que você usa para invocar operações do pacote de requisitos de segurança -
us-east-1— A AWS região onde você usa o AWS Security Agent
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyMetadataValidation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowUseOfHierarchicalKeyringForSecurityPacks", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:securityagent:security-requirement-pack": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" } } }, { "Sid": "AllowAsynchronousDataAccessForSecurityPacks", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:security-requirement-pack": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" }, "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" } } } ] }
A política contém três declarações:
-
AllowKeyMetadataValidation— Concede
kms:DescribeKeypara que o AWS Security Agent possa validar se sua chave gerenciada pelo cliente existe, está habilitada e usa criptografia simétrica quando você especifica uma CMK durante a criação do recurso. Usa akms:ViaServicecondição para garantir que a chamada seja originada por meio do serviço. -
AllowUseOfHierarchicalKeyringForSecurityPacks— Concede
kms:GenerateDataKeyWithoutPlaintext(cria novas chaves de ramificação),kms:ReEncryptTokms:ReEncryptFrom(gira chaves de ramificação existentes) ekms:Decrypt(recupera chaves de ramificação existentes) para operações de chaveiro hierárquico. Essas operações usam suas credenciais encaminhadas por meio do caminho síncrono e têm como escopo os recursos do pacote de requisitos de segurança de acordo com a condição do contexto de criptografia. -
AllowAsynchronousDataAccessForSecurityPacks— Concede
kms:GenerateDataKeyWithoutPlaintext,kms:Decryptkms:ReEncryptTo, ekms:ReEncryptFromao diretor de serviço do AWS Security Agent para operações assíncronas quando não há credenciais de chamador disponíveis.
Diferentemente da política de chaves do Agent Spaces, a política do pacote de requisitos de segurança não inclui um princípio de função de aplicativo web. Os pacotes de requisitos de segurança são acessados por meio do AWS Management Console usando sua função de administrador, não por meio do aplicativo web do AWS Security Agent. Todas as operações síncronas usam a função de chamador único (viakms:ViaService).
nota
Se você usar a mesma chave KMS para Agent Spaces e pacotes de requisitos de segurança, poderá combinar as principais declarações de política de ambas as seções em uma única política de chaves.
Política chave para CMK-encrypted AWS recursos
Se você fornecer AWS recursos criptografados com uma chave gerenciada pelo cliente para o AWS Security Agent, deverá atualizar a política de chaves na chave KMS de cada recurso para conceder as permissões necessárias. Isso se aplica aos seguintes recursos:
-
Buckets S3 — Se você fornecer recursos de aprendizado de um bucket S3 criptografado com uma chave gerenciada pelo cliente (SSE-KMS), a política de chaves deve permitir que a função de serviço de teste de penetração decifre objetos.
-
Segredos do Secrets Manager — Se suas credenciais de teste de penetração estiverem armazenadas em segredos do Secrets Manager criptografados com uma chave gerenciada pelo cliente, a política de chaves deve permitir que a função do serviço de teste de penetração decifre esses segredos. Se o aplicativo web criar segredos em seu nome, a política de chaves também deverá permitir que a função do aplicativo criptografe esses segredos.
-
CloudWatch Grupos de registros de registros — se o grupo de CloudWatch registros de registros usado para armazenar registros de execução de testes de penetração for criptografado com uma chave gerenciada pelo cliente, a política de chaves deverá permitir que o CloudWatch Logs valide a chave KMS por meio da função de serviço e permitir que o diretor do serviço de CloudWatch registros execute operações criptográficas.
Importante
AWS O Security Agent também pode criar grupos de CloudWatch registros de registros e segredos do Secrets Manager em seu nome. Ao configurar sua política de chaves do KMS, inclua também as declarações correspondentes para esses recursos criados pelo serviço.
As declarações políticas principais a seguir concedem as permissões necessárias para CMK-encrypted os recursos. Inclua somente as instruções que se aplicam à sua configuração. Se um recurso usar a mesma chave KMS que você especificou para o seu Espaço do Agente, adicione essas declarações à política dessa chave. Se um recurso usar uma chave KMS diferente, adicione essas declarações à política dessa chave.
Substitua os seguintes valores de espaço reservado na política:
-
111122223333— O ID AWS da sua conta -
MyApplicationRole— A função do aplicativo criada durante a configuração do AWS Security Agent -
MyPenTestServiceRole— A função do serviço de teste de penetração -
us-east-1— A AWS região onde você usa o AWS Security Agent
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKmsKeyAccessForCreatingSecrets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyApplicationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" } } }, { "Sid": "AllowKmsKeyDecryptionForS3Objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::YOUR-BUCKET-NAME*" } } }, { "Sid": "AllowKmsKeyDecryptionForSecretsManagerSecrets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:YOUR-SECRET-NAME*" } } }, { "Sid": "AllowKmsKeyValidationForCloudWatchLogsLogGroups", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "logs.*.amazonaws.com" } } }, { "Sid": "AllowKmsKeyAccessForCloudWatchLogsLogGroups", "Effect": "Allow", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:111122223333:log-group:YOUR-LOG-GROUP-NAME*" } } } ] }
nota
-
A
AllowKmsKeyDecryptionForS3Objectsdeclaração é necessária somente se você fornecer recursos de aprendizado de buckets do S3 criptografados com uma chave gerenciada pelo cliente. Para obter mais informações sobre a configuração do SSE-KMS S3, consulte Protegendo dados com. SSE-KMS -
A
AllowKmsKeyDecryptionForSecretsManagerSecretsdeclaração é necessária somente se suas credenciais de teste de penetração estiverem armazenadas em segredos do Secrets Manager criptografados com uma chave gerenciada pelo cliente. A função de serviço precisa ter acesso para decifrar segredos durante o teste de penetração. Para obter mais informações sobre criptografia secreta, consulte Criptografia e descriptografia secretas no Secrets Manager. -
A
AllowKmsKeyValidationForCloudWatchLogsLogGroupsdeclaração concede a função de serviçokms:DescribeKeypara que o CloudWatch Logs possa validar a chave KMS por meio da função de serviço ao associá-la a um grupo de registros. -
A
AllowKmsKeyAccessForCreatingSecretsdeclaração é necessária se o aplicativo web criar segredos do Secrets Manager em seu nome usando uma chave gerenciada pelo cliente. A função do aplicativo precisakms:GenerateDataKeykms:Decryptcriptografar o segredo com sua chave KMS. -
A
AllowKmsKeyAccessForCloudWatchLogsLogGroupsdeclaração concede ao serviço CloudWatch Logs principal (logs.us-east-1.amazonaws.com) as permissões necessárias para criptografar e descriptografar dados de registro. Essa declaração também é necessária se o AWS Security Agent criar um grupo de registros em seu nome quando você não fornece um existente. Para obter mais informações, consulte Criptografar dados de registro em CloudWatch registros usando o AWS KMS. -
Se vários recursos compartilharem a mesma chave KMS, você poderá combinar as declarações em uma única política de chaves.
Função de administrador
Nenhuma política adicional do IAM é necessária para a função de administrador (a função do IAM que você usa para gerenciar o AWS Security Agent no console).
Perfil da aplicação
Além da política de chaves do KMS, anexe a seguinte política do IAM à função do aplicativo especificada durante a configuração do AWS Security Agent. Essa política concede à função permissões para usar suas chaves gerenciadas pelo cliente para criptografar e descriptografar dados do Agent Space e criar segredos no Secrets Manager. AWS
Substitua os seguintes valores de espaço reservado na política:
-
111122223333— O ID AWS da sua conta -
us-east-1— A AWS região onde você usa o AWS Security Agent -
A chave KMS entra
Resource— Os ARNs das suas chaves KMS
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890cd" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333", "kms:ViaService": "securityagent.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" } } }, { "Sid": "AllowKmsKeyAccessForCreatingSecrets", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890cd" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" } } } ] }
nota
A função do aplicativo é uma função do IAM que você especifica ou que o console cria durante a configuração do AWS Security Agent. O aplicativo web assume essa função para recuperar os registros de execução do teste de penetração e criar segredos do Secrets Manager em seu nome.
-
A
AllowKmsKeyAccessForCreatingSecretsdeclaração é necessária se você configurar recursos de autenticação para testes de penetração e optar por inserir as credenciais diretamente em vez de especificar um segredo existente. O aplicativo web cria um segredo em seu nome, e a função do aplicativo precisa das permissões nesta declaração para criptografar o segredo com a chave gerenciada pelo cliente especificada para seu Espaço do Agente. Atualize osResourceARNs nesta declaração para que correspondam à chave KMS usada para seu Espaço do Agente.
Perfil de serviço
Durante o teste de penetração, o AWS Security Agent assume a função de serviço de teste de penetração para acessar seus recursos. AWS Se algum desses recursos for criptografado com uma chave gerenciada pelo cliente, você deverá conceder à função de serviço permissões para usar as chaves KMS correspondentes. Isso se aplica aos seguintes recursos:
-
Buckets do S3 — Se você fornecer recursos de aprendizado (como documentos de API, modelos de ameaças ou código-fonte) de um bucket do S3 criptografado com uma chave gerenciada pelo cliente, a função de serviço precisará de permissões para descriptografar objetos nesse bucket. Para obter mais informações sobre a configuração do SSE-KMS S3, consulte Protegendo dados com. SSE-KMS
-
Segredos do Secrets Manager — Se suas credenciais de teste de penetração estiverem armazenadas em segredos do Secrets Manager criptografados com uma chave gerenciada pelo cliente, a função de serviço precisará de permissões para descriptografar esses segredos. Para obter mais informações sobre criptografia secreta, consulte Criptografia e descriptografia secretas no Secrets Manager.
-
CloudWatch Grupos de registros de registros — se o grupo de CloudWatch registros de registros usado para armazenar registros de execução de testes de penetração for criptografado com uma chave gerenciada pelo cliente (incluindo grupos de registros criados pelo AWS Security Agent em seu nome), a função de serviço precisará de
kms:DescribeKeypermissão para validar a chave. O responsável pelo serviço de CloudWatch registros gerencia a criptografia e a descriptografia reais dos dados de registro, e essas permissões são concedidas por meio da política de chaves (consulte). Política de chave Para obter mais informações sobre a criptografia de dados de registro, consulte Criptografar dados de registro em CloudWatch Registros usando o AWS KMS.
Importante
Se você usar uma chave KMS diferente da especificada para seu Espaço do Agente para criptografar esses recursos, você deverá conceder permissões à função de serviço para cada chave KMS que proteja um recurso que a função de serviço acessa durante o teste de penetração.
Anexe a seguinte política do IAM à função do serviço de teste de penetração. Inclua somente as instruções que se aplicam à sua configuração.
Substitua os seguintes valores de espaço reservado na política:
-
111122223333— O ID AWS da sua conta -
us-east-1— A AWS região onde você usa o AWS Security Agent -
A chave KMS entra
Resource— Os ARNs das chaves gerenciadas pelo cliente usadas para criptografar cada recurso
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKmsAccessForEncryptedS3Buckets", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-S3-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::YOUR-BUCKET-NAME*" } } }, { "Sid": "AllowKmsAccessForEncryptedSecrets", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-SECRETS-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:YOUR-SECRET-NAME*" } } }, { "Sid": "AllowKmsKeyValidationForCloudWatchLogsLogGroups", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-CLOUDWATCH-LOGS-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "logs.*.amazonaws.com" } } } ] }
nota
-
A
AllowKmsAccessForEncryptedS3Bucketsdeclaração é necessária somente se você fornecer recursos de aprendizado de buckets do S3 criptografados com uma chave gerenciada pelo cliente. Atualize oResourceARN para corresponder à chave KMS usada para criptografar seu bucket do S3 e atualize okms:EncryptionContext:aws:s3:arnvalor para corresponder ao nome do bucket. -
A
AllowKmsAccessForEncryptedSecretsdeclaração é necessária somente se suas credenciais de teste de penetração estiverem armazenadas em segredos do Secrets Manager criptografados com uma chave gerenciada pelo cliente. Atualize oResourceARN para corresponder à chave KMS usada para criptografar seus segredos e atualize okms:EncryptionContext:SecretARNvalor para corresponder ao seu nome secreto. -
A
AllowKmsKeyValidationForCloudWatchLogsLogGroupsdeclaração é necessária somente se seu grupo de CloudWatch registros de registros for criptografado com uma chave gerenciada pelo cliente, incluindo grupos de registros criados pelo AWS Security Agent em seu nome. Atualize oResourceARN para que corresponda à chave KMS usada para criptografar seu grupo de registros. -
Se vários recursos compartilharem a mesma chave KMS, você poderá combinar as instruções e listar o ARN da chave compartilhada uma vez no
Resourcecampo.
Crie um recurso com uma chave gerenciada pelo cliente
Você pode especificar uma chave gerenciada pelo cliente ao configurar o AWS Security Agent ou ao criar recursos individuais. A chave KMS criptografa todos os dados pertencentes a esse recurso e seus sub-recursos.
Definir uma chave KMS padrão durante a configuração (console)
Você pode configurar uma chave KMS padrão durante a configuração inicial do AWS Security Agent. Essa chave é usada como padrão para novos Agent Spaces e integrações, a menos que você especifique uma chave diferente.
-
Na página Configurar o AWS Security Agent, expanda a seção Criptografia - opcional.
-
Selecione Personalizar configurações de criptografia (avançado).
-
Em Escolha uma chave do AWS KMS, selecione uma chave KMS da sua conta ou insira um ARN da chave KMS.
-
Conclua as etapas de configuração restantes e escolha Configurar o AWS Security Agent.
AWS O Security Agent valida a chave KMS para confirmar que ela existe, está habilitada e usa criptografia simétrica. Se a validação falhar, a configuração não prosseguirá e você receberá uma mensagem de erro.
Crie um espaço de agente com uma chave gerenciada pelo cliente (console)
-
No console do AWS Security Agent, navegue até a página Agent Spaces.
-
Escolha Criar espaço do agente.
-
Insira um nome e uma descrição opcional para o seu Espaço do Agente.
-
Expanda a seção Advanced.
-
Em Criptografia de dados, escolha uma das seguintes opções:
-
Usar chave padrão do aplicativo — Usa a chave KMS padrão configurada durante a configuração do AWS Security Agent. Essa opção é selecionada por padrão se uma chave padrão estiver configurada.
-
Use uma chave diferente — Especifique uma chave KMS diferente para esse Espaço do Agente. Selecione Personalizar configurações de criptografia (avançadas) e, em Escolha uma chave do AWS KMS, selecione uma chave KMS da sua conta ou insira um ARN.
-
-
Escolha Criar.
Crie uma integração com uma chave gerenciada pelo cliente (console)
-
No console do AWS Security Agent, navegue até a página Integrações.
-
Escolha Adicionar integração e selecione seu provedor (por exemplo, GitHub).
-
Conclua a Etapa 1: Instale e autorize o aplicativo do provedor.
-
Na Etapa 2: Detalhes do registro, insira um nome de registro e defina as configurações do provedor.
-
Na seção Criptografia de dados, selecione Personalizar configurações de criptografia (avançado).
-
Em Escolha uma chave do AWS KMS, selecione uma chave KMS da sua conta ou insira um ARN da chave KMS.
-
Selecione Conectar.
Crie um recurso com uma chave gerenciada pelo cliente (AWS (CLI ou SDK)
Para especificar uma chave gerenciada pelo cliente usando a AWS CLI ou o SDK:
-
Inclua o
defaultKmsKeyIdparâmetro ao chamarCreateApplicationpara definir uma chave KMS padrão para seu aplicativo. Essa chave é usada como alternativa ao criar Agent Spaces ou integrações sem uma chave KMS explícita. -
Inclua o
kmsKeyIdparâmetro ao chamarCreateAgentSpaceouCreateIntegrationcriptografar um recurso específico. Isso tem precedência sobre o padrão no nível do aplicativo.
Para obter detalhes dos parâmetros, consulte a Referência da API do AWS Security Agent.
Se você não especificar uma chave KMS, o AWS Security Agent usará a chave KMS padrão no nível do aplicativo, se houver uma configurada. Caso contrário, o recurso será criptografado com chaves AWS gerenciadas.
Alternância de chaves
AWS O Security Agent gira automaticamente as chaves de ramificação periodicamente. A rotação da chave de ramificação cria uma nova versão ativa da chave de ramificação, mantendo todas as versões anteriores. Depois da rotação:
-
Os novos dados são criptografados com a nova versão da chave de ramificação.
-
Os dados criptografados anteriormente permanecem decifráveis usando a versão mais antiga da chave de ramificação.
-
Não é necessária uma nova criptografia de dados.
A rotação da chave de ramificação é separada da rotação da chave KMS. Você pode ativar a rotação automática de chaves KMS para sua chave gerenciada pelo cliente de forma independente. Para obter mais informações, consulte Chaves rotativas do KMS no Guia do desenvolvedor do AWS Key Management Service.
Após a rotação da chave de ramificação, há um breve período durante o qual as cópias em cache da chave de ramificação anterior ainda podem ser usadas para novas operações de criptografia. Essa janela é determinada pelo tempo de vida útil do cache interno (TTL) e não afeta a segurança dos seus dados.
Considerações
Lembre-se do seguinte ao usar chaves gerenciadas pelo cliente com o AWS Security Agent:
-
As chaves gerenciadas pelo cliente se aplicam somente a novos recursos. Os recursos existentes criados antes de você configurar uma chave gerenciada pelo cliente continuam usando criptografia AWS gerenciada. Não há migração dos dados existentes.
-
As chaves gerenciadas pelo cliente são especificadas no momento da criação. Você especifica a chave KMS ao criar um recurso. Você não pode adicionar ou alterar a chave KMS de um recurso existente.
-
Várias chaves KMS são suportadas. Você pode usar chaves KMS diferentes para recursos diferentes. Por exemplo, você pode usar uma chave para Agent Spaces de produção e uma chave diferente para Agent Spaces de desenvolvimento.
-
Desativar ou excluir uma chave KMS torna os dados inacessíveis. Se você desabilitar ou agendar a exclusão de uma chave KMS, o AWS Security Agent não poderá descriptografar dados criptografados sob essa chave. Os recursos afetados ficam inacessíveis até que a chave seja reativada. A exclusão de uma chave KMS impede permanentemente o acesso a todos os dados criptografados sob essa chave.
-
As principais permissões de política são necessárias. Se você remover as permissões necessárias da sua política de chaves do KMS, o AWS Security Agent não poderá acessar dados criptografados. Certifique-se de que a política de chaves conceda permissões para a função de administrador (usada para gerenciar o serviço no AWS console), a função de aplicativo (usada pelo aplicativo web), a função de serviço de teste de penetração (assumida pelos agentes para executar testes de penetração) e o principal de serviço do AWS Security Agent, conforme descrito em. Permissões KMS necessárias
-
AWS As cotas do KMS se aplicam. As operações criptográficas em sua chave KMS contam para suas cotas de solicitação do AWS KMS. Em uso normal, a arquitetura hierárquica de chaveiros minimiza as chamadas KMS por meio do cache de chaves de ramificação. Para obter mais informações, consulte Solicitar cotas no Guia do desenvolvedor do AWS Key Management Service.