Compartilhar via


Versão 1.0 da política do Atestado

Os proprietários de instância podem usar a política do Atestado do Azure para definir o que deve ser validado durante o fluxo de atestado. Este artigo apresenta o funcionamento do serviço de atestado e do mecanismo de política. Cada tipo de atestado tem sua própria política de atestado. A gramática e o processamento com suporte são amplamente os mesmos.

Versão 1.0 da política

A versão mínima da política aceita pelo serviço é a versão 1.0.

Diagrama que mostra o Atestado do Azure usando a versão 1.0 da política.

O fluxo do serviço de atestado é o seguinte:

  • A plataforma envia a evidência de atestado na chamada de atestado para o serviço de atestado.
  • O serviço de atestado analisa as evidências e cria uma lista de declarações para uso na avaliação do atestado. Essas declarações são categorizadas logicamente como conjuntos de declaração de entrada.
  • A política de atestado carregada é usada para avaliar as evidências em relação às regras criadas na política de atestado.

A versão 1.0 do Azure Policy tem três segmentos:

  • versão: a versão é o número de versão da gramática seguida.
  • authorizationrules: uma coleção de regras de declaração que são verificadas primeiro para determinar se o atestado deve prosseguir para regras de emissão. Use esta seção para filtrar chamadas que não exigem a aplicação de regras de emissão. Nenhuma declaração pode ser emitida desta seção para o token de resposta. Essas regras podem ser usadas para reprovar o atestado.
  • issuancerules: uma coleção de regras de declaração que são avaliadas para adicionar informações ao resultado do atestado, conforme definido na política. As regras de declaração se aplicam na ordem em que são definidas. Eles também são opcionais. Essas regras podem ser usadas para adicionar ao conjunto de declarações de saída e ao token de resposta. Essas regras podem ser usadas para reprovar o atestado.

As declarações a seguir com suporte pela política versão 1.0 como parte das declarações de entrada.

Atestado de TPM

Use essas declarações para definir regras de autorização em uma política de atestado do TPM (Trusted Platform Module):

  • aikValidated: o valor booliano que contém informações se o certificado de AIK (chave de identidade de atestado) foi validada ou não.
  • aikPubHash: a cadeia de caracteres que contém a chave pública AIK base64 (SHA256) em formato DER.
  • tpmVersion: o valor inteiro que contém a versão principal do TPM.
  • secureBootEnabled: o valor booliano que indica se a inicialização segura está habilitada.
  • iommuEnabled: o valor booliano que indicar se a unidade de gerenciamento de memória de entrada-saída está habilitada.
  • bootDebuggingDisabled: o valor booliano que indica se a depuração de inicialização está desabilitada.
  • notSafeMode: o valor booliano que indica se Windows não está em execução no modo de segurança.
  • notWinPE: o valor booliano que indica se o Windows não está em execução no modo WinPE.
  • vbsEnabled: o valor booliano que indica se a VBS (segurança baseada em virtualização) está habilitada.
  • vbsReportPresent: o valor booliano que indica se um relatório de enclave da VBS está disponível.

Atestado da VBS

Use as seguintes declarações para definir regras de autorização em uma política de atestado da VBS:

  • enclaveAuthorId: o valor da cadeia de caracteres que contém o valor codificado em Base64Url da ID do autor do enclave. É o identificador de autor do módulo primário do enclave.
  • enclaveImageId: o valor da cadeia de caracteres que contém o valor codificado em Base64Url da ID da imagem do enclave. É o identificador de imagem do módulo primário do enclave.
  • enclaveOwnerId: o valor da cadeia de caracteres que contém o valor codificado em Base64Url da ID do proprietário do enclave. É o identificador do proprietário do enclave.
  • enclaveFamilyId: o valor da cadeia de caracteres que contém o valor codificado em Base64Url da ID da família do enclave. É o identificador de família do módulo primário do enclave.
  • enclaveSvn: o valor inteiro que contém o número de versão de segurança do módulo primário do enclave.
  • enclavePlatformSvn: o valor inteiro que contém o número de versão de segurança da plataforma que hospeda o enclave.
  • enclaveFlags: a declaração enclaveFlags é um valor inteiro que contém sinalizadores que descrevem a política de runtime do enclave.

Exemplo de políticas para tipos diversos de atestado

Exemplo de política para TPM:

version=1.0;

authorizationrules { 
    => permit();
};


issuancerules
{
[type=="aikValidated", value==true]&& 
[type=="secureBootEnabled", value==true] &&
[type=="bootDebuggingDisabled", value==true] && 
[type=="notSafeMode", value==true] => issue(type="PlatformAttested", value=true);
};