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.

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

Microsoft から最新のリポジトリ構成を取得します。Get the latest repository configuration from Microsoft:

  • Ubuntu Server 16.04:Ubuntu Server 16.04:

    curl https://packages.microsoft.com/config/ubuntu/16.04/multiarch/prod.list > ./microsoft-prod.list
    
  • Ubuntu Server 18.04:Ubuntu Server 18.04:

    curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list
    
  • Raspbian Stretch:Raspbian Stretch:

    curl https://packages.microsoft.com/config/debian/stretch/multiarch/prod.list > ./microsoft-prod.list
    

生成された一覧をコピーします。Copy the generated list.

sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/

Microsoft GPG 公開キーをインストールします。Install Microsoft GPG public key.

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/

apt を更新します。Update apt.

sudo apt-get update

使用できる IoT Edge のバージョンを確認します。Check to see which versions of IoT Edge are available.

apt list -a iotedge

最新バージョンのセキュリティ デーモンに更新するには、次のコマンドを使用します。これにより libiothsm-std も最新バージョンに更新されます。If you want to update to the most recent version of the security daemon, use the following command which also updates libiothsm-std to the latest version:

sudo apt-get install iotedge

特定のバージョンのセキュリティデーモンに更新する場合は、apt リスト出力からバージョンを指定します。If you want to update to a specific version of the security daemon, specify the version from the apt list output. iotedge が更新されるたびに、libiothsm std パッケージの最新バージョンへの更新が自動的に試行されます。これにより、依存関係の競合が発生する可能性があります。Whenever iotedge is updated, it automatically tries to update the libiothsm-std package to its latest version, which may cause a dependency conflict. 最新バージョンに移行しない場合は、必ず同じバージョンの両方のパッケージをターゲットにしてください。If you aren't going to the most recent version, be sure to target both packages for the same version. たとえば、次のコマンドでは、1.0.9 リリースの特定のバージョンがインストールされます。For example, the following command installs a specific version of the 1.0.9 release:

sudo apt-get install iotedge=1.0.9-1 libiothsm-std=1.0.9-1

インストールするバージョンが apt によって使用できない場合は、curl を使用することで、IoT Edge リリース リポジトリからの任意のバージョンをターゲットにすることができます。If the version that you want to install is not available through apt-get, you can use curl to target any version from the IoT Edge releases repository. インストールするバージョンに応じて、ご利用のデバイスに適した libiothsm-std および iotedge ファイルを見つけます。For whichever version you want to install, locate the appropriate libiothsm-std and iotedge files for your device. ファイルごとに、ファイル リンクを右クリックして、リンクのアドレスをコピーします。For each file, right-click the file link and copy the link address. リンクのアドレスを使用して、それらのコンポーネントの特定のバージョンをインストールします。Use the link address to install the specific versions of those components:

curl -L <libiothsm-std link> -o libiothsm-std.deb && sudo dpkg -i ./libiothsm-std.deb
curl -L <iotedge link> -o iotedge.deb && sudo dpkg -i ./iotedge.deb

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 and updates 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 リリースから対象となるバージョンを見つけます。If you want to update to a specific version of the security daemon, find the version you want to target from IoT Edge releases. そのバージョンで、Microsoft-Azure-IoTEdge.cab ファイルをダウンロードします。In that version, download the Microsoft-Azure-IoTEdge.cab file. 次に、-OfflineInstallationPath パラメーターを使用してローカル ファイルの場所を指定します。Then, use the -OfflineInstallationPath parameter to point to the local file location. 次に例を示します。For example:

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

注意

-OfflineInstallationPath パラメーターでは、指定されたディレクトリで Microsoft-Azure-IoTEdge.cab という名前のファイルを検索します。The -OfflineInstallationPath parameter looks for a file named Microsoft-Azure-IoTEdge.cab in the directory provided. IoT Edge バージョン 1.0.9-rc4 以降では、2 つの .cab ファイル (AMD64 デバイス用と ARM32 デバイス用に 1 つずつ) を使用できます。Starting with IoT Edge version 1.0.9-rc4, there are two .cab files available to use, one for AMD64 devices and one for ARM32. お使いのデバイスに合ったファイルをダウンロードし、ファイルの名前を変更して、アーキテクチャのサフィックスを削除します。Download the correct file for your device, then rename the file to remove the architecture suffix.

