View a markdown version of this page

Claves administradas por el cliente para AWS Security Agent - Agente de seguridad de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Claves administradas por el cliente para AWS Security Agent

De forma predeterminada, AWS Security Agent cifra todos los datos en reposo mediante claves de cifrado AWS administradas. Si lo desea, puede utilizar una clave gestionada por el cliente del Servicio de administración de AWS claves (AWS KMS) para cifrar sus datos, lo que le proporciona un control total sobre las claves de cifrado que protegen sus recursos.

AWS Security Agent admite claves administradas por el cliente a nivel de recursos. Al crear un recurso de nivel superior, como un espacio de agente o una integración, puede especificar una clave KMS para cifrar todos los datos que pertenecen a ese recurso y sus subrecursos. Por ejemplo, si se especifica una clave gestionada por el cliente al crear un Agent Space, se cifran todos los datos asociados a ese Agent Space, incluidas las configuraciones de Agent Space, las configuraciones de las pruebas de penetración, los trabajos y los detalles de ejecución, los datos de seguridad, los puntos finales descubiertos y las capturas de pantalla. También puedes proporcionar AWS recursos que ya estén cifrados con tu propia clave gestionada por el cliente, como depósitos de S3, grupos de CloudWatch registros de Logs o secretos de Secrets Manager. Para conocer los permisos de KMS necesarios, consultePermisos de KMS necesarios.

Cómo funcionan las claves administradas por el cliente

AWS Security Agent utiliza el conjunto de claves jerárquicas del AWS KMS para cifrar los datos con claves administradas por el cliente. Cuando especificas una clave de KMS durante la creación del recurso, el servicio crea una clave de sucursal protegida por tu clave de KMS y la almacena en un almacén de DynamoDB-based claves de Amazon. Para cada operación de cifrado, el conjunto de claves jerárquico obtiene una clave de empaquetado única de la clave de sucursal activa, que cifra una clave de cifrado de datos única para cada solicitud.

El anillo de claves jerárquico ofrece las siguientes ventajas:

  • Per-resource ámbito de cifrado: cada recurso de nivel superior tiene su propia clave de rama, por lo que los datos de los distintos recursos se cifran con claves independientes.

  • Rotación automática de claves: AWS Security Agent rota periódicamente las claves de ramificación. Tras la rotación, los datos nuevos se cifran con la nueva versión de la clave de rama, mientras que las versiones anteriores se conservan para descifrar los datos previamente cifrados.

Contexto de cifrado

AWS Security Agent utiliza el contexto de cifrado en todas las operaciones criptográficas con su clave KMS. El contexto de cifrado es un conjunto de pares clave-valor no secretos que proporciona datos autenticados adicionales para la operación de cifrado.

La clave de contexto de cifrado sigue el formatoaws:securityagent:_<resource-type>_, <resource-type> es decir, el tipo de recurso que se va a cifrar (por ejemplo, o). agent-space integration El valor es el nombre de recurso de Amazon (ARN) del recurso.

nota

En el caso de las integraciones, la clave de contexto de cifrado incluye el aws-crypto-ec: prefijo, lo que da como resultado el formato. aws-crypto-ec:aws:securityagent:integration

Puede usar el contexto de cifrado para limitar su política de claves de KMS a tipos de recursos específicos. Para obtener más información, consulte Permisos de KMS necesarios.

Default encryption (Cifrado predeterminado)

Cuando crea un recurso sin especificar una clave administrada por el cliente, AWS Security Agent cifra el recurso mediante claves de cifrado AWS administradas que proporcionan los servicios de almacenamiento subyacentes (Amazon DynamoDB y Amazon S3). No se requiere ninguna configuración adicional para el cifrado predeterminado.

Clave KMS predeterminada para las aplicaciones

Puede establecer una clave KMS predeterminada a nivel de aplicación. Cuando se configura una clave KMS predeterminada, AWS Security Agent la usa como alternativa para nuevos espacios de agente e integraciones cuando no se especifica explícitamente una clave KMS durante la creación del recurso.

