Cifre los resultados de la consulta con AWS Key Management Service - Amazon CloudWatch Logs

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.

Cifre los resultados de la consulta con AWS Key Management Service

De forma predeterminada, CloudWatch Logs cifra los resultados almacenados de sus consultas de CloudWatch Logs Insights mediante el método de cifrado predeterminado del servidor de CloudWatch Logs. Puede optar por utilizar un AWS KMS en su lugar, una clave para cifrar estos resultados. Si asocias un AWS KMS clave con los resultados de cifrado, CloudWatch Logs utilizará esa clave para cifrar los resultados almacenados de todas las consultas de la cuenta.

Si posteriormente desasocias la clave de los resultados de la consulta, CloudWatch Logs volverá al método de cifrado predeterminado para consultas posteriores. Sin embargo, las consultas que se ejecutaron mientras la clave estaba asociada siguen cifradas con esa clave. CloudWatch Los registros pueden seguir devolviendo esos resultados una vez desasociada la KMS clave, ya que CloudWatch los registros pueden seguir haciendo referencia a la clave. Sin embargo, si la clave se deshabilita posteriormente, CloudWatch Logs no podrá leer los resultados de la consulta que se cifraron con esa clave.

importante

CloudWatch Logs solo admite KMS claves simétricas. No utilice una clave asimétrica para cifrar los resultados de la consulta. Para obtener más información, consulte Utilización de claves simétricas y asimétricas.

Límites

  • Para realizar los siguientes pasos, debe tener los siguientes permisos: kms:CreateKey, kms:GetKeyPolicy y kms:PutKeyPolicy.

  • Después de asociar una clave a los resultados de la consulta o desasociarla de ellos, la operación puede tardar hasta cinco minutos en surtir efecto.

  • Si revoca el acceso de CloudWatch Logs a una clave asociada o elimina una KMS clave asociada, los datos cifrados de los CloudWatch registros ya no se podrán recuperar.

  • No puedes usar la CloudWatch consola para asociar una clave, debes usar la AWS CLI o CloudWatch RegistrosAPI.

Paso 1: Crear un AWS KMS key

Para crear una KMS clave, utilice el siguiente comando create-key:

aws kms create-key

El resultado contiene el ID de clave y el nombre de recurso de Amazon (ARN) de la clave. A continuación, se muestra un ejemplo de la salida:

{ "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1478910250.94, "Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59", "AWSAccountId": "123456789012", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

Paso 2: Defina los permisos de la KMS clave

De forma predeterminada, todas KMS las claves son privadas. Solo el propietario del recurso puede utilizarla para cifrar y descifrar datos. Sin embargo, el propietario del recurso puede conceder permisos para que otros usuarios y recursos accedan a la clave. Con este paso, concedes al servicio de CloudWatch registros el permiso principal para usar la clave. Este principal de servicio debe estar en el mismo AWS Región en la que se guarda la clave.

Como práctica recomendada, le recomendamos que restrinja el uso de la clave solo a esas AWS cuentas que especifique.

En primer lugar, guarde la política predeterminada de su KMS clave policy.json mediante el siguiente get-key-policycomando:

aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json

Abra el archivo policy.json en un editor de texto y agregue la sección en negrita desde una de las instrucciones siguientes. Separe la instrucción existente de la nueva instrucción con una coma. Estas instrucciones utilizan Condition secciones para mejorar la seguridad del AWS KMS clave. Para obtener más información, consulte AWS KMS claves y contexto de cifrado.

La Condition sección de este ejemplo limita el uso de AWS KMS clave para los resultados de la consulta de CloudWatch Logs Insights en la cuenta especificada.

{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_ID:root" }, "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:logs:region:account_ID:query-result:*" }, "StringEquals": { "aws:SourceAccount": "Your_account_ID" } } } ] }

Por último, añada la política actualizada mediante el siguiente put-key-policycomando:

aws kms put-key-policy --key-id key-id --policy-name default --policy file://policy.json

Paso 3: asocie una KMS clave a los resultados de la consulta

Para asociar la KMS clave a los resultados de la consulta en la cuenta

Utilice el comando disassociate-kms-key como se indica a continuación:

aws logs associate-kms-key --resource-identifier "arn:aws:logs:region:account-id:query-result:*" --kms-key-id "key-arn"

Paso 4: desasociar una clave de los resultados de la consulta en la cuenta

Para desasociar la KMS clave asociada a los resultados de la consulta, utilice el siguiente disassociate-kms-keycomando:

aws logs disassociate-kms-key --resource-identifier "arn:aws:logs:region:account-id:query-result:*"