更新オプションの詳細については、Get-Help Update-IoTEdge -full コマンドを使用するか、「すべてのインストール パラメーター」を参照してください。For more information about update options, use the command Get-Help Update-IoTEdge -full or refer to all installation parameters.

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

IoT Edge エージェントおよび IoT Edge ハブ コンテナーを更新する方法は、デプロイにローリング タグ (1.0 など) を使用しているか、または特定のタグ (1.0.7 など) を使用しているかによって異なります。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.7) 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.7 はその最初のリリース後に変更されることはありません。For example, 1.0.7 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.8 など) 場合、行う必要がある作業は、配置マニフェスト内のタグを更新し、デバイスに変更を適用することだけです。If you use specific tags in your deployment (for example, mcr.microsoft.com/azureiotedge-hub:1.0.8) then all you need to do is update the tag in your deployment manifest and apply the changes to your device.

  1. Azure portal の IoT Hub で、IoT Edge デバイスを選択し、 [Set Modules](モジュールの設定) を選択します。In the IoT Hub in the Azure portal, select your IoT Edge device, and select Set Modules.

  2. [IoT Edge モジュール] セクションで、 [Runtime Settings](ランタイムの設定) を選択します。In the IoT Edge Modules section, select Runtime Settings.

    ランタイム設定の構成

  3. [Runtime Settings](ランタイムの設定) で、 [Edge ハブ][イメージ] の値を適切なバージョンに更新します。In Runtime Settings, update the Image value for Edge Hub with the desired version. [保存] はまだ選択しないでください。Don't select Save just yet.

    Edge ハブのイメージのバージョンの更新

  4. [Edge ハブ] の設定を折りたたむか、下にスクロールするかして、 [Edge エージェント][イメージ] の値を同じ適切なバージョンに更新します。Collapse the Edge Hub settings, or scroll down, and update the Image value for Edge Agent with the same desired version.

    Edge ハブのエージェントのバージョンの更新

  5. [保存] を選択します。Select Save.

  6. [Review + create](確認と作成) を選択し、デプロイを確認して、 [作成] を選択します。Select Review + create, review the deployment, and select Create.

オフラインで更新するか、または特定のバージョンに更新するUpdate offline or to a specific version

デバイスをオフラインで更新するか、または最新バージョンではなく IoT Edge の特定のバージョンに更新する場合は、-OfflineInstallationPath パラメーターを使用して行うことができます。If you want to update a device offline, or update to a specific version of IoT Edge rather than the most recent version, you can do so with the -OfflineInstallationPath parameter.

IoT Edge デバイスを更新するには、次の 2 つのコンポーネントが使用されます。Two components are used to update an IoT Edge device:

  • PowerShell スクリプト。これには、インストール手順が含まれています。A PowerShell script, which contains the installation instructions
  • Microsoft Azure IoT Edge cab。これには、IoT Edge セキュリティ デーモン (iotedged)、Moby コンテナー エンジン、Moby CLI が含まれています。Microsoft Azure IoT Edge cab, which contains the IoT Edge security daemon (iotedged), Moby container engine, and Moby CLI
  1. IoT Edge の最新のインストール ファイルとその以前のバージョンについては、Azure IoT Edge リリースを参照してください。For the latest IoT Edge installation files along with previous versions, see Azure IoT Edge releases.

  2. インストールするバージョンを見つけ、リリース ノートの [アセット] セクションから次のファイルを IoT デバイスにダウンロードします。Find the version that you want to install, and download the following files from the Assets section of the release notes onto your IoT device:

    • IoTEdgeSecurityDaemon.ps1IoTEdgeSecurityDaemon.ps1
    • リリース 1.0.9 以降は Microsoft-Azure-IoTEdge-amd64.cab、リリース 1.0.8 以前は Microsoft-Azure-IoTEdge.cab。Microsoft-Azure-IoTEdge-amd64.cab from releases 1.0.9 or newer, or Microsoft-Azure-IoTEdge.cab from releases 1.0.8 and older.

    1.0.9 以降は、テスト目的でのみ Microsoft-Azure-IotEdge-arm32.cab を使用することもできます。Microsoft-Azure-IotEdge-arm32.cab is also available beginning in 1.0.9 for testing purposes only. IoT Edge では、現在、Windows ARM32 デバイスはサポートされていません。IoT Edge is not currently supported on Windows ARM32 devices.

    各リリースの機能をサポートするために機能が変更されるため、使用する .cab ファイルと同じリリースの PowerShell スクリプトを使用することが重要です。It's important to use the PowerShell script from the same release as the .cab file that you use because the functionality changes to support the features in each release.

  3. ダウンロードした .cab ファイルにアーキテクチャのサフィックスが付いている場合は、そのファイルの名前を Microsoft-Azure-IoTEdge.cab のみに変更します。If the .cab file you downloaded has an architecture suffix on it, rename the file to just Microsoft-Azure-IoTEdge.cab.

  4. オフライン コンポーネントを使用して更新するには、PowerShell スクリプトのローカル コピーをドット ソースで使用します。To update with offline components, dot source the local copy of the PowerShell script. 次に、Update-IoTEdge コマンドの一部として -OfflineInstallationPath パラメーターを使用し、ファイル ディレクトリへの絶対パスを指定します。Then, use the -OfflineInstallationPath parameter as part of the Update-IoTEdge command and provide the absolute path to the file directory. たとえば、次のように入力します。For example,

    . <path>\IoTEdgeSecurityDaemon.ps1
    Update-IoTEdge -OfflineInstallationPath <path>
    

