IoT Edge セキュリティ デーモンおよびランタイムの更新Update the IoT Edge security daemon and runtime

IoT Edge サービスの新しいバージョンがリリースされたら、最新の機能およびセキュリティの強化のために、IoT Edge デバイスを更新する必要があります。As the IoT Edge service releases new versions, you'll want to update your IoT Edge devices for the latest features and security improvements. この記事では、新しいバージョンが使用可能になったときに、IoT Edge デバイスを更新する方法について説明します。This article provides information about how to update your IoT Edge devices when a new version is available.

新しいバージョンに移行する場合、IoT Edge デバイスの 2 つのコンポーネントを更新する必要があります。Two components of an IoT Edge device need to be updated if you want to move to a newer version. 1 つ目は、デバイスで実行され、デバイスの起動時にランタイム モジュールを起動するセキュリティ デーモンです。The first is the security daemon, which runs on the device and starts the runtime modules when the device starts. 現在、セキュリティ デーモンは、デバイス自体からのみ更新できます。Currently, the security daemon can only be updated from the device itself. 2 つ目のコンポーネントはランタイムで、IoT Edge ハブと IoT Edge エージェント モジュールから構成されます。The second component is the runtime, made up of the IoT Edge hub and IoT Edge agent modules. デプロイの構成方法に応じて、ランタイムはデバイスから、またはリモートで更新できます。Depending on how you structure your deployment, the runtime can be updated from the device or remotely.

Azure IoT Edge の最新バージョンを見つけるには、Azure IoT Edge リリースに関する記事を参照してください。To find the latest version of Azure IoT Edge, see Azure IoT Edge releases.

重要

Windows デバイスで Azure IoT Edge を実行していて、次のいずれかがご利用のデバイスに当てはまる場合は、バージョン 1.0.5 に更新しないでください。If you are running Azure IoT Edge on a Windows device, do not update to version 1.0.5 if one of the following applies to your device:

  • デバイスを Windows ビルド 17763 にアップグレードしていない。You have not upgraded your device to Windows build 17763. IoT Edge バージョン 1.0.5 は、17763 よりも前の Windows ビルドをサポートしていません。IoT Edge version 1.0.5 does not support Windows builds older than 17763.
  • Windows デバイス上で Java または Node.js モジュールを実行している。You run Java or Node.js modules on your Windows device. Windows デバイスを最新のビルドに更新している場合でも、バージョン 1.0.5 はスキップしてください。Skip version 1.0.5 even if you have updated your Windows device to the latest build.

IoT Edge バージョン 1.0.5 の詳細については、1.0.5 のリリース ノートを参照してください。For more information about IoT Edge version 1.0.5, see 1.0.5 release notes. 開発ツールが最新バージョンに更新されないようにする方法の詳細については、IoT 開発者ブログを参照してください。For more information about how to prevent your development tools from updating to the latest version, see the IoT developer blog.

セキュリティ デーモンの更新Update the security daemon

IoT Edge セキュリティ デーモンは、IoT Edge デバイス上のパッケージ マネージャーを使用して更新する必要があるネイティブ コンポーネントです。The IoT Edge security daemon is a native component that needs to be updated using the package manager on the IoT Edge device.

デバイスで実行されているセキュリティ デーモンのバージョンを確認するには、コマンド iotedge version を使用します。Check the version of the security daemon running on your device by using the command iotedge version.

Linux デバイスLinux devices

Linux デバイスでは、apt-get または適切なパッケージ マネージャーを使用して、セキュリティ デーモンを更新します。On Linux devices, use apt-get or your appropriate package manager to update the security daemon.

apt-get update
apt-get install libiothsm iotedge

Windows デバイスWindows devices

Windows デバイスで、PowerShell スクリプトを使用してセキュリティ デーモンを更新します。On Windows devices, use the PowerShell script to update the security daemon. スクリプトにより、セキュリティ デーモンの最新バージョンが自動的にプルされます。The script automatically pulls the latest version of the security daemon.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Update-IoTEdge -ContainerOs <Windows or Linux>

