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

AWS IoT Greengrass Version 1 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트가 AWS IoT Greengrass V1 릴리스되지 않습니다. 에서 실행되는 기기는 AWS IoT Greengrass V1 중단되지 않으며 계속 작동하고 클라우드에 연결됩니다. 새로운 기능이 크게 추가되고 추가 플랫폼에 대한 지원이 추가되는 으로 마이그레이션하는 AWS IoT Greengrass Version 2 것이 좋습니다.

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

AWS IoT Greengrass의 보안 모범 사례

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

가능한 최소 권한 부여

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

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

Lambda 함수에서 보안 인증을 하드 코딩하지 않음

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

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

  • 로컬 암호를 사용하여 자격 증명을 저장합니다. 또는 함수가 AWS SDK를 사용하는 경우 기본 보안 인증 공급자 체인의 보안 인증을 사용합니다.

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

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

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

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

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

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

    • 커넥터

    • 코어

    • 디바이스

    • 함수

    • 그룹

    • Loggers

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

    • 구독

대상 구독 만들기

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

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

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

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

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 GreengrassAPI에서 작업을 사용할 수 있습니다. CreateGroupCertificateAuthority

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

자세한 설명은 AWS IoT Greengrass에 대한 디바이스 인증 및 권한 부여 섹션을 참조하세요.

다음 사항도 참조하십시오.