Para establecer una clave KMS predeterminada, especifique el defaultKmsKeyId parámetro al crear o actualizar la aplicación mediante la AWS CLI o el SDK. La consola le pide que especifique una clave KMS predeterminada durante la configuración de la aplicación.

Cuando se especifica de forma explícita una clave KMS durante la creación del recurso, esta tiene prioridad sobre la predeterminada a nivel de aplicación.

Requisitos previos

Antes de configurar una clave administrada por el cliente, cumpla los siguientes requisitos previos:

  • Cree una clave KMS de cifrado simétrico en AWS KMS. La clave debe cumplir los siguientes requisitos:

    • Tipo de clave: simétrica

    • Uso de la clave: cifrar y descifrar

    • Especificación clave: SYMMETRIC_DEFAULT

    • Estado clave: activado

      Para obtener instrucciones, consulte Creación de claves en la Guía AWS para desarrolladores del Servicio de administración de claves.

  • Configure la política de claves de KMS y las políticas de IAM para conceder a AWS Security Agent los permisos necesarios. Para obtener más información, consulte Permisos de KMS necesarios.

Permisos de KMS necesarios

AWS Security Agent requiere permisos de KMS en dos escenarios:

  • Cifrado de datos en AWS Security Agent: cuando se especifica una clave gestionada por el cliente para un espacio de agente o una integración, el servicio necesita permisos para utilizar esa clave en las operaciones criptográficas con los datos.

  • Uso de CMK-encrypted AWS recursos: cuando proporciona AWS recursos cifrados con una clave administrada por el cliente (como depósitos de S3, grupos de CloudWatch registros de Logs o secretos de Secrets Manager), el servicio necesita permisos para usar esas claves y acceder a los recursos cifrados.

AWS Security Agent accede a la clave KMS con distintas identidades en función de la operación:

  • AWS Operaciones de la consola de administración: cuando los administradores crean o administran recursos en la consola de AWS administración (por ejemplo, al crear un espacio de agentes o actualizar una aplicación), el servicio utiliza la función de administrador para llamar a AWS KMS.

  • Operaciones de aplicaciones web: cuando los usuarios del IAM Identity Center acceden a los datos a través de la aplicación web AWS Security Agent (por ejemplo, consultan los resultados de las pruebas de penetración o inician una prueba de penetración), el servicio utiliza el rol de aplicación creado durante la configuración del AWS Security Agent para llamar a AWS KMS.

  • Acceso a los recursos proporcionados por el cliente: cuando el servicio accede a AWS los recursos proporcionados por el cliente durante las pruebas de penetración (como depósitos de S3, grupos de CloudWatch registros y secretos de Secrets Manager), utiliza la función de servicio de pruebas de penetración para llamar a KMS. AWS

  • Flujos de trabajo asíncronos: para las operaciones en segundo plano que se ejecutan fuera de cualquier sesión de usuario (por ejemplo, la ejecución de pruebas de penetración, el procesamiento de revisión de código y la rotación de claves de rama), el servicio utiliza su propio director de servicio (securityagent.amazonaws.com) para llamar a AWS KMS en su nombre.

En las siguientes secciones se describen los permisos necesarios para cada identidad.

Política de claves

Su política de claves de KMS debe conceder a AWS Security Agent permiso para usar la clave en operaciones criptográficas. Las declaraciones de política clave requeridas dependen de los tipos de recursos que planee cifrar y de CMK-encrypted AWS los recursos que proporcione al servicio.

Política clave para Agent Spaces

La siguiente política clave otorga a AWS Security Agent los permisos necesarios para cifrar y descifrar los datos de Agent Space, incluidos los resultados de las pruebas de penetración y las capturas de pantalla.

