AWS IoT Device Defender 감사 결과를 보는 시기와 방법 사용자 지정 - AWS IoT Device Defender

AWS IoT Device Defender 감사 결과를 보는 시기와 방법 사용자 지정

AWS IoT Device Defender 감사는 정기적인 보안 검사를 제공하여 AWS IoT 디바이스와 리소스가 모범 사례를 따르고 있는지 확인합니다. 각 검사에 대해 감사 결과는 준수 또는 비준수로 분류되며, 준수하지 않으면 콘솔 경고 아이콘이 표시됩니다. 알려진 문제의 불필요한 반복 표시를 줄이기 위한 감사 결과 금지 기능을 사용하여 일시적으로 이러한 비준수 알림이 표시되지 않도록 설정할 수 있습니다.

미리 결정된 기간 동안 특정 리소스 또는 계정에 대한 특정 감사 검사를 금지(suppress)할 수 있습니다. 금지된 감사 검사 결과는 준수 및 비준수 범주와는 별개로 금지된 결과로 분류됩니다. 이 새 범주는 비준수 결과와 같은 경보를 트리거하지 않습니다. 이를 통해 알려진 유지 관리 기간 동안 또는 업데이트가 완료되도록 예약될 때까지 비준수 알림 방해를 줄일 수 있습니다.

시작하기

다음 단원에서는 감사 결과 금지를 사용하여 콘솔 및 CLI에서 Device certificate expiring 검사를 금지하는 방법을 자세히 설명합니다. 데모 중 하나를 따르려는 경우 먼저 Device Defender에서 감지할 수 있는 만료 인증서를 두 개 만들어야 합니다.

다음 단계에 따라 인증서를 만듭니다.

CLI를 사용하여 인증서를 생성하는 경우 다음 명령을 입력합니다.

openssl x509 -req \ -in device_cert_csr_filename \ -CA root_ca_pem_filename \ -CAkey root_ca_key_filename \ -CAcreateserial \ -out device_cert_pem_filename \ -days 1 -sha256

콘솔에서 감사 결과 사용자 지정

다음 연습에서는 비준수 감사 검사를 트리거하는 두 개의 만료된 디바이스 인증서가 있는 계정을 사용합니다. 이 시나리오에서는 개발자가 문제를 해결할 새 기능을 테스트하기 때문에 경고를 비활성화하려고 합니다. 감사 결과가 다음 주에 비준수되는 것을 방지하기 위해 각 인증서에 대해 감사 결과 금지를 생성합니다.

  1. 만료된 디바이스 인증서 검사가 비준수임을 보여주기 위해 먼저 온디맨드 감사를 실행합니다.

    AWS IoT 콘솔의 왼쪽 사이드바에서 방어를 선택한 다음 감사, 결과를 차례로 선택합니다. 감사 결과 페이지에서 생성을 선택합니다. 새 감사 생성 창이 열립니다. 생성을 선택합니다.

    만료된 디바이스 인증서 검사가 비준수임을 보여주기 위해 먼저 온디맨드 감사를 실행합니다.

    온디맨드 감사 결과에서 “디바이스 인증서 만료”가 두 리소스를 준수하지 않음을 알 수 있습니다.

  2. 이제 개발자가 경고를 수정할 새로운 기능을 테스트하고 있기 때문에 “디바이스 인증서 만료” 비준수 검사 경고를 비활성화하려고합니다.

    왼쪽 사이드바의 방어에서 감사를 선택한 다음 결과 금지를 선택합니다. 감사 결과 금지 페이지에서 생성을 선택합니다.

    콘솔에서 감사 결과 금지 항목을 만드는 흐름입니다.
  3. 감사 결과 금지 생성 창에서 다음을 작성해야합니다.

    • 감사 검사: 금지하려는 감사 검사이므로 Device certificate expiring을(를) 선택합니다.

    • 리소스 식별자: 감사 결과를 금지하려는 인증서 중 하나의 디바이스 인증서 ID를 입력합니다.

    • 금지 기간: Device certificate expiring 감사 검사를 금지하고자 하는 기간이므로 1 week을(를) 선택합니다.

    • 설명(선택 사항): 이 감사 결과를 금지하는 이유를 설명하는 메모를 추가합니다.

    자세한 정보를 입력해야 하는 감사 결과 금지 생성 페이지입니다.

    필드를 입력한 후 생성을 선택합니다. 감사 결과 금지가 생성된 후 성공 배너가 표시됩니다.

  4. 인증서 중 하나에 대한 감사 결과를 금지했으므로 이제 두 번째 인증서에 대한 감사 결과를 금지해야 합니다. 3단계에서 사용한 것과 동일한 금지 방법을 사용할 수 있지만 데모 목적으로 다른 방법을 사용할 것입니다.

    왼쪽 사이드바의 방어에서 감사를 선택한 다음 결과를 선택합니다. 감사 결과 페이지에서 비준수 리소스의 감사를 선택합니다. 그런 다음 비준수 검사에서 리소스를 선택합니다. 이 경우 “디바이스 인증서 만료”를 선택합니다.

  5. 디바이스 인증서 만료 페이지의 비준수 정책에서 금지해야 하는 결과 옆에 있는 옵션 버튼을 선택합니다. 그런 다음 작업 드롭다운 메뉴를 선택한 다음 결과를 금지하고 싶은 기간을 선택합니다. 이 경우, 다른 인증서와 마찬가지로 1 week을(를) 선택합니다. 금지 확인 창에서 금지 활성화를 선택합니다.

    흐름을 완료할 수 있는 감사 금지 생성 페이지입니다. 감사 결과 금지가 생성된 후 성공 배너를 볼 수 있습니다.

    감사 결과 금지가 생성된 후 성공 배너가 표시됩니다. 이제 개발자가 경고를 해결하기 위한 솔루션을 개발하는 동안 두 감사 결과가 모두 1주일 동안 금지되었습니다.

