IoT Edge 인증서 관리

적용 대상:예 아이콘 IoT Edge 1.1

중요

IoT Edge 1.1 지원 종료일은 2022년 12월 13일이었습니다. 이 제품, 서비스, 기술 또는 API가 지원되는 방법에 대한 정보는 Microsoft 제품 수명 주기를 확인하세요. 최신 버전의 IoT Edge 업데이트하는 방법에 대한 자세한 내용은 IoT Edge 업데이트를 참조하세요.

모든 IoT Edge 디바이스는 인증서를 사용하여 런타임과 디바이스에서 실행되는 모듈 간에 보안 연결을 만듭니다. 게이트웨이로 작동하는 IoT Edge 디바이스는 이러한 동일한 인증서를 사용하여 다운스트림 디바이스에도 연결합니다. IoT Edge 디바이스의 다양한 인증서 기능에 대한 자세한 내용은 Azure IoT Edge가 인증서를 사용하는 방법 이해를 참조하세요.

참고

이 문서 전체에서 사용되는 루트 CA라는 용어는 IoT 솔루션의 인증서 체인에서 최상위 기관의 인증서를 나타냅니다. 배포된 인증 기관의 인증서 루트나 조직의 인증 기관 루트를 사용할 필요는 없습니다. 대부분의 경우 실제로는 중간 CA 인증서입니다.

필수 구성 요소

디바이스 CA

모든 IoT Edge 디바이스는 인증서를 사용하여 런타임과 디바이스에서 실행되는 모듈 간에 보안 연결을 만듭니다. 게이트웨이로 작동하는 IoT Edge 디바이스는 이러한 동일한 인증서를 사용하여 다운스트림 디바이스에도 연결합니다. IoT Edge 디바이스의 다양한 인증서 기능에 대한 자세한 내용은 Azure IoT Edge가 인증서를 사용하는 방법 이해를 참조하세요.

IoT Edge는 다음을 비롯한 여러 경우에 디바이스에서 디바이스 CA를 자동으로 생성합니다.

  • IoT Edge를 설치하고 프로비전할 때 사용자 고유의 프로덕션 인증서를 제공하지 않으면 IoT Edge 보안 관리자에서 자동으로 디바이스 CA 인증서를 생성합니다. 이 자체 서명된 인증서는 프로덕션이 아닌 개발 및 테스트 시나리오에만 사용할 수 있습니다. 이 인증서는 90일 후에 만료됩니다.
  • IoT Edge 보안 관리자는 디바이스 CA 인증서로 서명된 워크로드 CA 인증서도 생성합니다.

이러한 두 개의 자동으로 생성된 인증서의 경우 구성 파일에서 플래그를 설정하여 인증서의 수명 기간(일)을 구성할 수 있습니다.

참고

IoT Edge 보안 관리자에서 만든 세 번째 자동 생성 인증서인 IoT Edge 허브 서버 인증서가 있습니다. 이 인증서는 항상 30일의 수명 기간을 갖지만 만료되기 전에 자동으로 갱신됩니다. 구성 파일에 설정된 자동 생성 CA 수명 값은 이 인증서에 영향을 주지 않습니다.

빠른 시작 디바이스 CA 인증서 수명 사용자 지정

지정된 일 수 후에 만료되면 디바이스 CA 인증서를 다시 생성하기 위해 IoT Edge를 다시 시작해야 합니다. 디바이스 CA 인증서는 자동으로 갱신되지 않습니다.

  1. 인증서 만료를 기본 90일이 아닌 다른 값으로 구성하려면 구성 파일의 인증서 섹션에 값(일)을 추가합니다.

    certificates:
      device_ca_cert: "<ADD URI TO DEVICE CA CERTIFICATE HERE>"
      device_ca_pk: "<ADD URI TO DEVICE CA PRIVATE KEY HERE>"
      trusted_ca_certs: "<ADD URI TO TRUSTED CA CERTIFICATES HERE>"
      auto_generated_ca_lifetime_days: <value>
    

    참고

    현재 libiothsm의 제한으로 인해 2038년 1월 1일 이후에 만료되는 인증서는 사용할 수 없습니다.

  2. 이전에 생성된 인증서를 제거하려면 hsm 폴더의 내용을 삭제합니다.

    • /var/aziot/hsm/certs
    • /var/aziot/hsm/cert_keys
  3. IoT Edge 서비스를 다시 시작합니다.

    sudo systemctl restart iotedge
    
  4. 수명 기간 설정을 확인합니다.

    sudo iotedge check --verbose
    

    자동으로 생성된 디바이스 CA 인증서가 만료될 때까지 남은 일 수를 나열하는 프로덕션 준비 상태: 인증서 확인의 출력을 확인합니다.

프로덕션용 디바이스 CA 설치

