Hello,
I am investigating an Azure Machine Learning logging issue inside an Azure Managed Application and would appreciate help identifying which identity or permission Azure ML expects for the workspaceartifactstore.
The Azure ML workspace and compute cluster are deployed inside the Managed Application’s managed resource group. The compute cluster is connected to a managed VNet/subnet and uses only the user-assigned managed identity.
The compute identity has:
Storage Blob Data Contributor on the workspace storage account
AzureML Data Scientist on the Azure ML workspace
AcrPull on the private container registry
The workspace system-assigned identity has:
Storage Blob Data Contributor on the workspace storage account
Storage Account Contributor on the workspace storage account
A Key Vault access policy for the workspace’s linked Key Vault
Both workspaceblobstore and workspaceartifactstore were changed through Azure ML Studio to identity-based access. They now show:
Authentication type: None
The training job itself completes successfully. Input mounting works, and the declared training and model outputs are successfully written through workspaceblobstore.
However, Azure ML reports:
Component HOSTTOOLS_CAPABILITY unhealthy.
Service HOSTTOOLS_CAPABILITY returned health check response with code: 4,
message: 403 Forbidden.
Unable to upload outputs and logs to blob storage.
Check if you have lost access to storage account or workspace.
When the following environment variable is set to ignore, the training job completes but the Azure ML system logs are missing:
AZUREML_CR_HOSTTOOLS_CAPABILITY_OUTPUT_MANAGER_FAILURE_MODE=ignore
If it is set to fail, Azure ML marks the job as failed even though the training executable finishes and creates its declared artifacts.
The expected default output location is:
azureml://datastores/workspaceartifactstore/ExperimentRun/dcid.good_vinegar_fwr5g45fn1
Storage diagnostic logs show that the workspace identity successfully wrote:
azureml/ComputeRecord/dcid.good_vinegar_fwr5g45fn1/compute_record.txt
That request used OAuth and returned HTTP 201, with authorization granted through Storage Blob Data Contributor.
In my customer Azure ML, it works fine. But, with an MRG Azure ML, it causes problems.
What I'm I suppose to do here?