CLI에서 감사 결과 사용자 지정

다음 연습에서는 비준수 감사 검사를 트리거하는 디바이스 인증서가 만료된 계정을 사용합니다. 이 시나리오에서는 개발자가 문제를 해결할 새 기능을 테스트하기 때문에 경고를 비활성화하려고 합니다. 감사 결과가 다음 주에 비준수되는 것을 방지하기 위해 인증서에 대해 감사 결과 금지를 생성합니다.

다음 CLI 명령을 사용합니다.

  1. 다음 명령을 사용하여 감사를 활성화합니다.

    aws iot update-account-audit-configuration \ --audit-check-configurations "{\"DEVICE_CERTIFICATE_EXPIRING_CHECK\":{\"enabled\":true}}"

    출력:

    없음.

  2. 다음 명령을 사용하여 DEVICE_CERTIFICATE_EXPIRING_CHECK 감사 검사를 대상으로 하는 온디맨드 감사를 실행합니다.

    aws iot start-on-demand-audit-task \ --target-check-names DEVICE_CERTIFICATE_EXPIRING_CHECK

    출력:

    { "taskId": "787ed873b69cb4d6cdbae6ddd06996c5" }
  3. describe-account-audit-configuration 명령을 사용하여 감사 구성을 설명합니다. DEVICE_CERTIFICATE_EXPIRING_CHECK에 대한 감사 검사를 설정했는지 확인하고 싶습니다.

    aws iot describe-account-audit-configuration

    출력:

    { "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은(는) true의 값을 가져야 합니다.

  4. list-audit-task 명령을 사용하여 완료된 감사 태스크를 식별할 수 있습니다.

    aws iot list-audit-tasks \ --task-status "COMPLETED" \ --start-time 2020-07-31 \ --end-time 2020-08-01

    출력:

    { "tasks": [ { "taskId": "787ed873b69cb4d6cdbae6ddd06996c5", "taskStatus": "COMPLETED", "taskType": "SCHEDULED_AUDIT_TASK" } ] }

    1단계에서 실행한 감사의 taskId은(는) COMPLETEDtaskStatus여야 합니다.

  5. 이전 단계의 taskId 출력을 사용하여 완료된 감사에 대한 세부 정보를 확인하려면 describe-audit-task 명령을 사용합니다. 이 명령은 감사에 대한 세부 정보를 나열합니다.

    aws iot describe-audit-task \ --task-id "787ed873b69cb4d6cdbae6ddd06996c5"

    출력:

    { "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 } } }
  6. list-audit-findings 명령을 사용하여 비준수 인증서 ID를 찾으면 이 리소스에 대한 감사 알림을 일시중지할 수 있습니다.

    aws iot list-audit-findings \ --start-time 2020-07-31 \ --end-time 2020-08-01

    출력:

    { "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 } ] }
  7. create-audit-suppression 명령을 사용하여 2020-08-20까지 ID가 c7691e<shortened>인 디바이스 인증서에 대한 DEVICE_CERTIFICATE_EXPIRING_CHECK 감사 검사에 대해 알림을 표시하지 않습니다.

    aws iot create-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId="c7691e<shortened>" \ --no-suppress-indefinitely \ --expiration-date 2020-08-20
  8. list-audit-suppression 명령을 사용하여 감사 금지 설정을 확인하고 금지에 대한 세부 정보를 얻을 수 있습니다.

    aws iot list-audit-suppressions

    출력:

    { "suppressions": [ { "checkName": "DEVICE_CERTIFICATE_EXPIRING_CHECK", "resourceIdentifier": { "deviceCertificateId": "c7691e<shortened>" }, "expirationDate": 1597881600.0, "suppressIndefinitely": false } ] }
  9. update-audit-suppression 명령을 사용하여 감사 결과 금지를 업데이트할 수 있습니다. 아래 예제에서는 expiration-date을(를) 08/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
  10. delete-audit-suppression 명령을 사용하여 감사 결과 금지를 제거할 수 있습니다.

    aws iot delete-audit-suppression \ --check-name DEVICE_CERTIFICATE_EXPIRING_CHECK \ --resource-identifier deviceCertificateId="c7691e<shortened>"

    삭제를 확인하려면 list-audit-suppressions 명령을 사용합니다.

    aws iot list-audit-suppressions

    출력:

    { "suppressions": [] }

이 자습서에서는 콘솔 및 CLI에서 Device certificate expiring 검사를 금지하는 방법을 보여 주었습니다. 감사 결과 금지에 대한 자세한 내용은 감사 결과 금지 단원을 참조하세요.