완화 작업 - AWS IoT Device Defender

완화 작업

AWS IoT Device Defender을(를) 사용하여 감사 결과 또는 감지 경보에서 발견한 문제를 완화하는 작업을 수행합니다.

참고

금지된 감사 결과에 대해서는 완화 작업이 수행되지 않습니다. 감사 결과 금지에 대한 자세한 내용은 감사 결과 금지 단원을 참조하세요.

감사 완화 작업

AWS IoT Device Defender에서는 여러 감사 검사에 대해 미리 정의된 작업을 제공합니다. AWS 계정에 대해 이러한 작업을 구성한 다음 일련의 결과에 적용합니다. 결과는 다음 중 하나일 수 있습니다.

  • 모든 감사 결과. 이 옵션은 AWS IoT 콘솔에서 사용할 수 있으며 AWS CLI로도 사용할 수 있습니다.

  • 개별 결과의 목록. 이 옵션은 AWS CLI로만 사용할 수 있습니다.

  • 감사 결과 중 필터링된 집합.

다음 표에는 감사 검사의 유형과 각 유형에 지원되는 완화 작업이 나열되어 있습니다.

감사 검사 - 완화 작업 매핑
감사 검사 지원되는 완화 작업
REVOKED_CA_CERT_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_CA_CERTIFICATE
INTERMEDIATE_CA_REVOKED_FOR_ACTIVE_DEVICE_CERTIFICATES_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
DEVICE_CERTIFICATE_SHARED_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK PUBLISH_FINDING_TO_SNS
AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK PUBLISH_FINDING_TO_SNS
IOT_POLICY_OVERLY_PERMISSIVE_CHECK PUBLISH_FINDING_TO_SNS, REPLACE_DEFAULT_POLICY_VERSION
IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK PUBLISH_FINDING_TO_SNS, REPLACE_DEFAULT_POLICY_VERSION
CA_CERTIFICATE_EXPIRING_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_CA_CERTIFICATE
CONFLICTING_CLIENT_IDS_CHECK PUBLISH_FINDING_TO_SNS
DEVICE_CERTIFICATE_EXPIRING_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
REVOKED_DEVICE_CERTIFICATE_STILL_ACTIVE_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
LOGGING_DISABLED_CHECK PUBLISH_FINDING_TO_SNS, ENABLE_IOT_LOGGING
DEVICE_CERTIFICATE_KEY_QUALITY_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_DEVICE_CERTIFICATE, ADD_THINGS_TO_THING_GROUP
CA_CERTIFICATE_KEY_QUALITY_CHECK PUBLISH_FINDING_TO_SNS, UPDATE_CA_CERTIFICATE
IOT_ROLE_ALIAS_OVERLY_PERMISSIVE_CHECK PUBLISH_FINDING_TO_SNS
IOT_ROLE_ALIAS_ALLOWS_ACCESS_TO_UNUSED_SERVICES_CHECK PUBLISH_FINDING_TO_SNS

모든 감사 검사는 Amazon SNS에 대한 감사 결과 게시를 지원하므로 알림에 따라 사용자 지정 작업을 수행할 수 있습니다. 각 감사 검사 유형마다 추가적인 완화 작업을 지원할 수 있습니다.

REVOKED_CA_CERT_CHECK
  • 인증서 상태를 변경하여 AWS IoT에서 비활성으로 표시합니다.

DEVICE_CERTIFICATE_SHARED_CHECK
  • 디바이스 인증서 상태를 변경하여 AWS IoT에서 비활성으로 표시합니다.

  • 해당 인증서를 사용하는 디바이스를 사물 그룹에 추가합니다.

UNAUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK
  • 추가로 지원되는 작업이 없습니다.

AUTHENTICATED_COGNITO_ROLE_OVERLY_PERMISSIVE_CHECK
  • 추가로 지원되는 작업이 없습니다.

IOT_POLICY_OVERLY_PERMISSIVE_CHECK
  • 빈 AWS IoT 정책 버전을 추가하여 권한을 제한합니다.

