개요 AWS IoT Greengrass 보안 - AWS IoT Greengrass

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

개요 AWS IoT Greengrass 보안

AWS IoT Greengrass X.509 인증서를 사용합니다. AWS IoT 정책 및 IAM 로컬 그린그래스 환경의 장치에서 실행되는 애플리케이션을 보호하는 정책 및 역할.

다음 다이어그램은 AWS IoT Greengrass 보안 모델의 구성 요소를 보여 줍니다.

A - Greengrass 서비스 역할

고객 생성 IAM 역할 가정 AWS IoT Greengrass 귀하의 AWS 출처 AWS IoT Core, AWS Lambda및 기타 AWS 서비스. 자세한 정보는 단원을 참조하십시오.Greengrass 서비스 역할.

B - 코어 디바이스 인증서

및 AWS IoT Core를 사용하여 Greengrass 코어를 인증하는 데 사용되는 X.509 인증서.AWS IoT Greengrass. 자세한 정보는 단원을 참조하십시오.AWS IoT Greengrass에 대한 디바이스 인증 및 권한 부여.

C - 디바이스 인증서

및 AWS IoT Core를 사용하여 Greengrass (연결된) 바이러스를 인증하는 데 사용되는 X.509 인증서.AWS IoT Greengrass. 자세한 정보는 단원을 참조하십시오.AWS IoT Greengrass에 대한 디바이스 인증 및 권한 부여.

D - 그룹 역할

고객 생성 IAM 역할 가정 AWS IoT Greengrass 전화할 때 AWS Greengrass 코어의 서비스.

사용자가 정의한 액세스 권한을 지정하는 데 이 역할을 사용합니다. Lambda 기능 및 커넥터 액세스 필요 AWS 같은 서비스를 DynamoDB. 또한, AWS IoT Greengrass 스트림 관리자 스트림을 AWS 서비스 및 쓰기 CloudWatch Logs. 자세한 정보는 단원을 참조하십시오.Greengrass 그룹 역할.

참고

AWS IoT Greengrass 사용하지 않습니다 Lambda 지정된 실행 역할 AWS Lambda 클라우드 버전의 Lambda 기능.

E - MQTT 서버 인증서

Greengrass 코어 디바이스와 Greengrass 그룹의 연결된 디바이스 간 TLS(전송 계층 보안) 상호 인증에 사용되는 인증서입니다. 이 인증서는 AWS 클라우드에 저장된 그룹 CA 인증서에 의해 서명됩니다.

디바이스 연결 워크플로

이 섹션에서는 Greengrass 연결 디바이스가 AWS IoT Greengrass 서비스 및 Greengrass 코어 디바이스에 연결하는 방법에 대해 설명합니다. Greengrass 연결 디바이스는 코어 디바이스와 동일한 Greengrass 그룹에 있는 등록된 AWS IoT Core 디바이스입니다.

  • Greengrass 코어 장치는 기기 인증서, 개인 키 및 AWS IoT Core root CA 인증서를 AWS IoT Greengrass 서비스. 핵심 장치에서 crypto 개체 구성 파일 은 이 항목의 파일 경로를 지정합니다.

  • Greengrass 코어 디바이스는 AWS IoT Greengrass 서비스에서 그룹 멤버십 정보를 다운로드합니다.

  • Greengrass 코어 디바이스로 배포가 실행될 때 Device Certificate Manager(DCM)는 Greengrass 코어 디바이스에 대한 로컬 서버 인증서 관리를 처리합니다.

  • 연결된 장치가 AWS IoT Greengrass 장치 인증서, 개인 키 및 AWS IoT Core 루트 CA. 연결이 되면 AWS IoT Core 디바이스는 Greengrass Discovery Service를 사용해 Greengrass 코어 디바이스의 IP 주소를 찾습니다. 또한 이 디바이스는 Greengrass 코어 디바이스와의 TLS 상호 인증에 사용되는 그룹 CA 인증서를 다운로드합니다.

  • 연결된 디바이스는 Greengrass 코어 디바이스와 연결을 시도하며 자체 디바이스 인증서와 클라이언트 ID를 전달합니다. 클라이언트 ID가 디바이스의 사물 이름과 일치하며 인증서가 유효한 경우(Greengrass 그룹의 일부), 연결이 이루어집니다. 그렇지 않으면 연결이 종료됩니다.