Sustituya los siguientes valores de marcador de posición en la política:

  • 111122223333 — El ID de tu AWS cuenta

  • MyRole — La función de IAM que utiliza para administrar AWS Security Agent en la consola

  • MyApplicationRole — El rol de la aplicación creado durante la configuración del AWS Security Agent

  • us-east-1 — La AWS región en la que usa 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 rotar las claves de las sucursales, la política de claves de KMS debe conceder kms:GenerateDataKeyWithoutPlaintext kms:ReEncryptFrom los permisos al director de servicio del AWS Security Agent (securityagent.amazonaws.com). De lo contrario, se producirá un error al rotar las claves de la sucursal. kms:ReEncryptTo Para obtener más información sobre los permisos necesarios, consulte Rotar una clave de rama.

Política clave para las integraciones

La siguiente política clave otorga a AWS Security Agent los permisos necesarios para cifrar y descifrar los datos de integración, incluidos los resultados de la revisión del código.

Sustituya los siguientes valores de marcador de posición en la política:

  • 111122223333 — El ID de tu AWS cuenta

  • MyRole — La función de IAM que utiliza para administrar AWS Security Agent en la consola

  • us-east-1 — La AWS región en la que usa 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

Puede combinar las declaraciones de política clave sobre el espacio de agente, la integración y el paquete de requisitos de seguridad en una sola política clave si desea utilizar la misma clave de KMS para varios tipos de recursos.

Política clave para los paquetes de requisitos de seguridad

La siguiente política de claves otorga a AWS Security Agent los permisos necesarios para cifrar y descifrar los datos del paquete con requisitos de seguridad. Los paquetes de requisitos de seguridad no utilizan una función de aplicación web. La política utiliza dos rutas de acceso:

  • Ruta sincrónica: cuando llamas a la API, el servicio usa tus credenciales reenviadas para llamar a AWS KMS en tu nombre (mediante la kms:ViaService condición).

  • Ruta asíncrona: para las operaciones asincrónicas en las que se pueden usar los paquetes, el servicio utiliza su propio director de servicio para llamar directamente a KMS. AWS

Sustituya los siguientes valores en la política:

  • 111122223333 — Tu ID AWS de cuenta

  • MyRole — La función de IAM que utiliza para invocar las operaciones del paquete de requisitos de seguridad

  • us-east-1 — La AWS región en la que usa Security Agent AWS

{ "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/*" } } } ] }

La política contiene tres declaraciones:

  • AllowKeyMetadataValidation— Se concede kms:DescribeKey para que AWS Security Agent pueda validar que la clave gestionada por el cliente existe, está habilitada y utiliza el cifrado simétrico cuando se especifica una CMK durante la creación del recurso. Utiliza la kms:ViaService condición para garantizar que la llamada se origine a través del servicio.

  • AllowUseOfHierarchicalKeyringForSecurityPacks— Concede kms:GenerateDataKeyWithoutPlaintext (crea nuevas claves de bifurcación), kms:ReEncryptTo kms:ReEncryptFrom (rota las claves de bifurcación existentes) y kms:Decrypt (recupera las claves de bifurcación existentes) para operaciones jerárquicas de generación de claves. Estas operaciones utilizan las credenciales reenviadas a través de la ruta sincrónica y se ajustan a los requisitos de seguridad de los recursos del paquete según la condición del contexto de cifrado.

  • AllowAsynchronousDataAccessForSecurityPacks— Concede kms:GenerateDataKeyWithoutPlaintext kms:Decryptkms:ReEncryptTo, y kms:ReEncryptFrom al director de servicio de AWS Security Agent para operaciones asincrónicas cuando no se dispone de las credenciales de la persona que llama.

A diferencia de la política de claves de Agent Spaces, la política del paquete de requisitos de seguridad no incluye el rol principal de una aplicación web. Se accede a los paquetes de requisitos de seguridad a través AWS de la consola de administración mediante su función de administrador, no a través de la aplicación web AWS Security Agent. Todas las operaciones sincrónicas utilizan la función de llamada única (viakms:ViaService).

nota

Si utiliza la misma clave KMS tanto para los espacios de agente como para los paquetes de requisitos de seguridad, puede combinar las principales declaraciones de política de ambas secciones en una única política clave.

Política clave para CMK-encrypted AWS recursos