IOT_POLICY_POTENTIAL_MISCONFIGURATION_CHECK
  • AWS IoT 정책의 잠재적 구성 오류를 식별합니다.

CA_CERT_APPROACHING_EXPIRATION_CHECK
  • 인증서 상태를 변경하여 AWS IoT에서 비활성으로 표시합니다.

CONFLICTING_CLIENT_IDS_CHECK
  • 추가로 지원되는 작업이 없습니다.

DEVICE_CERT_APPROACHING_EXPIRATION_CHECK
  • 디바이스 인증서 상태를 변경하여 AWS IoT에서 비활성으로 표시합니다.

  • 해당 인증서를 사용하는 디바이스를 사물 그룹에 추가합니다.

DEVICE_CERTIFICATE_KEY_QUALITY_CHECK
  • 디바이스 인증서 상태를 변경하여 AWS IoT에서 비활성으로 표시합니다.

  • 해당 인증서를 사용하는 디바이스를 사물 그룹에 추가합니다.

CA_CERTIFICATE_KEY_QUALITY_CHECK
  • 인증서 상태를 변경하여 AWS IoT에서 비활성으로 표시합니다.

REVOKED_DEVICE_CERT_CHECK
  • 디바이스 인증서 상태를 변경하여 AWS IoT에서 비활성으로 표시합니다.

  • 해당 인증서를 사용하는 디바이스를 사물 그룹에 추가합니다.

LOGGING_DISABLED_CHECK
  • 로깅을 활성화합니다.

AWS IoT Device Defender은(는) 감사 결과에 대해 다음과 같은 유형의 완화 작업을 지원합니다.

작업 유형

참고
ADD_THINGS_TO_THING_GROUP 디바이스를 추가할 그룹을 지정합니다. 사물이 속할 수 있는 최대 그룹 수를 초과한 경우 동적 그룹 하나 이상의 회원 자격을 재정의해야 하는지 여부도 지정합니다.
ENABLE_IOT_LOGGING 로깅 수준과 로깅 권한을 가진 역할을 지정합니다. DISABLED의 로깅 수준은 지정할 수 없습니다.
PUBLISH_FINDING_TO_SNS 결과를 게시해야 하는 주제를 지정합니다.
REPLACE_DEFAULT_POLICY_VERSION 템플릿 이름을 지정합니다. 정책 버전을 기본 또는 빈 정책으로 바꿉니다. 현재 BLANK_POLICY 값만 지원됩니다.
UPDATE_CA_CERTIFICATE CA 인증서의 새로운 상태를 지정합니다. 현재 DEACTIVATE 값만 지원됩니다.
UPDATE_DEVICE_CERTIFICATE 디바이스 인증서의 새로운 상태를 지정합니다. 현재 DEACTIVATE 값만 지원됩니다.

감사 중 문제가 발견되는 경우에 표준 작업을 구성해 두면 이러한 문제에 일관되게 대응할 수 있습니다. 이렇게 정의된 완화 작업을 사용하면 문제를 더욱 빠르게 처리하고 사람에 의해 발생하는 오류 가능성을 줄일 수 있습니다.

중요

인증서를 변경하거나 새로운 사물 그룹에 사물을 추가하거나 정책을 바꾸는 완화 작업을 수행하면 디바이스와 애플리케이션에 영향이 있을 수 있습니다. 예를 들어 디바이스를 연결할 수 없는 경우가 있을 수 있습니다. 완화 작업을 수행하기 전에 이 작업이 미칠 영향을 고려하세요. 디바이스와 애플리케이션이 정상적으로 작동하려면 문제를 바로잡기 위한 다른 작업을 수행해야 할 수 있습니다. 예를 들어 업데이트된 디바이스 인증서를 제공해야 할 수 있습니다. 완화 작업은 위험을 신속하게 제한하는 데 도움이 될 수 있으나 근본 문제를 해결하기 위해서는 여전히 수정 작업을 수행해야 합니다.

디바이스 인증서의 재활성화 같은 일부 작업은 수동으로만 수행할 수 있습니다. AWS IoT Device Defender는 이미 수행된 완화 작업을 자동으로 롤백하는 메커니즘을 제공하지 않습니다.