The AWS IoT 연결된 장치에 대한 정책은 greengrass:Discover 장치가 코어 에 대한 연결 정보를 검색할 수 있도록 허용하는 권한. 이 정책 설명에 대한 자세한 내용은 단원을 참조하십시오.검색 승인.

구성 AWS IoT Greengrass 보안

Greengrass 애플리케이션의 보안을 구성하려면

  1. Greengrass 코어 디바이스에 대한 AWS IoT Core 사물을 만듭니다.

  2. Greengrass 코어 디바이스에 대한 키 페어와 디바이스 인증서를 생성합니다.

  3. 생성 및 첨부 AWS IoT 정책 디바이스 인증서 에 인증서와 정책은 Greengrass 코어 디바이스 액세스를 AWS IoT Core and AWS IoT Greengrass 서비스. 자세한 정보는 단원을 참조하십시오.코어 디바이스에 대한 최소 AWS IoT 정책.

    참고

    사용 정책 변수 (iot:Connection.Thing.*) AWS IoT 핵심 디바이스에 대한 정책은 지원되지 않습니다. 코어는 동일한 디바이스 인증서를 사용하여 다중 연결 ~ AWS IoT Core 연결의 클라이언트 ID는 핵심 정보의 정확한 일치가 아닐 수 있습니다.

  4. A Greengrass 서비스 역할. 이 IAM 역할 승인 AWS IoT Greengrass 을(를) 대신하여 다른 AWS 서비스의 리소스에 액세스합니다. 이를 통해 AWS IoT Greengrass 검색과 같은 필수 작업을 수행하기 위해 AWS Lambda 장치 섀도우 을(를) 관리하고 관리합니다.

    AWS 리전 전체에서 동일한 서비스 역할을 사용할 수 있지만, 를 사용하는 모든 AWS 리전에서 본인의 AWS 계정과 연결해야 합니다.AWS IoT Greengrass.

  5. (선택 사항) Greengrass 그룹 역할. 이 IAM 역할 보조금 허가 Lambda AWS 서비스 호출을 위해 Greengrass 코어에서 실행되는 기능 및 커넥터. 예를 들어, Kinesis Firehose 커넥터 기록 쓰기 권한이 필요합니다. Amazon Kinesis Data Firehose 전달 스트림.

    Greengrass 그룹에는 하나의 역할만 연결할 수 있습니다.

  6. Greengrass 코어에 연결되는 각 디바이스에 대한 AWS IoT Core 사물을 만듭니다.

    참고

    기존 AWS IoT Core 사물 및 인증서를 사용할 수도 있습니다.

  7. Greengrass 코어에 연결할 각 디바이스에 대한 디바이스 인증서, 키 페어 및 AWS IoT 정책을 생성합니다.

AWS IoT Greengrass 코어 보안 주체

Greengrass 코어는 AWS IoT 클라이언트, 로컬 MQTT 서버 및 로컬 보안 관리자 보안 주체를 사용합니다. 이러한 주체의 구성은 crypto 개체 config.json 구성 파일. 자세한 정보는 단원을 참조하십시오.AWS IoT Greengrass 코어 구성 파일.

이 구성에는 인증 및 암호화를 위해 주체 구성 요소가 사용하는 프라이빗 키의 경로가 포함되어 있습니다. AWS IoT Greengrass는 두 가지 프라이빗 키 스토리지 모드인 하드웨어 기반 또는 파일 시스템 기반(기본값)을 지원합니다. 하드웨어 보안 모듈에 키를 저장하는 방법에 대한 자세한 내용은 단원을 참조하십시오.하드웨어 보안 통합.

AWS IoT 클라이언트

