AWS IoT Greengrass의 보안 모범 사례 - AWS IoT Greengrass

다음에 대한 설명서를 보고 있습니다.AWS IoT Greengrass Version 1.AWS IoT Greengrass Version 2의 최신 주요 버전입니다AWS IoT Greengrass. 사용에 관한 자세한 내용은 단원을 참조하십시오.AWS IoT Greengrass V2에 대한 자세한 내용은AWS IoT Greengrass Version 2개발자 안내서.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS IoT Greengrass의 보안 모범 사례

이 주제에는 AWS IoT Greengrass에 대한 보안 모범 사례가 포함되어 있습니다.

가능한 최소 권한 부여

IAM 역할의 최소 권한 집합을 사용하여 최소 권한의 원칙을 따릅니다. 의 사용을 제한*와일드카드:ActionResource속성을 IAM 정책에서 확인할 수 있습니다. 대신, 가능한 경우 한정된 작업과 리소스를 선언하십시오. 최소 권한 및 기타 정책 모범 사례에 대한 자세한 내용은 정책 모범 사례 단원을 참조하십시오.

최소 권한 모범 사례는 Greengrass 코어 및 연결된 디바이스에 연결하는 AWS IoT 정책에도 적용됩니다.

Lambda 함수에서 자격 증명을 하드 코딩하지 않음

사용자 정의 Lambda 함수에서 자격 증명을 하드 코딩하지 마십시오. 자격 증명에 대한 보호를 강화하려면 다음을 수행하십시오.

  • AWS 서비스와 상호 작용하려면 Greengrass 그룹 역할에서 특정 작업 및 리소스에 대한 권한을 정의합니다.

  • 로컬 암호를 사용하여 자격 증명을 저장합니다. 또는 함수가AWSSDK에서 기본 자격 증명 공급자 체인의 자격 증명을 사용합니다.

민감한 정보를 기록하지 않음

자격 증명 및 기타 개인 식별 정보(PII)의 로깅을 방지해야 합니다. 코어 디바이스의 로컬 로그에 액세스하기 위해 루트 권한이 필요하고 CloudWatch Logs 액세스하려면 IAM 권한이 필요한 경우에도 다음과 같은 보호 조치를 구현하는 것이 좋습니다.

  • MQTT 주제 경로에는 민감한 정보를 사용하지 마십시오.

  • AWS IoT Core 레지스트리의 디바이스(사물) 이름, 유형 및 속성에 민감한 정보를 사용하지 마십시오.

  • 사용자 정의 Lambda 함수에 민감한 정보를 기록하지 마십시오.

  • Greengrass 리소스의 이름과 ID에 민감한 정보를 사용하지 마십시오.

    • 커넥터

    • 코어

    • Devices

    • 함수

    • 그룹

    • Loggers

    • 리소스(로컬, 기계 학습 또는 암호)

    • 구독

대상 구독 만들기

구독은 서비스, 디바이스, Lambda 함수 사이에 메시지가 교환되는 방식을 정의하여 Greengrass 그룹의 정보 흐름을 제어합니다. 애플리케이션이 의도한 동작만 수행하도록 하려면, 구독을 통해 게시자가 특정 주제에만 메시지를 보내도록 하고, 구독자가 기능에 필요한 주제에서만 메시지를 받도록 제한해야 합니다.

디바이스의 시계를 동기화 상태로 유지

디바이스에서는 정확한 시간을 유지하는 것이 중요합니다. X.509 인증서에는 만료 날짜와 시간이 있습니다. 디바이스의 시계는 서버 인증서가 여전히 유효한지 확인하는 데 사용됩니다. 디바이스 시계는 시간이 지나 드리프트 상태가 되거나 배터리가 방전될 수 있습니다.

자세한 내용은 단원을 참조하십시오.디바이스의 시계를 동기화 상태로 유지모범 사례를 참조하십시오.AWS IoT Core개발자 안내서.

Greengrass 코어를 사용한 디바이스 인증 관리

Greengrass 장치를 실행할 수 있습니다.FreeRTOS를 사용하거나AWS IoT디바이스 SDK또는AWS IoT Greengrass디스커버리 API를 사용하여 동일한 Greengrass 그룹의 코어에 연결하고 인증하는 데 사용되는 검색 정보를 가져옵니다. 검색 정보에는 다음이 포함됩니다.

  • 디바이스와 동일한 Greengrass 그룹에 있는 Greengrass 코어에 대한 연결 정보입니다. 이 정보에는 코어 디바이스에 대한 각 엔드포인트의 호스트 주소와 포트 번호가 포함됩니다.

  • 로컬 MQTT 서버 인증서에 서명하는 데 사용되는 그룹 CA 인증서입니다. 디바이스는 그룹 CA 인증서를 사용하여 코어가 제공하는 MQTT 서버 인증서를 검증합니다.

다음은 연결된 디바이스가 Greengrass 코어를 사용해 상호 인증을 관리하는 모범 사례입니다. 이러한 모범 사례는 핵심 디바이스가 손상된 경우 위험을 완화하는 데 도움이 될 수 있습니다.

각 연결에 대한 로컬 MQTT 서버 인증서를 검증합니다.

디바이스는 코어와 연결할 때마다 코어가 제공하는 MQTT 서버 인증서를 검증해야 합니다. 이 검증은 코어 디바이스와 연결된 디바이스 간 상호 인증의 연결된 디바이스 측입니다. 디바이스는 장애를 감지하고 연결을 종료할 수 있어야 합니다.

검색 정보를 하드코딩하지 마십시오.

코어가 고정 IP 주소를 사용하는 경우에도 디바이스는 검색 작업에 의존하여 코어 연결 정보와 그룹 CA 인증서를 가져와야 합니다. 디바이스는 이 검색 정보를 하드 코딩해서는 안 됩니다.

검색 정보를 주기적으로 업데이트합니다.

디바이스는 주기적으로 검색을 실행하여 코어 연결 정보 및 그룹 CA 인증서를 업데이트해야 합니다. 디바이스가 코어와 연결하기 전에 이 정보를 업데이트하는 것이 좋습니다. 검색 작업 간의 지속시간이 짧을수록 노출 가능 시간을 최소화할 수 있습니다. 따라서 정기적으로 디바이스의 연결을 끊었다가 다시 연결하여 업데이트를 트리거하는 것이 좋습니다.

Greengrass 코어 디바이스를 제어할 수 없는 경우 연결된 디바이스가 코어로 데이터를 전송하지 못하도록 하려면 다음을 수행하십시오.

  1. Greengrass 그룹에서 Greengrass 코어를 제거합니다.

  2. 그룹 CA 인증서를 교체합니다. 에서AWS IoT콘솔에서 CA 인증서를 교체할 수 있습니다.설정페이지를 참조하십시오. AWS IoT Greengrass API에서는 CreateGroupCertificateAuthority 작업을 사용할 수 있습니다.

    또한 코어 디바이스의 하드 드라이브가 도난에 취약할 경우 전체 디스크 암호화를 사용하는 것이 좋습니다.

자세한 정보는 AWS IoT Greengrass에 대한 디바이스 인증 및 권한 부여을 참조하십시오.

다음 사항도 참조하세요.