次の方法で共有


Azure IoT Operations デプロイ用のシークレットの管理

Azure IoT Operations は、クラウドでの管理されたコンテナー ソリューションとして Azure Key Vault を使い、Kubernetes 用 Azure Key Vault Secret Store 拡張機能を使ってクラウドからシークレットを同期して、それらを Kubernetes シークレットとしてエッジに格納します。

重要

ベスト プラクティスに従って、Azure IoT Operations で使用する Azure Key Vault をセキュリティで保護します。 シークレットを保護するには、Key Vault のセキュリティを確保することが重要です。 Azure Key Vault をセキュリティで保護する方法の詳細なガイダンスについては、「Azure Key Vault を使用するためのベスト プラクティス」を参照してください。

前提条件

  • セキュリティ保護設定を使ってデプロイされた Azure IoT Operations インスタンス。 テスト設定を使ってデプロイした Azure IoT Operations で、シークレットを使いたい場合は、最初にセキュリティ保護設定を有効にする必要があります。

  • キー コンテナーにシークレットを作成するには、リソース レベルでのシークレット責任者アクセス許可が必要です。 ユーザーへのロールの割り当てについては、「Azure ロールを割り当てる手順」をご覧ください。

シークレットを追加して使用する

Azure IoT Operations のシークレット管理は、Secret Store 拡張機能を使って Azure Key Vault からシークレットを同期し、Kubernetes シークレットとしてエッジに格納します。 デプロイの間にセキュリティ保護設定を有効にした時点で、シークレット管理用に Azure Key Vault を選択しています。 この Key Vault に、Azure IoT Operations 内で使われるすべてのシークレットが格納されます。

Azure IoT Operations インスタンスは、1 つの Azure Key Vault でのみ動作します。インスタンスごとに複数のキー コンテナーを使うことはサポートされていません。

シークレットのセットアップの管理手順が完了したら、Azure Key Vault へのシークレットの追加を開始し、運用エクスペリエンス Web UI を使用して、資産エンドポイントまたはデータ フロー エンドポイントで使用される Kubernetes クラスターに同期できます。

シークレットは、認証のために資産エンドポイントとデータ フロー エンドポイントで使われます。 このセクションでは、資産エンドポイントを例として使用します。 データ フロー エンドポイントにも同じプロセスを適用できます。 Azure Key Vault でシークレットを直接作成し、それをクラスターに自動的に同期させるか、キー コンテナーの既存のシークレット参照を使用するオプションがあります。

  1. 操作エクスペリエンス Web UI の [資産エンドポイント] ページに移動します。

  2. 新しいシークレット参照を追加するには、新しい資産エンドポイントを作成するときに [ 参照の追加] を選択します。

    操作エクスペリエンスでシークレットを選択するときの [Azure Key Vault からの追加] と [新しい作成] オプションを示すスクリーンショット。

    • 新しいシークレットを作成する: Azure Key Vault にシークレット参照を作成し、シークレット ストア拡張機能を使用してシークレットをクラスターに自動的に同期します。 このシナリオに必要なシークレットを事前にキー コンテナーに作成していない場合は、このオプションを使います。

    • Azure Key Vault から追加する: キー コンテナー内の既存のシークレットが以前に同期されていない場合は、クラスターに同期します。 このオプションを選ぶと、選択されているキー コンテナー内のシークレット参照の一覧が表示されます。 事前にキー コンテナーにシークレットを作成した場合は、このオプションを使います。 シークレットの最新バージョンのみがクラスターに同期されます

  3. 資産エンドポイントまたはデータ フロー エンドポイントにユーザー名とパスワードの参照を追加するときは、同期されるシークレットに名前を付ける必要があります。 シークレット参照は、この指定された名前で 1 つのシークレット同期リソースとしてクラスターに保存されます。 次のスクリーンショットの例では、ユーザー名とパスワードの参照が edp1secrets としてクラスターに保存されます。

    操作エクスペリエンスで認証モードでユーザー名パスワードが選択されている場合に同期されたシークレット名フィールドを示すスクリーンショット。

同期されたシークレットを管理する

このセクションでは、資産エンドポイントを例として使用します。 同じプロセスをデータ フロー エンドポイントに適用できます。

  1. 操作エクスペリエンス Web UI の [資産エンドポイント] ページに移動します。

  2. シークレットの一覧を表示するには、[ 証明書とシークレットの管理 ] を選択し、[ シークレット] を選択します。

    [操作エクスペリエンス シークレット] ページの同期されたシークレットの一覧を示すスクリーンショット。

[ シークレット ] ページを使用すると、資産エンドポイントとデータ フロー エンドポイントで同期されたシークレットを表示できます。 [シークレット] ページには、表示しているリソースのエッジにある現在同期されているすべてのシークレットの一覧が表示されます。 同期されたシークレットは、それを使うリソースに応じて、1 つまたは複数のシークレット参照を表します。 同期されたシークレットに適用されるすべての操作は、同期されたシークレット内に含まれるすべてのシークレット参照に適用されます。

同期されたシークレットは、[ シークレット ] ページでも削除できます。 同期されたシークレットを削除すると、同期されたシークレットのみが Kubernetes クラスターから削除され、含まれているシークレット参照は Azure Key Vault から削除されません。 証明書シークレットは、キー コンテナーから手動で削除する必要があります。

警告

Kubernetes クラスター内の SecretProviderClass および SecretSync カスタム リソースを直接編集すると、Azure IoT Operations のシークレット フローが中断される可能性があります。 シークレットに関連する操作については、操作エクスペリエンス Web UI を使用します。

同期されたシークレットを削除する前に、Azure IoT Operations コンポーネントからのそのシークレットへのすべての参照が削除されていることを確認してください。