Si proporciona AWS recursos cifrados con una clave administrada por el cliente a AWS Security Agent, debe actualizar la política de claves de la clave KMS de cada recurso para conceder los permisos necesarios. Esto se aplica a los siguientes recursos:

  • Depósitos de S3: si proporciona recursos de aprendizaje desde un depósito de S3 cifrado con una clave gestionada por el cliente (SSE-KMS), la política de claves debe permitir que la función de servicio de pruebas de penetración descifre los objetos.

  • Secrets Manager Secrets: si tus credenciales de prueba de penetración se almacenan en Secrets Manager secrets cifrados con una clave gestionada por el cliente, la política de claves debe permitir que el rol del servicio de pruebas de penetración descifre esos secretos. Si la aplicación web crea secretos en su nombre, la política de claves también debe permitir que el rol de la aplicación los cifre.

  • CloudWatch Grupos de registros: si el grupo de CloudWatch registros utilizado para almacenar los registros de ejecución de las pruebas de intrusión está cifrado con una clave gestionada por el cliente, la política de claves debe permitir a CloudWatch Logs validar la clave de KMS mediante la función de servicio y permitir que el director del servicio de CloudWatch registros realice operaciones criptográficas.

importante

AWS Security Agent también puede crear CloudWatch registros, grupos de registros y secretos de Secrets Manager en su nombre. Al configurar su política de claves de KMS, incluya también las declaraciones correspondientes a estos recursos creados por el servicio.

Las siguientes declaraciones de política clave otorgan los permisos necesarios para CMK-encrypted los recursos. Incluya solo las declaraciones que se apliquen a su configuración. Si un recurso usa la misma clave de KMS que especificó para su espacio de agente, añada estas declaraciones a la política de esa clave. Si un recurso usa una clave de KMS diferente, añada estas declaraciones a la política de esa clave.

Sustituya los siguientes valores de marcador de posición en la política:

  • 111122223333 — El ID de tu AWS cuenta

  • MyApplicationRole — El rol de la aplicación creado durante la configuración AWS del Security Agent

  • MyPenTestServiceRole — El rol del servicio de pruebas de penetración

  • us-east-1 — La AWS región en la que usas 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
  • La AllowKmsKeyDecryptionForS3Objects declaración solo es obligatoria si proporciona recursos de aprendizaje de depósitos de S3 cifrados con una clave administrada por el cliente. Para obtener más información sobre la configuración SSE-KMS de S3, consulte Proteger los datos con SSE-KMS.

  • La AllowKmsKeyDecryptionForSecretsManagerSecrets declaración solo es necesaria si las credenciales de la prueba de penetración se almacenan en Secrets Manager, secretos cifrados con una clave gestionada por el cliente. El rol de servicio necesita acceso para descifrar los secretos durante las pruebas de penetración. Para obtener más información sobre el cifrado secreto, consulte Cifrado y descifrado secretos en Secrets Manager.

  • La AllowKmsKeyValidationForCloudWatchLogsLogGroups declaración otorga la función de servicio kms:DescribeKey para que CloudWatch Logs pueda validar la clave de KMS a través de la función de servicio al asociarla a un grupo de registros.

  • La AllowKmsKeyAccessForCreatingSecrets declaración es obligatoria si la aplicación web crea secretos de Secrets Manager en su nombre mediante una clave gestionada por el cliente. El rol de la aplicación kms:Decrypt necesita kms:GenerateDataKey cifrar el secreto con su clave de KMS.

  • La AllowKmsKeyAccessForCloudWatchLogsLogGroups declaración otorga al director del servicio de CloudWatch registros (logs.us-east-1.amazonaws.com) los permisos que necesita para cifrar y descifrar los datos de registro. Esta declaración también es obligatoria si AWS Security Agent crea un grupo de registros en su nombre cuando usted no proporciona uno existente. Para obtener más información, consulte Cifrar los datos de registro en los CloudWatch registros mediante AWS KMS.

  • Si varios recursos comparten la misma clave de KMS, puede combinar las declaraciones en una única política de clave.

Función de administrador