완화 작업 감지

AWS IoT Device Defender은(는) 감지 경보에 대해 다음과 같은 유형의 완화 작업을 지원합니다.

작업 유형

참고
ADD_THINGS_TO_THING_GROUP 디바이스를 추가할 그룹을 지정합니다. 사물이 속할 수 있는 최대 그룹 수를 초과한 경우 동적 그룹 하나 이상의 회원 자격을 재정의해야 하는지 여부도 지정합니다.

완화 작업을 정의하고 관리하는 방법

AWS IoT 콘솔이나 AWS CLI을(를) 사용하여 AWS 계정의 완화 작업을 정의하고 관리할 수 있습니다.

완화 작업 생성

정의한 각 완화 작업은 사전 정의된 작업 유형과 계정 전용 파라미터의 조합으로 이루어져 있습니다.

AWS IoT 콘솔을 사용하여 완화 작업을 생성하려면

  1. AWS IoT 콘솔의 Mitigation actions(완화 작업) 페이지를 엽니다.

  2. Mitigation actions(완화 작업) 페이지에서 Create(생성)를 선택합니다.

  3. Create a new mitigation action(새 완화 작업 생성) 페이지의 Action name(작업 이름)에서 완화 작업에 고유한 이름을 입력합니다.

  4. 작업 유형에서 정의할 작업의 유형을 지정합니다.

  5. Permissions(권한)에서 작업이 적용되는 권한의 IAM 역할을 선택합니다.

  6. 작업 유형마다 다른 파라미터 집합을 요청합니다. 작업의 파라미터를 입력합니다. 예를 들어, 사물 그룹에 사물 추가 작업 유형을 선택한 경우 대상 그룹을 선택한 다음 Override dynamic groups(동적 그룹 재정의)를 선택하거나 지웁니다.

  7. Create(생성)를 선택하여 완화 작업을 AWS 계정에 저장합니다.

AWS CLI를 사용하여 완화 작업을 생성하려면
  • CreateMitigationAction 명령을 사용하여 완화 작업을 생성합니다. 작업을 감사 결과에 적용할 때는 작업에 붙인 고유한 이름이 사용됩니다. 의미 있는 이름을 선택하세요.

AWS IoT 콘솔을 사용하여 완화 작업을 확인하고 수정하려면
  1. AWS IoT 콘솔의 Mitigation actions(완화 작업) 페이지를 엽니다.

    Mitigation Actions(완화 작업) 페이지에 AWS 계정에 대해 정의된 모든 완화 작업의 목록이 표시됩니다.

  2. 변경하려는 완화 작업의 작업 이름 링크를 선택합니다.

  3. Edit(편집)을 선택하여 완화 작업을 변경합니다. 완화 작업의 이름은 작업을 식별하는 데 사용되므로 이름을 변경할 수 없습니다.

  4. Update(업데이트)를 선택하여 완화 작업에 대한 변경 사항을 AWS 계정에 저장합니다.

AWS CLI를 사용하여 완화 작업을 나열하려면
  • ListMitigationAction 명령을 사용하여 완화 작업을 나열합니다. 완화 작업을 변경하거나 삭제하려면 이름을 기록해 둡니다.

AWS CLI를 사용하여 완화 작업을 업데이트하려면
AWS IoT 콘솔을 사용하여 완화 작업을 삭제하려면
  1. AWS IoT 콘솔의 Mitigation actions(완화 작업) 페이지를 엽니다.

    완화 작업(Mitigation actions) 페이지에 AWS 계정에 대해 정의된 모든 완화 작업이 표시됩니다.

  2. 삭제하려는 완화 작업을 선택한 다음 Delete(삭제)를 선택합니다.

  3. Are you sure you want to delete(삭제하시겠습니까?) 창에서 Delete(삭제)를 선택합니다.