リリース候補バージョンに更新するUpdate to a release candidate version

Azure IoT Edge では、定期的に新しいバージョンの IoT Edge サービスをリリースしています。Azure IoT Edge regularly releases new versions of the IoT Edge service. 個々の安定版リリースの前に、1 つ以上のリリース候補 (RC) バージョンがあります。Before each stable release, there is one or more release candidate (RC) versions. RC バージョンには、そのリリースで予定されているすべての機能が含まれていますが、テストおよび検証プロセスはまだ進行中です。RC versions include all the planned features for the release, but are still going through testing and validation. 早い段階で新しい機能をテストする場合は、GitHub を介して RC バージョンをインストールし、フィードバックを提供できます。If you want to test a new feature early, you can install an RC version and provide feedback through GitHub.

リリース候補バージョンは、リリースの同じ番号付け規則に従いますが、 -rc と末尾に増分の番号が追加されます。Release candidate versions follow the same numbering convention of releases, but have -rc plus an incremental number appended to the end. Azure IoT Edge リリースの一覧には、安定版と同じリリース候補があります。You can see the release candidates in the same list of Azure IoT Edge releases as the stable versions. たとえば、1.0.9 より前に存在するリリース候補の 2 つ (1.0.9-rc51.0.9-rc6) を見つけます。For example, find 1.0.9-rc5 and 1.0.9-rc6, two of the release candidates that came before 1.0.9. また、RC バージョンにはプレリリースのラベルが付いていることもわかります。You can also see that RC versions are marked with pre-release labels.

IoT Edge エージェント モジュールおよびハブ モジュールには、同じ規則でタグ付けされた RC バージョンがあります。The IoT Edge agent and hub modules have RC versions that are tagged with the same convention. たとえば、mcr.microsoft.com/azureiotedge-hub:1.0.9-rc6 があります。For example, mcr.microsoft.com/azureiotedge-hub:1.0.9-rc6.

プレビューの場合、リリース候補バージョンは、通常のインストーラーがターゲットとする最新版として含まれていません。As previews, release candidate versions aren't included as the latest version that the regular installers target. 代わりに、テストする RC バージョンの資産を手動でターゲットにする必要があります。Instead, you need to manually target the assets for the RC version that you want to test. ほとんどの場合、RC バージョンのインストールや RC バージョンへの更新は、IoT Edge の他の特定のバージョンをターゲットとする場合と同じです。For the most part, installing or updating to an RC version is the same as targeting any other specific version of IoT Edge.

IoT Edge デバイスを特定のバージョンのセキュリティ デーモンまたはランタイム モジュールに更新する方法については、この記事の各セクションを参照してください。Use the sections in this article to learn how to update an IoT Edge device to a specific version of the security daemon or runtime modules.

新しいコンピューターに IoT Edge をインストールする場合は、次のリンクを使用して、デバイスのオペレーティング システムに応じて特定のバージョンをインストールする方法を確認してください。If you're installing IoT Edge on a new machine, use the following links to learn how to install a specific version depending on your device operating system:

次のステップNext steps

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

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