No se requiere ninguna política de IAM adicional para el rol de administrador (el rol de IAM que se usa para administrar AWS Security Agent en la consola).

Rol de la aplicación

Además de la política clave de KMS, asocie la siguiente política de IAM al rol de aplicación especificado durante la configuración del AWS Security Agent. Esta política otorga al rol permisos para usar las claves administradas por el cliente para cifrar y descifrar los datos de Agent Space y crear AWS secretos en Secrets Manager.

Sustituya los siguientes valores de marcador de posición en la política:

  • 111122223333 — El ID de tu AWS cuenta

  • us-east-1 — La AWS región en la que usa AWS Security Agent

  • Los ARN de la clave de KMSResource: los ARN de las claves de 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

La función de aplicación es una función de IAM que se especifica o que la consola crea durante la configuración del AWS Security Agent. La aplicación web asume esta función para recuperar los registros de ejecución de las pruebas de penetración y crear secretos de Secrets Manager en su nombre.

  • La AllowKmsKeyAccessForCreatingSecrets declaración es obligatoria si configura los recursos de autenticación para las pruebas de penetración y decide introducir las credenciales directamente en lugar de especificar un secreto existente. La aplicación web crea un secreto en su nombre y el rol de la aplicación necesita los permisos de esta declaración para cifrar el secreto con la clave administrada por el cliente especificada para su espacio de agente. Actualice los Resource ARN de esta declaración para que coincidan con la clave de KMS utilizada en su espacio de agente.

Rol de servicio

Durante las pruebas de penetración, AWS Security Agent asume la función de servicio de pruebas de penetración para acceder a sus AWS recursos. Si alguno de estos recursos está cifrado con una clave administrada por el cliente, debe conceder al rol de servicio permisos para usar las claves de KMS correspondientes. Esto se aplica a los siguientes recursos:

  • Depósitos de S3: si proporciona recursos de aprendizaje (como documentos de API, modelos de amenazas o código fuente) desde un depósito de S3 cifrado con una clave gestionada por el cliente, el rol de servicio necesita permisos para descifrar los objetos de ese depósito. Para obtener más información sobre la configuración SSE-KMS de S3, consulte Proteger los datos con. SSE-KMS

  • Secrets Manager Secrets: si las credenciales de la prueba de penetración se almacenan en Secrets Manager secrets cifrados con una clave gestionada por el cliente, el rol de servicio necesita permisos para descifrar esos secretos. Para obtener más información sobre el cifrado secreto, consulte Cifrado y descifrado secretos en Secrets Manager.

  • CloudWatch Grupos de registros: si el grupo de CloudWatch registros utilizado para almacenar los registros de ejecución de las pruebas de penetración está cifrado con una clave gestionada por el cliente (incluidos los grupos de registros creados por AWS Security Agent en su nombre), el rol de servicio necesitará kms:DescribeKey permiso para validar la clave. El director del servicio de CloudWatch registros se encarga del cifrado y el descifrado reales de los datos de registro, y esos permisos se conceden mediante la política de claves (consultePolítica de claves). Para obtener más información sobre el cifrado de los datos de registro, consulte Cifrar los datos de registro en los CloudWatch registros mediante KMS. AWS

importante

Si utiliza para cifrar estos recursos una clave de KMS distinta de la que especificó para su espacio de agente, debe conceder al rol de servicio permisos para cada clave de KMS que proteja un recurso al que acceda el rol de servicio durante las pruebas de penetración.

Adjunte la siguiente política de IAM a la función de servicio de pruebas de penetración. Incluya solo las declaraciones que se apliquen a su configuración.