AWS CLI 콘솔을 사용하여 완화 작업을 삭제하려면
AWS IoT 콘솔을 사용하여 완화 작업의 세부 정보를 확인하려면
  1. AWS IoT 콘솔의 Mitigation actions(완화 작업) 페이지를 엽니다.

    완화 작업(Mitigation actions) 페이지에 AWS 계정에 대해 정의된 모든 완화 작업이 표시됩니다.

  2. 확인하려는 완화 작업의 작업 이름 링크를 선택합니다.

AWS CLI를 사용하여 완화 작업의 세부 정보를 확인하려면

완화 작업 적용

완화 작업 집합을 정의한 후 이러한 작업을 감사 결과에 적용합니다. 작업을 적용하면 감사 완화 작업을 시작합니다. 결과 집합과 적용하는 작업에 따라 이 작업을 완료하는 데 다소 시간이 소요될 수 있습니다. 예를 들어 인증서가 만료된 인증서의 대규모 풀이 있는 경우 모든 인증서를 비활성화하거나 디바이스를 격리 그룹으로 옮기는 데 시간이 소요될 수 있습니다. 로깅 활성화와 같은 다른 작업은 빠르게 완료됩니다.

작업 실행 목록을 확인하고 아직 완료되지 않은 실행을 취소할 수 있습니다. 취소된 작업 실행 중 이미 수행한 작업은 롤백되지 않습니다. 여러 작업을 결과 집합에 적용하던 중 작업 중 하나가 실패한 경우 해당 결과는 후속 작업을 건너 뜁니다(다른 결과에는 적용됨) 결과의 작업 상태는 FAILED입니다. 하나 이상의 작업이 결과에 적용될 때 실패한 경우 taskStatus는 FAILED로 설정됩니다. 작업은 지정된 순서대로 적용됩니다.

각 작업 실행 시 작업 집합이 대상에 적용됩니다. 대상은 결과 목록이거나 모든 감사 결과일 수 있습니다.

다음 다이어그램은 하나의 감사에서 모든 결과를 가져와서 이 결과에 작업 집합을 적용하는 감사 완화 작업을 어떻게 정의하는지 보여줍니다. 한 번 실행 시 하나의 결과에 하나의 결과가 적용됩니다. 감사 완화 작업에서 실행 요약이 출력됩니다.

개념 이미지가 감사 완화 작업을 보여줍니다.

다음 다이어그램은 하나 이상의 감사에서 개별 결과 목록을 가져와서 이 결과에 작업 집합을 적용하는 감사 완화 작업을 어떻게 정의하는지 보여줍니다. 한 번 실행 시 하나의 결과에 하나의 결과가 적용됩니다. 감사 완화 작업에서 실행 요약이 출력됩니다.

개념 이미지가 감사 완화 작업을 보여줍니다.

AWS IoT 콘솔 또는 AWS CLI를 사용하여 완화 정책을 적용할 수 있습니다.

AWS IoT 콘솔에서 작업 실행으로 완화 정책을 적용하려면
  1. AWS IoT 콘솔의 Audit results(감사 결과) 페이지를 엽니다.

  2. 작업을 적용할 감사의 이름을 선택합니다.

  3. Start mitigation actions(완화 작업 시작)를 선택합니다. 모든 검사가 규정을 준수하는 경우 이 버튼을 사용할 수 없습니다.

  4. Start a new mitigation action(새 완화 작업 시작)에서 작업 이름은 감사 ID로 기본 설정되지만 더 의미 있는 이름으로 변경할 수 있습니다.

  5. 감사에 규정을 준수하지 않는 결과가 하나 이상 있는 각 검사 유형의 경우 적용할 작업을 하나 이상 선택할 수 있습니다. 검사 유형에 대해 유효한 작업만 표시됩니다.

    참고

    AWS 계정에 대한 작업을 구성하지 않은 경우 해당 작업 목록은 비어 있습니다. Create mitigation action(완화 작업 생성) 링크를 선택하여 하나 이상의 완화 작업을 생성할 수 있습니다.

  6. 적용하려는 모든 작업을 지정했으면 Start task(작업 시작)를 선택합니다.