Update-IoTEdge コマンドを実行すると、デバイスから 2 つのランタイム コンテナー イメージと共にセキュリティ デーモンが削除されます。Running the Update-IoTEdge command removes the security daemon from your device, along with the two runtime container images. Moby コンテナー エンジン (Windows コンテナーを使用している場合) からのデータおよび config.yaml ファイルはデバイス上に保持されます。The config.yaml file is kept on the device, as well as data from the Moby container engine (if you're using Windows containers). 構成情報の保持は、更新プロセス中に、接続文字列または Device Provisioning Service 情報をデバイスに再び提供する必要がないことを意味します。Keeping the configuration information means that you don't have to provide the connection string or Device Provisioning Service information for your device again during the update process.

セキュリティ デーモンの特定のバージョンをインストールする場合は、IoT Edge リリースから適切な Microsoft-Azure-IoTEdge.cab ファイルをダウンロードします。If you want to install a specific version of the security daemon, download the appropriate Microsoft-Azure-IoTEdge.cab file from IoT Edge releases. 次に、-OfflineInstallationPath パラメーターを使用してファイルの場所を指定します。Then, use the -OfflineInstallationPath parameter to point to the file location. 詳細については、「オフライン インストール」を参照してください。For more information, see Offline installation.

ランタイム コンテナーの更新Update the runtime containers

IoT Edge エージェントおよび IoT Edge ハブ コンテナーを更新する方法は、デプロイにローリング タグ (1.0 など) を使用しているか、または特定のタグ (1.0.2 など) を使用しているかによって異なります。The way that you update the IoT Edge agent and IoT Edge hub containers depends on whether you use rolling tags (like 1.0) or specific tags (like 1.0.2) in your deployment.

デバイス上の IoT Edge エージェントおよび IoT Edge ハブ モジュールの現在のバージョンを確認するには、コマンド iotedge logs edgeAgent または iotedge logs edgeHub を使用します。Check the version of the IoT Edge agent and IoT Edge hub modules currently on your device using the commands iotedge logs edgeAgent or iotedge logs edgeHub.

ログ内でコンテナー バージョンを検索する

IoT Edge のタグについてUnderstand IoT Edge tags

IoT Edge エージェントおよび IoT Edge ハブ イメージには、関連付けられている IoT Edge のバージョンでタグ付けされます。The IoT Edge agent and IoT Edge hub images are tagged with the IoT Edge version that they are associated with. ランタイム イメージでタグを使用する方法は 2 つあります。There are two different ways to use tags with the runtime images:

  • ローリング タグ - バージョン番号の先頭の 2 つの値のみを使用して、これらの数字に一致する最新のイメージを取得します。Rolling tags - Use only the first two values of the version number to get the latest image that matches those digits. たとえば、最新の 1.0.x バージョンを指す新しいリリースが存在するたびに、1.0 が更新されます。For example, 1.0 is updated whenever there's a new release to point to the latest 1.0.x version. IoT Edge デバイス上のコンテナー ランタイムによって、再度イメージが取得されると、ランタイム モジュールが最新バージョンに更新されます。If the container runtime on your IoT Edge device pulls the image again, the runtime modules are updated to the latest version. 開発目的では、このアプローチが推奨されます。This approach is suggested for development purposes. Azure portal からのデプロイでは、既定でローリング タグに設定されます。Deployments from the Azure portal default to rolling tags.
  • 特定のタグ - バージョン番号の 3 つすべての値を使用して、イメージのバージョンを明示的に設定します。Specific tags - Use all three values of the version number to explicitly set the image version. たとえば、1.0.2 はその最初のリリース後に変更されることはありません。For example, 1.0.2 won't change after its initial release. 更新する準備ができたら、配置マニフェストに新しいバージョン番号を宣言できます。You can declare a new version number in the deployment manifest when you're ready to update. 運用環境目的では、このアプローチが推奨されます。This approach is suggested for production purposes.

ローリング タグ イメージの更新Update a rolling tag image

デプロイでローリング タグを使用している (mcr.microsoft.com/azureiotedge-hub:1.0 など) 場合、デバイス上のコンテナー ランタイムに強制的にイメージの最新バージョンを取得させる必要があります。If you use rolling tags in your deployment (for example, mcr.microsoft.com/azureiotedge-hub:1.0) then you need to force the container runtime on your device to pull the latest version of the image.

IoT Edge デバイスからイメージのローカル バージョンを削除します。Delete the local version of the image from your IoT Edge device. Windows マシンでは、セキュリティ デーモンをアンインストールするとランタイム イメージも削除されるため、この手順をもう一度実行する必要はありません。On Windows machines, uninstalling the security daemon also removes the runtime images, so you don't need to take this step again.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.0
docker rmi mcr.microsoft.com/azureiotedge-agent:1.0

強制の -f フラグを使用して、イメージを削除する必要がある場合があります。You may need to use the force -f flag to remove the images.

IoT Edge サービスによって、ランタイム イメージの最新バージョンが取得され、自動的にデバイス上でそれらが再度起動されます。The IoT Edge service will pull the latest versions of the runtime images and automatically start them on your device again.

特定のタグ イメージの更新Update a specific tag image

デプロイで特定のタグを使用している (mcr.microsoft.com/azureiotedge-hub:1.0.2 など) 場合、行う必要がある作業は、配置マニフェスト内のタグを更新し、デバイスに変更を適用することだけです。If you use specific tags in your deployment (for example, mcr.microsoft.com/azureiotedge-hub:1.0.2) then all you need to do is update the tag in your deployment manifest and apply the changes to your device.

Azure portal で、ランタイム デプロイ イメージは、 [Edge ランタイムの詳細設定を構成する] セクションで宣言されています。In the Azure portal, the runtime deployment images are declared in the Configure advanced Edge Runtime settings section.

Edge ランタイムの詳細設定を構成する

JSON の配置マニフェストでは、systemModules セクションのモジュール イメージを更新します。In a JSON deployment manifest, update the module images in the systemModules section.

"systemModules": {
  "edgeAgent": {
    "type": "docker",
    "settings": {
      "image": "mcr.microsoft.com/azureiotedge-agent:1.0.2",
      "createOptions": ""
    }
  },
  "edgeHub": {
    "type": "docker",
    "status": "running",
    "restartPolicy": "always",
    "settings": {
      "image": "mcr.microsoft.com/azureiotedge-hub:1.0.2",
      "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}], \"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
    }
  }
},

次の手順Next steps

最新の Azure IoT Edge リリースを確認するView the latest Azure IoT Edge releases.

モノのインターネットのブログの最新の更新とお知らせによって最新情報を得るStay up-to-date with recent updates and announcement in the Internet of Things blog