Sustituya los siguientes valores de marcador de posición en la política:

  • 111122223333 — El ID de tu AWS cuenta

  • us-east-1 — La AWS región en la que usa AWS Security Agent

  • Los ARN de la clave KMSResource: los ARN de las claves administradas por el cliente que se utilizan para cifrar 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
  • La AllowKmsAccessForEncryptedS3Buckets declaración solo es obligatoria si proporciona recursos de aprendizaje de depósitos de S3 cifrados con una clave administrada por el cliente. Actualice el Resource ARN para que coincida con la clave KMS utilizada para cifrar el depósito de S3 y actualice el kms:EncryptionContext:aws:s3:arn valor para que coincida con el nombre del depósito.

  • La AllowKmsAccessForEncryptedSecrets declaración solo es necesaria si las credenciales de la prueba de penetración se almacenan en Secrets Manager, secretos cifrados con una clave gestionada por el cliente. Actualice el Resource ARN para que coincida con la clave KMS utilizada para cifrar sus secretos y actualice el kms:EncryptionContext:SecretARN valor para que coincida con su nombre secreto.

  • La AllowKmsKeyValidationForCloudWatchLogsLogGroups declaración solo es necesaria si su grupo de CloudWatch registros está cifrado con una clave administrada por el cliente, incluidos los grupos de registros creados por AWS Security Agent en su nombre. Actualice el Resource ARN para que coincida con la clave KMS utilizada para cifrar el grupo de registros.

  • Si varios recursos comparten la misma clave KMS, puede combinar las sentencias y enumerar el ARN de clave compartida una vez en el Resource campo.

Cree un recurso con una clave gestionada por el cliente

Puede especificar una clave gestionada por el cliente al configurar AWS Security Agent o al crear recursos individuales. La clave KMS cifra todos los datos que pertenecen a ese recurso y sus subrecursos.

Establezca una clave KMS predeterminada durante la configuración (consola)

Puede configurar una clave KMS predeterminada durante la configuración inicial del AWS Security Agent. Esta clave se usa como predeterminada para los nuevos espacios de agentes y las integraciones, a menos que especifique una clave diferente.

  1. En la página Configurar AWS Security Agent, expanda la sección Cifrado (opcional).

  2. Seleccione Personalizar la configuración de cifrado (avanzada).

  3. En Elija una clave de AWS KMS, seleccione una clave de KMS de su cuenta o introduzca un ARN de clave de KMS.

  4. Complete los pasos de configuración restantes y elija Configurar AWS Security Agent.

AWS Security Agent valida la clave KMS para confirmar que existe, está habilitada y utiliza el cifrado simétrico. Si se produce un error en la validación, la configuración no continúa y se recibe un mensaje de error.

Cree un espacio de agente con una clave gestionada por el cliente (consola)

  1. En la consola AWS de Security Agent, vaya a la página Agent Spaces.

  2. Seleccione Crear espacio de agentes.

  3. Introduzca un nombre y una descripción opcional para su espacio de agente.

  4. Expanda la sección Avanzado.

  5. En Cifrado de datos, elija una de las siguientes opciones:

    • Usar la clave predeterminada de la aplicación: usa la clave KMS predeterminada configurada durante la configuración del AWS Security Agent. Esta opción se selecciona de forma predeterminada si se ha configurado una clave predeterminada.

    • Usar una clave diferente: especifique una clave KMS diferente para este espacio de agentes. Seleccione Personalizar la configuración de cifrado (avanzada) y, a continuación, en Elegir una clave de AWS KMS, seleccione una clave de KMS de su cuenta o introduzca un ARN.

  6. Seleccione Crear.

Cree una integración con una clave administrada por el cliente (consola)

  1. En la consola AWS de Security Agent, vaya a la página de integraciones.

  2. Elija Agregar integración y seleccione su proveedor (por ejemplo, GitHub).

  3. Complete el paso 1: instale y autorice la aplicación del proveedor.

  4. En el paso 2: registre los detalles, introduzca un nombre de registro y configure los ajustes del proveedor.

  5. En la sección Cifrado de datos, seleccione Personalizar la configuración de cifrado (avanzado).

  6. En Elija una clave de AWS KMS, seleccione una clave de KMS de su cuenta o introduzca un ARN de clave de KMS.

  7. Elija Conectar.