AWS CLI에서 감사 완화 작업 실행을 시작하여 완화 정책을 적용하려면
  1. 작업을 모든 감사 결과에 적용하려면 ListAuditTasks 명령을 사용하여 작업 ID를 찾습니다.

  2. 작업을 선택한 결과에만 적용하려면 ListAuditFindings 명령을 사용하여 결과 ID를 가져옵니다.

  3. ListMitigationActions 명령을 사용하고 적용하려는 완화 작업의 이름을 기록해 둡니다.

  4. StartAuditMitigationActionsTask 명령을 사용하여 작업을 대상에 적용할 수 있습니다. 작업 ID을 기록해 둡니다. ID를 사용하여 작업 실행 상태를 확인하거나 세부 정보를 검토하거나 취소할 수 있습니다.

AWS IoT 콘솔을 사용하여 작업 실행을 확인하려면
  1. AWS IoT 콘솔의 Action tasks(작업 태스크) 페이지를 엽니다.

    작업 목록에는 각 작업이 시작된 시기와 현재 상태가 표시됩니다.

  2. 작업의 세부 정보를 보려면 이름 링크를 선택합니다. 세부 정보에는 작업, 대상, 상태별로 적용된 작업이 모두 포함됩니다.

    감사 완화 작업 세부 정보입니다.

    Show executions for(다음에 대한 실행 표시) 필터를 사용하여 작업 유형 또는 작업 상태에 초점을 맞출 수 있습니다.

  3. 작업에 대한 세부 정보를 보려면 실행에서 표시를 선택합니다.

    감사 완화 작업의 실행 세부 정보입니다.
AWS CLI를 사용하여 시작한 작업의 목록을 생성하려면
  1. ListAuditMitigationActionsTasks를 사용하여 감사 완화 작업 태스크를 봅니다. 결과를 줄이기 위한 필터를 제공할 수 있습니다. 작업의 세부 정보를 보려면 작업 ID를 기록해 둡니다.

  2. ListAuditMitigationActionsExecutions를 사용하여 특정 감사 완화 작업의 실행 세부 정보를 확인합니다.

  3. DescribeAuditMitigationActionsTask를 사용하여 시작 시 지정된 파라미터 등의 작업 관련 세부 정보를 확인합니다.

AWS CLI를 사용하여 실행 중인 감사 완화 작업을 취소하려면
  1. ListAuditMitigationActionsTasks 명령을 사용하여 실행을 취소할 작업의 작업 ID를 찾습니다. 결과를 줄이기 위한 필터를 제공할 수 있습니다.

  2. ListDetectMitigationActionsExecutions 명령으로 작업 ID를 사용하여 감사 완화 작업을 취소합니다. 완료된 작업은 취소할 수 없습니다. 작업을 취소하면 남은 작업은 적용되지 않지만 이미 적용된 완화 작업은 롤백되지 않습니다.

권한

정의한 각 완화 작업에 해당 작업을 적용하는 데 사용한 역할을 제공해야 합니다.

완화 작업 권한
작업 유형 권한 정책 템플릿

UPDATE_DEVICE_CERTIFICATE

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:UpdateCertificate" ], "Resource":[ "*" ] } ] }
UPDATE_CA_CERTIFICATE
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:UpdateCACertificate" ], "Resource":[ "*" ] } ] }
ADD_THINGS_TO_THING_GROUP
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:ListPrincipalThings", "iot:AddThingToThingGroup" ], "Resource":[ "*" ] } ] }
REPLACE_DEFAULT_POLICY_VERSION
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:CreatePolicyVersion" ], "Resource":[ "*" ] } ] }
ENABLE_IOT_LOGGING
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "iot:SetV2LoggingOptions" ], "Resource":[ "*" ] }, { "Effect":"Allow", "Action":[ "iam:PassRole" ], "Resource":[ "<IAM role ARN used for setting up logging>" ] } ] }
PUBLISH_FINDING_TO_SNS
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "sns:Publish" ], "Resource":[ "<The SNS topic to which the finding is published>" ] } ] }

모든 완화 작업에 다음 신뢰 정책 템플릿을 사용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:iot:*:111122223333::*" }, "StringEquals": { "aws:SourceAccount": "111122223333:" } } } ] }