The AWS IoT 클라이언트(Iot 클라이언트)는 그린그래스 코어와 AWS IoT Core. AWS IoT Greengrass 은(는) 이 통신을 위한 TLS 연결을 설정할 때 상호 인증을 위해 공용 및 개인 키를 사용하여 X.509 인증서를 사용합니다. 자세한 내용은 X.509 인증서 및 AWS IoT Core in the AWS IoT Core 개발자 가이드.

IoT 클라이언트는 RSA 및 EC 인증서와 키를 지원합니다. 에서 IoTCertificate 주체에 대한 인증서 및 프라이빗 키 경로가 지정되어 있습니다.config.json.

MQTT 서버

로컬 MQTT 서버는 로컬 네트워크를 통한 Greengrass 코어와 그룹의 기타 Greengrass 디바이스 간 통신을 관리합니다. AWS IoT Greengrass는 이러한 통신에 대한 TLS 연결을 설정할 때 상호 인증을 위한 퍼블릭 및 프라이빗 키가 있는 X.509 인증서를 사용합니다.

기본적으로 AWS IoT Greengrass에서는 사용자를 위한 RSA 프라이빗 키를 생성합니다. 다른 개인 키를 사용하도록 코어를 구성하려면 MQTTServerCertificate 의 주 config.json. 고객이 제공한 키를 회전할 책임이 있습니다.

프라이빗 키 지원
RSA 키 EC 키
키 유형 지원 지원
키 파라미터 최소 2048비트의 길이 NIST P-256 또는 NIST P-384 Curve
디스크 형식 PKCS#1, PKCS#8 SECG1, PKCS#8
최소 GGC 버전
  • 기본 RSA 키 사용: 1.0

  • RSA 키 지정: 1.7

  • EC 키 지정: 1.9

프라이빗 키의 구성은 관련 프로세스를 결정합니다. Greengrass 코어에서 서버로 지원하는 암호 제품군 목록은 단원을 참조하십시오.TLS 암호 그룹 지원.

개인 키가 지정되지 않은 경우 (기본값)
  • AWS IoT Greengrass는 교체 설정에 따라 키를 교체합니다.

  • 코어는 인증서를 생성하는 데 사용되는 RSA 키를 생성합니다.

  • MQTT 서버 인증서에는 RSA 퍼블릭 키 및 SHA-256 RSA 서명이 있습니다.

RSA 개인 키가 지정된 경우 (GGC v 필요1.7 or later)
  • 키는 직접 교체해야 합니다.

  • 코어는 지정된 키를 사용하여 인증서를 생성합니다.

  • RSA 키의 최소 길이는 2048비트여야 합니다.

  • MQTT 서버 인증서에는 RSA 퍼블릭 키 및 SHA-256 RSA 서명이 있습니다.

EC 개인 키가 지정된 경우 (GGC v 필요1.9 or later)
  • 키는 직접 교체해야 합니다.

  • 코어는 지정된 키를 사용하여 인증서를 생성합니다.

  • EC 프라이빗 키는 NIST P-256 또는 NIST P-384 Curve를 사용해야 합니다.

  • MQTT 서버 인증서에는 EC 퍼블릭 키 및 SHA-256 RSA 서명이 있습니다.

    키 유형과 상관없이 코어에서 제공하는 MQTT 서버 인증서에는 SHA-256 RSA 서명이 있습니다. 이러한 이유 때문에 클라이언트는 코어와의 보안 연결을 설정하도록 SHA-256 RSA 인증서 유효성 검사를 지원해야 합니다.

보안 관리자

로컬 보안 관리자는 에서 생성된 보안의 로컬 복사본을 안전하게 관리합니다.AWS Secrets Manager. 보안을 암호화하는 데 사용되는 데이터 키의 보안을 유지하는 데 프라이빗 키를 사용합니다. 자세한 정보는 단원을 참조하십시오.AWS IoT Greengrass 코어에 암호 배포.

기본적으로 사물 클라이언트 개인 키를 사용하지만, SecretsManager 의 주 config.json. RSA 키 유형만 지원됩니다. 자세한 정보는 단원을 참조하십시오.암호 암호화를 위한 프라이빗 키 지정.

