Solucionar problemas de máquinas bare metal usando o az networkcloud baremetalmachine run-data-extract
comando
Pode haver situações em que um usuário precise investigar e resolver problemas com uma máquina bare metal local. O Azure Operator Nexus fornece um conjunto prescrito de comandos de extração de dados por meio az networkcloud baremetalmachine run-data-extract
do . Esses comandos permitem que os usuários obtenham dados de diagnóstico de uma máquina bare metal.
O comando produz um arquivo de saída contendo os resultados da extração de dados. Por padrão, os dados são enviados para a conta de armazenamento do Gerenciador de Clusters. Há também um método de visualização onde os usuários podem configurar o recurso de cluster com uma conta de armazenamento e identidade que tem acesso à conta de armazenamento para receber a saída.
Pré-requisitos
- Este artigo pressupõe que a interface de linha de comando do Azure e a extensão de interface de linha de
networkcloud
comando estejam instaladas. Para obter mais informações, consulte Como instalar extensões CLI. - A máquina bare metal alvo está ligada e pronta.
- A sintaxe para esses comandos é baseada na versão 0.3.0+ da
az networkcloud
CLI. - Obtenha o nome do grupo de Recursos Gerenciados por Cluster (cluster_MRG) que você criou para o recurso de Cluster.
Verificar o acesso à conta de armazenamento do Cluster Manager
Nota
O método de saída da conta de armazenamento do Gerenciador de Cluster será preterido no futuro assim que a integração do cluster aos Serviços Confiáveis estiver concluída e a opção de armazenamento gerenciado pelo usuário for totalmente suportada.
Se estiver usando o método de armazenamento do Gerenciador de Clusters, verifique se você tem acesso à conta de armazenamento do Gerenciador de Clusters:
- No portal do Azure, navegue até a conta de Armazenamento do Gerenciador de Clusters.
- Nos detalhes da conta de armazenamento, selecione Navegador de armazenamento no menu de navegação do lado esquerdo.
- Nos detalhes do navegador de armazenamento, selecione em Contêineres de Blob.
- Se você encontrar um
403 This request is not authorized to perform this operation.
ao acessar a conta de armazenamento, as configurações de firewall da conta de armazenamento precisam ser atualizadas para incluir o endereço IP público. - Solicite acesso criando um tíquete de suporte via Portal no recurso Gerenciador de Cluster. Forneça o endereço IP público que requer acesso.
PREVIEW: Enviar saída de comando para uma conta de armazenamento especificada pelo usuário
Importante
Observe que esse método de especificar uma conta de armazenamento do usuário para a saída do comando está em visualização. Esse método só deve ser usado com contas de armazenamento de usuário que não tenham firewall habilitado. Se o seu ambiente exigir que o firewall da conta de armazenamento esteja habilitado, use o método de saída existente do Gerenciador de Clusters.
Criar e configurar recursos de armazenamento
- Crie uma conta de armazenamento ou identifique uma conta de armazenamento existente que você deseja usar. Consulte Criar uma conta de armazenamento do Azure.
- Crie um contêiner de armazenamento de blob na conta de armazenamento. Consulte Criar um contêiner.
- Atribua a função "Storage Blob Data Contributor" a usuários e identidades gerenciadas que precisam de acesso à saída run-data-extract.
- Veja Atribuir uma função do Azure para acesso aos dados de blobs. A função também deve ser atribuída a uma identidade gerenciada atribuída pelo usuário ou à própria identidade gerenciada atribuída ao sistema do cluster.
- Para obter mais informações sobre identidades gerenciadas, consulte Identidades gerenciadas para recursos do Azure.
- Se estiver usando a identidade atribuída ao sistema do Cluster, a identidade atribuída ao sistema precisará ser adicionada ao cluster antes que possa receber acesso.
- Ao atribuir uma função à identidade atribuída ao sistema do cluster, certifique-se de selecionar o recurso com o tipo "Cluster (Operator Nexus)".
Configurar o cluster para usar uma identidade gerenciada atribuída pelo usuário para acesso ao armazenamento
Use este comando para criar um cluster com uma conta de armazenamento gerenciado pelo usuário e identidade atribuída pelo usuário. Observe que este exemplo é um comando abreviado que apenas destaca os campos pertinentes para adicionar o armazenamento gerenciado pelo usuário. Não é o comando full cluster create.
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--command-output-settings identity-type="UserAssignedIdentity" \
identity-resource-id="<user-assigned-identity-resource-id>" \
container-url="<container-url>" \
...
--subscription "<subscription>"
Use este comando para configurar um cluster existente para uma conta de armazenamento fornecida pelo usuário e identidade atribuída pelo usuário. O comando update também pode ser usado para alterar o local e a identidade da conta de armazenamento, se necessário.
az networkcloud cluster update --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--command-output-settings identity-type="UserAssignedIdentity" \
identity-resource-id="<user-assigned-identity-resource-id>" \
container-url="<container-url>" \
--subscription "<subscription>"
Configurar o cluster para usar uma identidade gerenciada atribuída ao sistema para acesso ao armazenamento
Use este comando para criar um cluster com uma conta de armazenamento gerenciado pelo usuário e uma identidade atribuída ao sistema. Observe que este exemplo é um comando abreviado que apenas destaca os campos pertinentes para adicionar o armazenamento gerenciado pelo usuário. Não é o comando full cluster create.
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-system-assigned true \
--command-output-settings identity-type="SystemAssignedIdentity" \
container-url="<container-url>" \
...
--subscription "<subscription>"
Use este comando para configurar um cluster existente para uma conta de armazenamento fornecida pelo usuário e para usar sua própria identidade atribuída ao sistema. O comando update também pode ser usado para alterar o local da conta de armazenamento.
az networkcloud cluster update --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
--mi-system-assigned true \
--command-output-settings identity-type="SystemAssignedIdentity" \
container-url="<container-url>" \
--subscription "<subscription>"
Para alterar o cluster de uma identidade atribuída pelo usuário para uma identidade atribuída pelo sistema, o CommandOutputSettings deve primeiro ser limpo usando o comando na próxima seção e, em seguida, definido usando esse comando.
Limpe CommandOutputSettings do cluster
O CommandOutputSettings pode ser limpo, direcionando a saída run-data-extract de volta para o armazenamento do gerenciador de cluster. No entanto, não é recomendado, pois é menos seguro, e a opção será removida em uma versão futura.
No entanto, o CommandOutputSettings precisa ser limpo se mudar de uma identidade atribuída pelo usuário para uma identidade atribuída pelo sistema.
Use este comando para limpar o CommandOutputSettings:
az rest --method patch \
--url "https://management.azure.com/subscriptions/<subscription>/resourceGroups/<cluster-resource-group>/providers/Microsoft.NetworkCloud/clusters/<cluster-name>?api-version=2024-08-01-preview" \
--body '{"properties": {"commandOutputSettings":null}}'
Exibir o ID principal da identidade gerenciada
O ID do recurso de identidade pode ser encontrado selecionando "Visualização JSON" no recurso de identidade; o ID está na parte superior do painel que aparece. A URL do contêiner pode ser encontrada na guia Configurações -> Propriedades do recurso de contêiner.
A CLI também pode ser usada para exibir a identidade e os dados de ID principal associados dentro do cluster.
Exemplo:
az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>
Exemplo de identidade atribuída ao sistema:
"identity": {
"principalId": "2cb564c1-b4e5-4c71-bbc1-6ae259aa5f87",
"tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
"type": "SystemAssigned"
},
Exemplo de identidade atribuída pelo usuário:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
"clientId": "e67dd610-99cf-4853-9fa0-d236b214e984",
"principalId": "8e6d23d6-bb6b-4cf3-a00f-4cd640ab1a24"
}
}
},
Executar um comando de execução
O comando run data extract executa um ou mais scripts predefinidos para extrair dados de uma máquina bare metal.
Aviso
A Microsoft não fornece nem oferece suporte a chamadas de API do Operator Nexus que esperam que o nome de usuário e/ou senha de texto simples sejam fornecidos. Por favor, note que todos os valores enviados serão registrados e são considerados segredos expostos, que devem ser alternados e revogados. O método documentado da Microsoft para usar segredos com segurança é armazená-los em um Cofre de Chaves do Azure, se você tiver dúvidas ou preocupações específicas, envie uma solicitação por meio do Portal do Azure.
A lista atual de comandos suportados são
Coleção SupportAssist/TSR para solução de problemas da Dell
Nome do comando:hardware-support-data-collection
Argumentos: Tipo de logs solicitadosSysInfo
- Sistema de InformaçãoTTYLog
- Armazenamento de dados TTYLogDebug
- depurar logs
Coletar informações do agente do Microsoft Defender for Endpoints (MDE)
Nome do comando:mde-agent-information
Argumentos: NenhumColetar logs de suporte de diagnóstico MDE
Nome do comando:mde-support-diagnostics
Argumentos: NenhumColetar o status do pacote cumulativo de hardware da Dell
Nome do comando:hardware-rollup-status
Argumentos: NenhumGerar relatório CVE de cluster
Nome do comando:cluster-cve-report
Argumentos: Nenhum
A sintaxe do comando é:
az networkcloud baremetalmachine run-data-extract --name "<machine-name>" \
--resource-group "<cluster_MRG>" \
--subscription "<subscription>" \
--commands '[{"arguments":["<arg1>","<arg2>"],"command":"<command1>"}]' \
--limit-time-seconds "<timeout>"
Especifique vários comandos usando o formato json na --commands
opção. Cada command
um especifica comandos e argumentos. Para um comando com vários argumentos, forneça como uma lista para o arguments
parâmetro. Consulte Taquigrafia da CLI do Azure para obter instruções sobre como construir a --commands
estrutura.
Esses comandos podem ser de longa execução, então a recomendação é definir --limit-time-seconds
para pelo menos 600 segundos (10 minutos). A Debug
opção ou a execução de várias extrações pode levar mais de 10 minutos.
Na resposta, a operação é executada de forma assíncrona e retorna um código de status HTTP de 202. Consulte a seção Exibindo a saída para obter detalhes sobre como acompanhar a conclusão do comando e exibir o arquivo de saída.
Recolha de Dados de Suporte de Hardware
Este exemplo executa o hardware-support-data-collection
comando e obtém SysInfo
e TTYLog
registra no servidor Dell. O script executa um racadm supportassist collect
comando na máquina bare metal designada. O arquivo tar.gz resultante contém as saídas do arquivo de comando de extração compactado em hardware-support-data-<timestamp>.zip
.
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "cluster_MRG" \
--subscription "subscription" \
--commands '[{"arguments":["SysInfo", "TTYLog"],"command":"hardware-support-data-collection"}]' \
--limit-time-seconds 600
hardware-support-data-collection
Realização
====Action Command Output====
Executing hardware-support-data-collection command
Getting following hardware support logs: SysInfo,TTYLog
Job JID_814372800396 is running, waiting for it to complete ...
Job JID_814372800396 Completed.
---------------------------- JOB -------------------------
[Job ID=JID_814372800396]
Job Name=SupportAssist Collection
Status=Completed
Scheduled Start Time=[Not Applicable]
Expiration Time=[Not Applicable]
Actual Start Time=[Thu, 13 Apr 2023 20:54:40]
Actual Completion Time=[Thu, 13 Apr 2023 20:59:51]
Message=[SRV088: The SupportAssist Collection Operation is completed successfully.]
Percent Complete=[100]
----------------------------------------------------------
Deleting Job JID_814372800396
Collection successfully exported to /hostfs/tmp/runcommand/hardware-support-data-2023-04-13T21:00:01.zip
================================
Script execution result can be found in storage account:
https://cm2p9bctvhxnst.blob.core.windows.net/bmm-run-command-output/dd84df50-7b02-4d10-a2be-46782cbf4eef-action-bmmdataextcmd.tar.gz?se=2023-04-14T01%3A00%3A15Zandsig=ZJcsNoBzvOkUNL0IQ3XGtbJSaZxYqmtd%2BM6rmxDFqXE%3Dandsp=randspr=httpsandsr=bandst=2023-04-13T21%3A00%3A15Zandsv=2019-12-12
Exemplo de lista de arquivos de suporte de hardware coletados
Archive: TSR20240227164024_FM56PK3.pl.zip
creating: tsr/hardware/
creating: tsr/hardware/spd/
creating: tsr/hardware/sysinfo/
creating: tsr/hardware/sysinfo/inventory/
inflating: tsr/hardware/sysinfo/inventory/sysinfo_CIM_BIOSAttribute.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_CIM_Sensor.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_DCIM_View.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_DCIM_SoftwareIdentity.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_CIM_Capabilities.xml
inflating: tsr/hardware/sysinfo/inventory/sysinfo_CIM_StatisticalData.xml
creating: tsr/hardware/sysinfo/lcfiles/
inflating: tsr/hardware/sysinfo/lcfiles/lclog_0.xml.gz
inflating: tsr/hardware/sysinfo/lcfiles/curr_lclog.xml
creating: tsr/hardware/psu/
creating: tsr/hardware/idracstateinfo/
inflating: tsr/hardware/idracstateinfo/avc.log
extracting: tsr/hardware/idracstateinfo/avc.log.persistent.1
[..snip..]
Coletar informações do agente MDE
Os dados são coletados com o mde-agent-information
comando e formatados como JSON para /hostfs/tmp/runcommand/mde-agent-information.json
. O arquivo JSON é encontrado no arquivo zip de extração de dados localizado na conta de armazenamento. O script executa uma sequência de mdatp
comandos na máquina bare metal designada.
Este exemplo executa o mde-agent-information
comando sem argumentos.
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "cluster_MRG" \
--subscription "subscription" \
--commands '[{"command":"mde-agent-information"}]' \
--limit-time-seconds 600
mde-agent-information
Realização
====Action Command Output====
Executing mde-agent-information command
MDE agent is running, proceeding with data extract
Getting MDE agent information for bareMetalMachine
Writing to /hostfs/tmp/runcommand
================================
Script execution result can be found in storage account:
https://cmzhnh6bdsfsdwpbst.blob.core.windows.net/bmm-run-command-output/f5962f18-2228-450b-8cf7-cb8344fdss63b0-action-bmmdataextcmd.tar.gz?se=2023-07-26T19%3A07%3A22Z&sig=X9K3VoNWRFP78OKqFjvYoxubp65BbNTq%2BGnlHclI9Og%3D&sp=r&spr=https&sr=b&st=2023-07-26T15%3A07%3A22Z&sv=2019-12-12
Exemplo de objeto JSON coletado
{
"diagnosticInformation": {
"realTimeProtectionStats": $real_time_protection_stats,
"eventProviderStats": $event_provider_stats
},
"mdeDefinitions": $mde_definitions,
"generalHealth": $general_health,
"mdeConfiguration": $mde_config,
"scanList": $scan_list,
"threatInformation": {
"list": $threat_info_list,
"quarantineList": $threat_info_quarantine_list
}
}
Coletar diagnósticos de suporte MDE
Os dados coletados do mde-support-diagnostics
comando usam a ferramenta MDE Client Analyzer para agrupar informações de comandos e arquivos de mdatp
log relevantes. O arquivo de conta tgz
de armazenamento contém um zip
arquivo chamado mde-support-diagnostics-<hostname>.zip
. O zip
deve ser enviado junto com quaisquer solicitações de suporte para garantir que as equipes de suporte possam usar os logs para solução de problemas e análise de causa raiz, se necessário.
Este exemplo executa o mde-support-diagnostics
comando sem argumentos.
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "cluster_MRG" \
--subscription "subscription" \
--commands '[{"command":"mde-support-diagnostics"}]' \
--limit-time-seconds 600
mde-support-diagnostics
Realização
====Action Command Output====
Executing mde-support-diagnostics command
[2024-01-23 16:07:37.588][INFO] XMDEClientAnalyzer Version: 1.3.2
[2024-01-23 16:07:38.367][INFO] Top Command output: [/tmp/top_output_2024_01_23_16_07_37mel0nue0.txt]
[2024-01-23 16:07:38.367][INFO] Top Command Summary: [/tmp/top_summary_2024_01_23_16_07_370zh7dkqn.txt]
[2024-01-23 16:07:38.367][INFO] Top Command Outliers: [/tmp/top_outlier_2024_01_23_16_07_37aypcfidh.txt]
[2024-01-23 16:07:38.368][INFO] [MDE Diagnostic]
[2024-01-23 16:07:38.368][INFO] Collecting MDE Diagnostic
[2024-01-23 16:07:38.613][WARNING] mde is not running
[2024-01-23 16:07:41.343][INFO] [SLEEP] [3sec] waiting for agent to create diagnostic package
[2024-01-23 16:07:44.347][INFO] diagnostic package path: /var/opt/microsoft/mdatp/wdavdiag/5b1edef9-3b2a-45c1-a45d-9e7e4b6b869e.zip
[2024-01-23 16:07:44.347][INFO] Successfully created MDE diagnostic zip
[2024-01-23 16:07:44.348][INFO] Adding mde_diagnostic.zip to report directory
[2024-01-23 16:07:44.348][INFO] Collecting MDE Health
[...snip...]
================================
Script execution result can be found in storage account:
https://cmmj627vvrzkst.blob.core.windows.net/bmm-run-command-output/7c5557b9-b6b6-a4a4-97ea-752c38918ded-action-bmmdataextcmd.tar.gz?se=2024-01-23T20%3A11%3A32Z&sig=9h20XlZO87J7fCr0S1234xcyu%2Fl%2BVuaDh1BE0J6Yfl8%3D&sp=r&spr=https&sr=b&st=2024-01-23T16%3A11%3A32Z&sv=2019-12-12
Depois de baixar o arquivo de resultado da execução, os arquivos de suporte podem ser descompactados para análise.
Exemplo de lista de informações coletadas pelo MDE Client Analyzer
Archive: mde-support-diagnostics-rack1compute02.zip
inflating: mde_diagnostic.zip
inflating: process_information.txt
inflating: auditd_info.txt
inflating: auditd_log_analysis.txt
inflating: auditd_logs.zip
inflating: ebpf_kernel_config.txt
inflating: ebpf_enabled_func.txt
inflating: ebpf_syscalls.zip
inflating: ebpf_raw_syscalls.zip
inflating: messagess.zip
inflating: conflicting_processes_information.txt
[...snip...]
Status do pacote cumulativo de hardware
Os dados são coletados com o hardware-rollup-status
comando e formatados como JSON para /hostfs/tmp/runcommand/rollupStatus.json
. O arquivo JSON é encontrado no arquivo zip de extração de dados localizado na conta de armazenamento. Os dados coletados mostram a integridade dos subsistemas da máquina.
Este exemplo executa o hardware-rollup-status
comando sem argumentos.
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "clusete_MRG" \
--subscription "subscription" \
--commands '[{"command":"hardware-rollup-status"}]' \
--limit-time-seconds 600
hardware-rollup-status
Realização
====Action Command Output====
Executing hardware-rollup-status command
Getting rollup status logs for b37dev03a1c002
Writing to /hostfs/tmp/runcommand
================================
Script execution result can be found in storage account:
https://cmkfjft8twwpst.blob.core.windows.net/bmm-run-command-output/20b217b5-ea38-4394-9db1-21a0d392eff0-action-bmmdataextcmd.tar.gz?se=2023-09-19T18%3A47%3A17Z&sig=ZJcsNoBzvOkUNL0IQ3XGtbJSaZxYqmtd%3D&sp=r&spr=https&sr=b&st=2023-09-19T14%3A47%3A17Z&sv=2019-12-12
Exemplo JSON coletado
{
"@odata.context" : "/redfish/v1/$metadata#DellRollupStatusCollection.DellRollupStatusCollection",
"@odata.id" : "/redfish/v1/Systems/System.Embedded.1/Oem/Dell/DellRollupStatus",
"@odata.type" : "#DellRollupStatusCollection.DellRollupStatusCollection",
"Description" : "A collection of DellRollupStatus resource",
"Members" :
[
{
"@odata.context" : "/redfish/v1/$metadata#DellRollupStatus.DellRollupStatus",
"@odata.id" : "/redfish/v1/Systems/System.Embedded.1/Oem/Dell/DellRollupStatus/iDRAC.Embedded.1_0x23_SubSystem.1_0x23_Current",
"@odata.type" : "#DellRollupStatus.v1_0_0.DellRollupStatus",
"CollectionName" : "CurrentRollupStatus",
"Description" : "Represents the subcomponent roll-up statuses.",
"Id" : "iDRAC.Embedded.1_0x23_SubSystem.1_0x23_Current",
"InstanceID" : "iDRAC.Embedded.1#SubSystem.1#Current",
"Name" : "DellRollupStatus",
"RollupStatus" : "Ok",
"SubSystem" : "Current"
},
{
"@odata.context" : "/redfish/v1/$metadata#DellRollupStatus.DellRollupStatus",
"@odata.id" : "/redfish/v1/Systems/System.Embedded.1/Oem/Dell/DellRollupStatus/iDRAC.Embedded.1_0x23_SubSystem.1_0x23_Voltage",
"@odata.type" : "#DellRollupStatus.v1_0_0.DellRollupStatus",
"CollectionName" : "VoltageRollupStatus",
"Description" : "Represents the subcomponent roll-up statuses.",
"Id" : "iDRAC.Embedded.1_0x23_SubSystem.1_0x23_Voltage",
"InstanceID" : "iDRAC.Embedded.1#SubSystem.1#Voltage",
"Name" : "DellRollupStatus",
"RollupStatus" : "Ok",
"SubSystem" : "Voltage"
},
[..snip..]
Gerar relatório CVE de cluster
Os dados de vulnerabilidade são coletados com o cluster-cve-report
comando e formatados como JSON para {year}-{month}-{day}-nexus-cluster-vulnerability-report.json
. O arquivo JSON é encontrado no arquivo zip de extração de dados localizado na conta de armazenamento. Os dados coletados incluem dados de vulnerabilidade por imagem de contêiner no cluster.
Este exemplo executa o cluster-cve-report
comando sem argumentos.
Nota
A máquina de destino deve ser um nó do plano de controle ou a ação não será executada.
az networkcloud baremetalmachine run-data-extract --name "bareMetalMachineName" \
--resource-group "cluster_MRG" \
--subscription "subscription" \
--commands '[{"command":"cluster-cve-report"}]' \
--limit-time-seconds 600
cluster-cve-report
Realização
====Action Command Output====
Nexus cluster vulnerability report saved.
================================
Script execution result can be found in storage account:
https://cmkfjft8twwpst.blob.core.windows.net/bmm-run-command-output/20b217b5-ea38-4394-9db1-21a0d392eff0-action-bmmdataextcmd.tar.gz?se=2023-09-19T18%3A47%3A17Z&sig=ZJcsNoBzvOkUNL0IQ3XGtbJSaZxYqmtd%3D&sp=r&spr=https&sr=b&st=2023-09-19T14%3A47%3A17Z&sv=2019-12-12
Esquema de relatório CVE
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Vulnerability Report",
"type": "object",
"properties": {
"metadata": {
"type": "object",
"properties": {
"dateRetrieved": {
"type": "string",
"format": "date-time",
"description": "The date and time when the data was retrieved."
},
"platform": {
"type": "string",
"description": "The name of the platform."
},
"resource": {
"type": "string",
"description": "The name of the resource."
},
"runtimeVersion": {
"type": "string",
"description": "The version of the runtime."
},
"managementVersion": {
"type": "string",
"description": "The version of the management software."
},
"vulnerabilitySummary": {
"type": "object",
"properties": {
"criticalCount": {
"type": "integer",
"description": "Number of critical vulnerabilities."
},
"highCount": {
"type": "integer",
"description": "Number of high severity vulnerabilities."
},
"mediumCount": {
"type": "integer",
"description": "Number of medium severity vulnerabilities."
},
"lowCount": {
"type": "integer",
"description": "Number of low severity vulnerabilities."
},
"noneCount": {
"type": "integer",
"description": "Number of vulnerabilities with no severity."
},
"unknownCount": {
"type": "integer",
"description": "Number of vulnerabilities with unknown severity."
}
},
"required": ["criticalCount", "highCount", "mediumCount", "lowCount", "noneCount", "unknownCount"]
}
},
"required": ["dateRetrieved", "platform", "resource", "runtimeVersion", "managementVersion", "vulnerabilitySummary"]
},
"containers": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"properties": {
"namespace": {
"type": "string",
"description": "The namespace of the container."
},
"digest": {
"type": "string",
"description": "The digest of the container image."
},
"os": {
"type": "object",
"properties": {
"family": {
"type": "string",
"description": "The family of the operating system."
}
},
"required": ["family"]
},
"summary": {
"type": "object",
"properties": {
"criticalCount": {
"type": "integer",
"description": "Number of critical vulnerabilities in this container."
},
"highCount": {
"type": "integer",
"description": "Number of high severity vulnerabilities in this container."
},
"lowCount": {
"type": "integer",
"description": "Number of low severity vulnerabilities in this container."
},
"mediumCount": {
"type": "integer",
"description": "Number of medium severity vulnerabilities in this container."
},
"noneCount": {
"type": "integer",
"description": "Number of vulnerabilities with no severity in this container."
},
"unknownCount": {
"type": "integer",
"description": "Number of vulnerabilities with unknown severity in this container."
}
},
"required": ["criticalCount", "highCount", "lowCount", "mediumCount", "noneCount", "unknownCount"]
},
"vulnerabilities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the vulnerability."
},
"vulnerabilityID": {
"type": "string",
"description": "Identifier of the vulnerability."
},
"fixedVersion": {
"type": "string",
"description": "The version in which the vulnerability is fixed."
},
"installedVersion": {
"type": "string",
"description": "The currently installed version."
},
"referenceLink": {
"type": "string",
"format": "uri",
"description": "Link to the vulnerability details."
},
"publishedDate": {
"type": "string",
"format": "date-time",
"description": "The date when the vulnerability was published."
},
"score": {
"type": "number",
"description": "The CVSS score of the vulnerability."
},
"severity": {
"type": "string",
"description": "The severity level of the vulnerability."
},
"resource": {
"type": "string",
"description": "The resource affected by the vulnerability."
},
"target": {
"type": "string",
"description": "The target of the vulnerability."
},
"packageType": {
"type": "string",
"description": "The type of the package."
},
"exploitAvailable": {
"type": "boolean",
"description": "Indicates if an exploit is available for the vulnerability."
}
},
"required": ["title", "vulnerabilityID", "fixedVersion", "installedVersion", "referenceLink", "publishedDate", "score", "severity", "resource", "target", "packageType", "exploitAvailable"]
}
}
},
"required": ["namespace", "digest", "os", "summary", "vulnerabilities"]
}
}
}
},
"required": ["metadata", "containers"]
}
Detalhes dos dados CVE
Os dados CVE são atualizados por imagem de contêiner a cada 24 horas ou quando há uma alteração no recurso do Kubernetes fazendo referência à imagem.
Visualizando a saída
O comando fornece um link (se estiver usando o armazenamento do gerenciador de cluster) ou outro comando (se estiver usando o armazenamento fornecido pelo usuário) para baixar a saída completa. O arquivo tar.gz também contém as saídas do arquivo de comando de extração compactada. Baixe o arquivo de saída do blob de armazenamento para um diretório local especificando o caminho do diretório no argumento --output-directory
opcional .
Aviso
O uso do --output-directory
argumento substituirá todos os arquivos no diretório local que tenham o mesmo nome dos novos arquivos que estão sendo criados.
Nota
A conta de armazenamento pode ser bloqueada, resultando em 403 This request is not authorized to perform this operation.
devido a restrições de rede ou firewall. Consulte as seções Armazenamento do gerenciador de cluster ou Armazenamento gerenciado pelo usuário para obter os procedimentos para verificar o acesso.