프로덕션 시나리오로 이동하거나 게이트웨이 디바이스를 만들려는 경우 사용자 고유의 인증서를 제공해야 합니다.

프로덕션용 디바이스 CA 만들기 및 설치

  1. 자체 인증 기관을 사용하여 다음 파일을 만듭니다.

    • 루트 CA
    • 디바이스 CA 인증서
    • 디바이스 CA 프라이빗 키

    루트 CA는 조직의 최상위 인증 기관이 아닙니다. IoT Edge 시나리오에 대한 최상위 인증 기관으로, IoT Edge 허브 모듈, 사용자 모듈 및 모든 다운스트림 디바이스 간 트러스트를 설정하는 데 사용합니다.

    이러한 인증서의 예를 보려면 샘플 및 자습서용 테스트 CA 인증서 관리에서 데모 인증서를 만드는 스크립트를 검토합니다.

    참고

    현재 libiothsm의 제한으로 인해 2038년 1월 1일 이후에 만료되는 인증서는 사용할 수 없습니다.

  2. 3개의 인증서 및 키 파일을 IoT Edge 디바이스에 복사합니다. Azure Key Vault 또는 보안 복사 프로토콜 같은 기능을 사용하여 인증서 파일을 이동할 수 있습니다. IoT Edge 디바이스 자체에서 인증서를 생성한 경우 이 단계를 건너뛸 수 있으며 작업 디렉터리에 대한 경로를 사용합니다.

    샘플 스크립트를 사용하여 데모 인증서를 만든 경우 3개의 인증서와 키 파일은 다음 경로에 있습니다.

    • 디바이스 CA 인증서: <WRKDIR>\certs\iot-edge-device-MyEdgeDeviceCA-full-chain.cert.pem
    • 디바이스 CA 프라이빗 키: <WRKDIR>\private\iot-edge-device-MyEdgeDeviceCA.key.pem
    • 루트 CA: <WRKDIR>\certs\azure-iot-test-only.root.ca.cert.pem
  1. IoT Edge 보안 디먼 구성 파일: /etc/iotedge/config.yaml을 엽니다.

  2. config.yaml의 인증서 속성을 IoT Edge 디바이스의 인증서 및 키 파일에 대한 파일 URI 경로로 설정합니다. 네 줄의 주석 처리를 제거하려면 인증서 속성 앞의 # 문자를 제거합니다. 인증서: 줄 앞에 공백이 없고 중첩된 항목은 공백 두 칸으로 들여쓰기 되어 있는지 확인합니다. 예를 들면 다음과 같습니다.

    certificates:
       device_ca_cert: "file:///<path>/<device CA cert>"
       device_ca_pk: "file:///<path>/<device CA key>"
       trusted_ca_certs: "file:///<path>/<root CA cert>"
    
  3. 사용자 iotedge에게 인증서가 있는 디렉터리에 대한 읽기/쓰기 권한이 있는지 확인합니다.

  4. 이전에 디바이스에서 IoT Edge에 대한 다른 인증서를 사용한 경우 IoT Edge를 시작하거나 다시 시작하기 전에 다음 두 디렉터리에서 파일을 삭제합니다.

    • /var/aziot/hsm/certs
    • /var/aziot/hsm/cert_keys
  5. IoT Edge를 다시 시작합니다.

    sudo iotedge system restart
    

모듈 서버 인증서

Edge Daemon은 Edge 모듈에서 사용할 모듈 서버 및 ID 인증서를 발급합니다. 필요에 따라 ID 및 서버 인증서를 갱신하는 것은 Edge 모듈의 책임입니다.

갱신

서버 인증서는 Edge CA 인증서에서 또는 DPS 구성 CA를 통해 발급될 수 있습니다. 발급 방법에 관계없이 이러한 인증서는 모듈에서 갱신해야 합니다.

1.2 이후의 변경 내용

  • 디바이스 CA 인증서의 이름이 에지 CA 인증서로 바뀌었습니다.
  • 워크로드 CA 인증서는 더 이상 사용되지 않습니다. 이제 IoT Edge 보안 관리자는 중간 워크로드 CA 인증서 없이 에지 CA 인증서에서 직접 IoT Edge 허브 edgeHub 서버 인증서를 생성합니다.
  • 기본 구성 파일에는 기본적으로 /etc/iotedge/config.yaml에서 /etc/aziot/config.toml까지의 새 이름과 위치가 있습니다. 구성 정보를 이전 위치와 구문에서 새 위치와 구문으로 이전하는 데 iotedge config import 명령을 사용하는 것이 도움이 될 수 있습니다.

다음 단계

프로덕션에 솔루션을 배포하기 전에 IoT Edge 디바이스에 인증서를 설치해야 합니다. 프로덕션에서 IoT Edge 솔루션 배포를 준비하는 방법에 대해 자세히 알아보세요.