참고

현재 AWS IoT Greengrass는 하드웨어 기반 프라이빗 키를 사용할 경우 로컬 보안 암호의 암호화 및 해독에 PKCS#1 v1.5 패딩 메커니즘만 지원합니다. 공급업체에서 제공한 지침에 따라 하드웨어 기반 프라이빗 키를 수동으로 생성하는 경우, PKCS#1 v1.5를 선택해야 합니다. AWS IoT Greengrass는 OAEP(Optimal Asymmetric Encryption Padding)를 지원하지 않습니다.

프라이빗 키 지원
RSA 키 EC 키
키 유형 지원 지원하지 않음
키 파라미터 최소 2048비트의 길이 해당 사항 없음
디스크 형식 PKCS#1, PKCS#8 해당 사항 없음
최소 GGC 버전 1.7 해당 사항 없음

MQTT 메시징 워크플우로의 관리형 구독

AWS IoT Greengrass는 구독 테이블을 사용하여 Greengrass 그룹 내의 디바이스, 함수 및 커넥터와 AWS IoT Core 또는 로컬 섀도우 서비스 간의 MQTT 메시지 교환 방법을 정의합니다. 각 구독은 메시지가 전송되거나 수신되는 소스, 대상 및 MQTT 항목(또는 주체)를 지정합니다. 해당 구독이 정의된 경우에만 AWS IoT Greengrass를 통해 소스에서 대상으로 메시지를 보낼 수 있습니다.

구독은 소스에서 대상으로의 한 방향으로만 메시지 흐름을 정의합니다. 양방향 메시지 교환을 지원하려면 각 방향당 하나씩 총 두 개의 구독을 생성해야 합니다.

TLS 암호 그룹 지원

AWS IoT Greengrass 사용 AWS IoT Core 전송 보안 모델을 사용하여 클라우드와 통신을 암호화합니다. TLS 암호 스위트. 또한 AWS IoT Greengrass 데이터는 클라우드에 저장 시 암호화됩니다. 자세한 정보는 AWS IoT Core 전송 보안 및 지원되는 암호 스위트, 전송 보안 in the AWS IoT Core 개발자 가이드.

로컬 네트워크 통신에 대한 지원되는 암호 제품군

대신 AWS IoT Core, AWS IoT Greengrass코어 다음을 지원합니다. 로컬 네트워크 인증서 서명 알고리즘을 위한 TLS 암호 스위트. 파일 시스템에 프라이빗 키가 저장되어 있으면 이러한 암호 제품군이 모두 지원됩니다. 코어가 HSM(하드웨어 보안 모듈)을 사용하도록 구성된 경우 하위 세트가 지원됩니다. 자세한 내용은 AWS IoT Greengrass 코어 보안 주체 and 하드웨어 보안 통합. 이 표에는 지원에 필요한 AWS IoT Greengrass 코어 소프트웨어의 최소 버전이 포함되어 있습니다.

암호 HSM 지원 최소 GGC 버전
TLSv1.2 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 지원 1.0
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 지원 1.0
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 지원 1.0
TLS_RSA_WITH_AES_128_CBC_SHA 지원하지 않음 1.0
TLS_RSA_WITH_AES_128_GCM_SHA256 지원하지 않음 1.0
TLS_RSA_WITH_AES_256_CBC_SHA 지원하지 않음 1.0
TLS_RSA_WITH_AES_256_GCM_SHA384 지원하지 않음 1.0
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 지원 1.9
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 지원 1.9
TLSv1.1 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 지원 1.0
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 지원 1.0
TLS_RSA_WITH_AES_128_CBC_SHA 지원하지 않음 1.0
TLS_RSA_WITH_AES_256_CBC_SHA 지원하지 않음 1.0
TLSv1.0 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 지원 1.0
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 지원 1.0
TLS_RSA_WITH_AES_128_CBC_SHA 지원하지 않음 1.0
TLS_RSA_WITH_AES_256_CBC_SHA 지원하지 않음 1.0