Personalizar cuándo y cómo ver los resultados de auditoría de AWS IoT Device Defender
La auditoría de AWS IoT Device Defender proporciona controles de seguridad periódicos para confirmar que los dispositivos y los recursos de AWS IoT siguen las prácticas recomendadas. Para cada comprobación, los resultados de auditoría se clasifican en conformes o no conformes, mientras que en caso de incumplimiento aparecen iconos de advertencia en la consola. Para reducir el ruido provocado por la repetición de problemas conocidos, la función de supresión de resultados de auditoría permite silenciar temporalmente estas notificaciones de incumplimiento.
Puede suprimir determinadas comprobaciones de auditoría para un recurso o una cuenta específicos durante un período de tiempo predeterminado. El resultado de una comprobación de auditoría que se ha suprimido se clasifica como resultado suprimido, independientemente de las categorías de conformidad y no conformidad. Esta nueva categoría no activa una alarma como si se tratara de un resultado no conforme. Esto le permite reducir las interrupciones en las notificaciones de incumplimiento durante los períodos de mantenimiento conocidos o hasta que esté programada la finalización de una actualización.
Introducción
En las siguientes secciones se detalla cómo puede utilizar las supresiones de los resultados de auditoría para suprimir una comprobación de Device certificate expiring
en la consola y en la CLI. Si desea seguir alguna de las demostraciones, primero debe crear dos certificados que venzan para que Device Defender los detecte.
Use lo siguiente para crear sus certificados.
-
Crear y registrar un certificado de CA, en la Guía para desarrolladores de AWS IoT Core
-
Cree un certificado de cliente mediante el certificado de entidad de certificación. En el paso 3, defina su parámetro
days
en1
.
Si usa la CLI para crear los certificados, escriba el comando siguiente.
openssl x509 -req \ -in
device_cert_csr_filename
\ -CAroot_ca_pem_filename
\ -CAkeyroot_ca_key_filename
\ -CAcreateserial \ -outdevice_cert_pem_filename
\ -days1
-sha256
Personalización de los resultados de la auditoría en la consola
En el siguiente tutorial, se utiliza una cuenta con dos certificados de dispositivo caducados que provocan una comprobación de auditoría no conforme. En este escenario, queremos deshabilitar la advertencia porque nuestros desarrolladores están probando una característica que solucionará el problema. Creamos una supresión de resultados de auditoría para cada certificado con el fin de evitar que el resultado de la auditoría no sea conforme durante la semana siguiente.
-
En primer lugar, realizaremos una auditoría bajo demanda para comprobar que la comprobación del certificado del dispositivo caducado no es conforme.
En la consola de AWS IoT
, elija Defend en la barra lateral izquierda, luego Audit y después Resultados. En la página Resultados de auditoría, seleccione Crear. Se abrirá la ventana Crear una auditoría nueva. Seleccione Crear. A partir de los resultados de la auditoría bajo demanda, podemos ver que la expresión «El certificado de dispositivo está caducando» no es compatible con dos recursos.
-
Ahora, queremos desactivar la advertencia de verificación de no conformidad que indica que el certificado del dispositivo está caducando, ya que nuestros desarrolladores están probando nuevas características para corregir esta advertencia.
En la barra lateral izquierda, debajo de Defend, elija Audit y, a continuación, Supresiones de resultados. En la página Supresiones de resultados de la auditoría, seleccione Crear.
-
En la ventana Crear una supresión de resultados de la auditoría, necesitamos rellenar lo siguiente.
-
Comprobación de auditoría: seleccionamos
Device certificate expiring
porque es la verificación de auditoría que queremos suprimir. -
Identificador de recursos: introducimos el identificador del certificado del dispositivo de uno de los certificados cuyos resultados de auditoría queremos suprimir.
-
Duración de la supresión: seleccionamos
1 week
porque ese es el tiempo durante el que queremos suprimir la comprobación de auditoría deDevice certificate expiring
. -
Descripción (opcional): agregamos una nota que describe por qué estamos suprimiendo este resultado de auditoría.
Tras de completar los campos, elija Crear. Vemos un banner indicando que se ha realizado todo correctamente después de que se haya creado la supresión de resultados de la auditoría.
-
-
Hemos suprimido el resultado de una auditoría para uno de los certificados y ahora necesitamos suprimir el resultado de la auditoría del segundo certificado. Podríamos utilizar el mismo método de supresión que utilizamos en el paso 3, pero utilizaremos un método diferente con fines de demostración.
En la barra lateral izquierda, debajo de Defend, elija Audit y, a continuación, Resultados. En la página Resultados de auditoría, elija la auditoría con el recurso no conforme. A continuación, seleccione el recurso en Comprobaciones de no conformidad. En nuestro caso, seleccionamos «Certificado de dispositivo que va a caducar».
-
En la página Certificado de dispositivo que va a caducar, en Política no conforme, seleccione el botón de opción situado junto al resultado que quiera suprimir. A continuación, seleccione el menú desplegable Acciones y luego elija el tiempo durante el que quiere que se suprima el resultado. En nuestro caso, elegimos
1 week
como hicimos con el otro certificado. En la ventana Confirme la supresión, seleccione Habilite la supresión.Vemos un banner indicando que se ha realizado todo correctamente después de que se haya creado la supresión de resultados de la auditoría. Ahora, los dos resultados de la auditoría se han ocultado durante una semana mientras nuestros desarrolladores trabajan en una solución que aborde la advertencia.
Personalización de los resultados de la auditoría en la CLI
En el siguiente tutorial, se utiliza una cuenta con un certificado de dispositivo caducado que provoca una comprobación de auditoría no conforme. En este escenario, queremos deshabilitar la advertencia porque nuestros desarrolladores están probando una característica que solucionará el problema. Creamos una supresión de resultados de auditoría para el certificado con el fin de evitar que el resultado de la auditoría no sea conforme durante la semana siguiente.
Utilizamos los siguientes comandos de la CLI.
-
Utilice el siguiente comando para activar la auditoría.
aws iot update-account-audit-configuration \ --audit-check-configurations "{\"DEVICE_CERTIFICATE_EXPIRING_CHECK\":{\"enabled\":true}}"
Salida:
Ninguna.
-
Utilice el siguiente comando para ejecutar una auditoría bajo demanda dirigida a la comprobación de auditoría de
DEVICE_CERTIFICATE_EXPIRING_CHECK
.aws iot start-on-demand-audit-task \ --target-check-names
DEVICE_CERTIFICATE_EXPIRING_CHECK
Salida:
{ "taskId": "787ed873b69cb4d6cdbae6ddd06996c5" }
-
Utilice el comando describe-account-audit-configuration para describir la configuración de la auditoría. Queremos confirmar que hemos activado la comprobación de auditoría para
DEVICE_CERTIFICATE_EXPIRING_CHECK
.aws iot describe-account-audit-configuration
Salida:
{ "roleArn": "
arn:aws:iam::<accountid>:role/service-role/project
", "auditNotificationTargetConfigurations": { "SNS": { "targetArn": "arn:aws:sns:us-east-1:<accountid>:project_sns
", "roleArn": "arn:aws:iam::<accountid>:role/service-role/project
", "enabled": true } }, "auditCheckConfigurations": { "AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": { "enabled": false }, "CA_CERTIFICATE_EXPIRING_CHECK": { "enabled": false }, "CA_CERTIFICATE_KEY_QUALITY_CHECK": { "enabled": false }, "CONFLICTING_CLIENT_IDS_CHECK": { "enabled": false }, "DEVICE_CERTIFICATE_EXPIRING_CHECK": { "enabled": true }, "DEVICE_CERTIFICATE_KEY_QUALITY_CHECK": { "enabled": false }, "DEVICE_CERTIFICATE_SHARED_CHECK": { "enabled": false }, "IOT_POLICY_OVERLY_PERMISSIVE_CHECK": { "enabled": true }, "IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK": { "enabled": false }, "IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK": { "enabled": false }, "LOGGING_DISABLED_CHECK": { "enabled": false }, "REVOKED_CA_CERTIFICATE_STILL_ACTIVE_CHECK": { "enabled": false }, "REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK": { "enabled": false }, "UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK": { "enabled": false } } }DEVICE_CERTIFICATE_EXPIRING_CHECK
debe tener un valor detrue
. -
Utilice el comando list-audit-task para identificar las tareas de auditoría completadas.
aws iot list-audit-tasks \ --task-status "COMPLETED" \ --start-time
2020-07-31
\ --end-time2020-08-01
Salida:
{ "tasks": [ { "taskId": "
787ed873b69cb4d6cdbae6ddd06996c5
", "taskStatus": "COMPLETED", "taskType": "SCHEDULED_AUDIT_TASK" } ] }El
taskId
de la auditoría que ejecutó en el paso 1 debe tener untaskStatus
deCOMPLETED
. -
Utilice el comando describe-audit-task para obtener detalles sobre la auditoría completada utilizando el resultado
taskId
del paso anterior. Este comando muestra los detalles de la auditoría.aws iot describe-audit-task \ --task-id "
787ed873b69cb4d6cdbae6ddd06996c5
"Salida:
{ "taskStatus": "COMPLETED", "taskType": "SCHEDULED_AUDIT_TASK", "taskStartTime": 1596168096.157, "taskStatistics": { "totalChecks": 1, "inProgressChecks": 0, "waitingForDataCollectionChecks": 0, "compliantChecks": 0, "nonCompliantChecks": 1, "failedChecks": 0, "canceledChecks": 0 }, "scheduledAuditName": "AWSIoTDeviceDefenderDailyAudit", "auditDetails": { "DEVICE_CERTIFICATE_EXPIRING_CHECK": { "checkRunStatus": "COMPLETED_NON_COMPLIANT", "checkCompliant": false, "totalResourcesCount": 195, "nonCompliantResourcesCount": 2 } } }
-
Utilice el comando list-audit-findings para buscar el identificador de certificado que no cumple los requisitos para que podamos suspender las alertas de auditoría de este recurso.
aws iot list-audit-findings \ --start-time
2020-07-31
\ --end-time2020-08-01
Salida:
{ "findings": [ { "findingId": "
296ccd39f806bf9d8f8de20d0ceb33a1
", "taskId": "787ed873b69cb4d6cdbae6ddd06996c5
", "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "taskStartTime": 1596168096.157, "findingTime": 1596168096.651, "severity": "MEDIUM", "nonCompliantResource": { "resourceType": "DEVICE_CERTIFICATE", "resourceIdentifier": { "deviceCertificateId": "b4490<shortened>" }, "additionalInfo": { "EXPIRATION_TIME": "1582862626000" } }, "reasonForNonCompliance": "Certificate is past its expiration.", "reasonForNonComplianceCode": "CERTIFICATE_PAST_EXPIRATION", "isSuppressed": false }, { "findingId": "37ecb79b7afb53deb328ec78e647631c", "taskId": "787ed873b69cb4d6cdbae6ddd06996c5", "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "taskStartTime": 1596168096.157, "findingTime": 1596168096.651, "severity": "MEDIUM", "nonCompliantResource": { "resourceType": "DEVICE_CERTIFICATE", "resourceIdentifier": { "deviceCertificateId": "c7691<shortened>" }, "additionalInfo": { "EXPIRATION_TIME": "1583424717000" } }, "reasonForNonCompliance": "Certificate is past its expiration.", "reasonForNonComplianceCode": "CERTIFICATE_PAST_EXPIRATION", "isSuppressed": false } ] } -
Utilice el comando create-audit-suppression para suprimir las notificaciones de la comprobación de auditoría de
DEVICE_CERTIFICATE_EXPIRING_CHECK
de un certificado de dispositivo con el identificador
hasta elc7691e<shortened>
20-08-2022
aws iot create-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId="
c7691e<shortened>
" \ --no-suppress-indefinitely \ --expiration-date2020-08-20
-
Utilice el comando list-audit-suppression para confirmar la configuración de supresión de la auditoría y obtener detalles sobre la supresión.
aws iot list-audit-suppressions
Salida:
{ "suppressions": [ { "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "resourceIdentifier": { "deviceCertificateId": "
c7691e<shortened>
" }, "expirationDate": 1597881600.0, "suppressIndefinitely": false } ] } -
El comando update-audit-suppression se puede utilizar para actualizar la supresión de resultados de la auditoría. En el siguiente ejemplo, se actualiza el
expiration-date
a08/21/20
.aws iot update-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId=c7691e<shortened> \ --no-suppress-indefinitely \ --expiration-date
2020-08-21
-
El comando delete-audit-suppression se puede utilizar para eliminar la supresión de un resultado de auditoría.
aws iot delete-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId="
c7691e<shortened>
"Para confirmar la eliminación, utilice el comando list-audit-suppressions.
aws iot list-audit-suppressions
Salida:
{ "suppressions": [] }
En este tutorial, le mostramos cómo suprimir una comprobación de Device certificate expiring
en la consola y en la CLI. Para obtener más información acerca de las supresiones de resultados de la auditoría, consulte Supresiones de resultados de auditoría.