Cree un recurso con una clave administrada por el cliente (AWS (CLI o SDK)

Para especificar una clave administrada por el cliente mediante la AWS CLI o el SDK:

  • Incluya el defaultKmsKeyId parámetro cuando llame CreateApplication para establecer una clave KMS predeterminada para su aplicación. Esta clave se utiliza como alternativa al crear espacios de agente o integraciones sin una clave KMS explícita.

  • Incluya el kmsKeyId parámetro al llamar CreateAgentSpace o CreateIntegration cifrar un recurso específico. Esto tiene prioridad sobre el valor predeterminado a nivel de aplicación.

Para obtener información detallada sobre los parámetros, consulte la referencia de la API de AWS Security Agent.

Si no especifica una clave de KMS, AWS Security Agent utilizará la clave de KMS predeterminada a nivel de aplicación, si hay alguna configurada. De lo contrario, el recurso se cifra con claves AWS administradas.

Rotación de claves

AWS Security Agent rota automáticamente las claves de sucursal de forma periódica. La rotación de la clave de bifurcación crea una nueva versión activa de la clave de bifurcación, conservando todas las versiones anteriores. Tras la rotación:

  • Los datos nuevos se cifran con la nueva versión de clave de sucursal.

  • Los datos cifrados anteriormente se pueden descifrar con la versión anterior de clave de sucursal.

  • No es necesario volver a cifrar los datos.

La rotación de claves de sucursal es independiente de la rotación de claves de KMS. Puede activar la rotación automática de claves de KMS para su clave gestionada por el cliente de forma independiente. Para obtener más información, consulte Rotación de claves KMS en la Guía AWS para desarrolladores del Servicio de administración de claves.

Tras la rotación de una clave de bifurcación, hay un breve periodo durante el cual las copias almacenadas en caché de la clave de bifurcación anterior pueden seguir utilizándose para nuevas operaciones de cifrado. Este intervalo viene determinado por el tiempo de vida de la caché interna (TTL) y no afecta a la seguridad de los datos.

Consideraciones

Tenga en cuenta lo siguiente cuando utilice claves administradas por el cliente con AWS Security Agent:

  • Las claves administradas por el cliente se aplican únicamente a los recursos nuevos. Los recursos existentes creados antes de configurar una clave administrada por el cliente siguen utilizando el cifrado AWS administrado. No hay migración de los datos existentes.

  • Las claves gestionadas por el cliente se especifican en el momento de la creación. La clave KMS se especifica al crear un recurso. No puede agregar ni cambiar la clave KMS de un recurso existente.

  • Se admiten varias claves KMS. Puede usar diferentes claves de KMS para diferentes recursos. Por ejemplo, puede usar una clave para los Agent Spaces de producción y otra clave para los Agent Spaces de desarrollo.

  • Al deshabilitar o eliminar una clave de KMS, no se puede acceder a los datos. Si deshabilita o programa la eliminación de una clave KMS, AWS Security Agent no podrá descifrar los datos cifrados con esa clave. Los recursos afectados se vuelven inaccesibles hasta que se vuelva a activar la clave. La eliminación de una clave KMS impide permanentemente el acceso a todos los datos cifrados con esa clave.

  • Se requieren permisos de política clave. Si elimina los permisos necesarios de su política de claves de KMS, AWS Security Agent no podrá acceder a los datos cifrados. Asegúrese de que la política clave conceda permisos para la función de administrador (utilizada para administrar el servicio en la AWS consola), la función de aplicación (utilizada por la aplicación web), la función de servicio de pruebas de penetración (que asumen los agentes para realizar las pruebas de penetración) y la función principal del servicio de AWS Security Agent, tal como se describe enPermisos de KMS necesarios.

  • AWS Se aplican cuotas de KMS. Las operaciones criptográficas realizadas con la clave de KMS se tienen en cuenta para las cuotas de solicitudes de AWS KMS. En condiciones normales de uso, la arquitectura de conjunto de claves jerárquico minimiza las llamadas de KMS mediante el almacenamiento en caché de claves de rama. Para obtener más información, consulte Solicitar cuotas en la Guía para desarrolladores de AWS Key Management Service.