Von Bedeutung
このページには、プレビュー段階にある Kubernetes デプロイ マニフェストを使用して Azure IoT Operations コンポーネントを管理する手順が含まれています。 この機能は、いくつかの制限を設けて提供されているため、運用環境のワークロードには使用しないでください。
ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
データ フロー グラフでは、レジストリ エンドポイントを使用して、コンテナー レジストリから WebAssembly (WASM) モジュールとグラフ定義をプルします。 エンドポイント設定、認証、およびその他の設定を構成して、Azure Container Registry (ACR) またはその他の OCI 互換レジストリに接続できます。
[前提条件]
- Azure IoT Operations バージョン 1.2 以降のインスタンス
- Azure Container Registry などのコンテナー レジストリへのアクセス
レジストリ エンドポイントの概要
レジストリ エンドポイントは、コンテナー レジストリにアクセスするための接続の詳細と認証方法を定義します。 レジストリ エンドポイントは、次の方法で使用されます。
- データ フロー グラフ: WASM モジュールとグラフ定義をプルするには
- Akri コネクタ: カスタム コネクタ テンプレートを取得するには
レジストリ エンドポイントは、次の方法で認証をサポートします。
- システムによって割り当てられた管理ID
- ユーザーが割り当てた管理ID
- アーティファクトのプル シークレット (ユーザー名とパスワード)
- 匿名アクセス (パブリック レジストリの場合)
レジストリ エンドポイントを作成する
Bicep または Kubernetes を使用してレジストリ エンドポイントを作成できます。
Von Bedeutung
現時点では、Akri コネクタでレジストリ エンドポイント リソースを使用する場合に既知の問題があります。 詳細については、「 Akri コネクタがレジストリ エンドポイント リソースで動作しない」を参照してください。
次の内容を含む Bicep .bicep ファイルを作成します。
param aioInstanceName string = '<AIO_INSTANCE_NAME>'
param customLocationName string = '<CUSTOM_LOCATION_NAME>'
param registryEndpointName string = '<REGISTRY_ENDPOINT_NAME>'
param registryHost string = '<REGISTRY_HOST>' // For example, myregistry.azurecr.io
resource aioInstance 'Microsoft.IoTOperations/instances@2024-11-01' existing = {
name: aioInstanceName
}
resource customLocation 'Microsoft.ExtendedLocation/customLocations@2021-08-31-preview' existing = {
name: customLocationName
}
resource registryEndpoint 'Microsoft.IoTOperations/instances/registryEndpoints@2025-07-01-preview' = {
parent: aioInstance
name: registryEndpointName
extendedLocation: {
name: customLocation.id
type: 'CustomLocation'
}
properties: {
host: registryHost
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {
audience: 'https://management.azure.com/'
}
}
}
}
Azure CLI を使用して Bicep ファイルをデプロイします。
az deployment group create --resource-group <RESOURCE_GROUP> --template-file <FILE>.bicep
構成オプション
このセクションでは、レジストリ エンドポイントで使用できる構成オプションについて説明します。
Host
host プロパティは、コンテナー レジストリのホスト名を指定します。 Azure Container Registry の場合は、 <registry-name>.azurecr.io形式を使用します。 ホスト プロパティは、HTTPS URL またはホスト名のみをサポートします。
例:
myregistry.azurecr.iohttps://myregistry.azurecr.io
パターン: Azure Container Registry のパターン ^(https:\/\/)?[a-zA-Z0-9\-]+\.azurecr\.io$ と一致する必要があります。
認証方法
レジストリ エンドポイントでは、コンテナー レジストリに安全にアクセスするためのいくつかの認証方法がサポートされています。
システムによって割り当てられた管理ID
システム割り当てマネージド ID は、Azure IoT Operations インスタンスの組み込み ID を使用してレジストリで認証します。 資格情報を管理する必要がなくなるため、これは Azure Container Registry に推奨されるアプローチです。
レジストリ エンドポイントを構成する前に、Azure IoT Operations のシステム割り当てマネージド ID に必要なアクセス許可があることを確認します。
- Azure portal で、Azure IoT Operations インスタンスに移動し、[概要] を選択します。
- Azure IoT Operations Arc 拡張機能の後に一覧表示されている拡張機能の名前をコピーします。 たとえば、azure-iot-operations-xxxx7 などです。
- コンテナー レジストリ >Access コントロール (IAM)>ロールの割り当ての追加に移動します。
- [ ロール ] タブで、ロール
AcrPull選択します。 - [ メンバー ] タブの [ アクセスの割り当て] で、[ ユーザー、グループ、またはサービス プリンシパル] を選択し、[ + メンバーの選択 ] を選択し、Azure IoT Operations Arc 拡張機能名を検索します。 拡張機能を選択し、[選択] を 選択します。
- [確認と割り当て] を選択して、ロールの割り当てを完了します。
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {
audience: 'https://management.azure.com/'
extensionName: null // Optional: specific extension name
tenantId: null // Optional: specific tenant ID
}
}
システム割り当てマネージド ID の設定:
| プロパティ | 説明 | 必須 | タイプ |
|---|---|---|---|
audience |
認証対象のサービスの対象ユーザー。 | いいえ | 糸 |
extensionName |
使用する特定の拡張機能名。 | いいえ | 糸 |
tenantId |
認証用のテナント ID。 | いいえ | 糸 |
指定されていない場合、オペレーターはエンドポイントから対象ユーザーを推測しようとします。 Azure Container Registry の場合、対象ユーザーは通常 https://management.azure.com/。
ユーザーが割り当てた管理ID
ユーザー割り当てマネージド ID を使用すると、必要なアクセス許可を使用して作成および構成した特定のマネージド ID を使用できます。
レジストリ エンドポイントを構成する前に、ユーザー割り当てマネージド ID にコンテナー レジストリの AcrPull ロールがあることを確認します。
authentication: {
method: 'UserAssignedManagedIdentity'
userAssignedManagedIdentitySettings: {
clientId: '<CLIENT_ID>'
tenantId: '<TENANT_ID>'
scope: null // Optional: specific scope
}
}
ユーザー割り当てマネージド ID の設定:
| プロパティ | 説明 | 必須 | タイプ |
|---|---|---|---|
clientId |
ユーザー割り当てマネージド ID のクライアント ID。 | イエス | 糸 |
tenantId |
マネージド ID が配置されているテナント ID。 | イエス | 糸 |
scope |
.default サフィックスを持つリソースのスコープ。 |
いいえ | 糸 |
指定されていない場合、オペレーターはエンドポイントからスコープの推論を試みます。
アーティファクト プル シークレット
アーティファクト プル シークレットを使用すると、マネージド ID 認証をサポートしていないレジストリに対してユーザー名とパスワード認証を使用できます。
まず、レジストリ資格情報を含む Kubernetes シークレットを作成します。
kubectl create secret docker-registry my-registry-secret \
--docker-server=myregistry.azurecr.io \
--docker-username=<USERNAME> \
--docker-password=<PASSWORD> \
-n azure-iot-operations
authentication: {
method: 'ArtifactPullSecret'
artifactPullSecretSettings: {
secretRef: 'my-registry-secret'
}
}
匿名認証
匿名認証は、認証を必要としないパブリック レジストリに使用されます。
authentication: {
method: 'Anonymous'
anonymousSettings: {}
}
Azure Container Registry の統合
Azure Container Registry (ACR) は、Azure IoT Operations に推奨されるコンテナー レジストリです。 ACR は、セキュリティで保護されたプライベート Docker コンテナー レジストリに、Microsoft Entra ID を介した統合認証を提供します。
ACR の前提条件
- ACR インスタンスを作成する: ACR インスタンスがない場合は、サブスクリプションに Azure Container Registry インスタンスを作成します。
-
アクセス許可の構成: Azure IoT Operations マネージド ID にレジストリに対する
AcrPullアクセス許可があることを確認します。 - 成果物をプッシュする: ORAS CLI などのツールを使用して、WASM モジュールとグラフ定義をレジストリにアップロードします。
ACR 構成の例
ACR レジストリ エンドポイントを構成する完全な例を次に示します。
param aioInstanceName string = 'my-aio-instance'
param customLocationName string = 'my-custom-location'
param acrName string = 'myregistry'
resource aioInstance 'Microsoft.IoTOperations/instances@2024-11-01' existing = {
name: aioInstanceName
}
resource customLocation 'Microsoft.ExtendedLocation/customLocations@2021-08-31-preview' existing = {
name: customLocationName
}
resource acrRegistryEndpoint 'Microsoft.IoTOperations/instances/registryEndpoints@2025-07-01-preview' = {
parent: aioInstance
name: 'acr-endpoint'
extendedLocation: {
name: customLocation.id
type: 'CustomLocation'
}
properties: {
host: '${acrName}.azurecr.io'
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {
audience: 'https://management.azure.com/'
}
}
}
}
その他のコンテナー レジストリ
レジストリ エンドポイントは、次のような他の OCI と互換性のあるコンテナー レジストリもサポートします。
- Docker Hub
- 港
- AWS Elastic Container Registry (ECR)
- Google Container Registry (GCR)
これらのレジストリでは、通常、Azure マネージド ID をサポートしていない限り、認証にアーティファクト プル シークレットを使用します。