Compartilhar via


Efeito audit para as definições do Azure Policy

O efeito audit é usado para criar um evento de aviso no log de atividades ao avaliar um recurso fora de conformidade, mas ela não para a solicitação.

Avaliação de auditoria

Audit é o último efeito verificado pelo Azure Policy durante a criação ou a atualização de um recurso. Para um modo do Resource Manager, o Azure Policy envia o recurso ao provedor de recursos. Ao avaliar uma solicitação de criação ou atualização para um recurso, o Azure Policy adiciona uma operação Microsoft.Authorization/policies/audit/action ao log de atividades e marca o recurso como fora de conformidade. Durante um ciclo de avaliação de conformidade padrão, somente o status de conformidade no recurso é atualizado.

Propriedades de auditoria

No modo Gerenciador de Recursos, o efeito audit não têm propriedades adicionais para uso na condição then da definição de política.

No modo Provedor de Recursos do Microsoft.Kubernetes.Data, o efeito audit tem as subpropriedades de details. O uso de templateInfo é obrigatório para definições de política novas ou atualizadas, pois constraintTemplate é obrigatório.

  • templateInfo (obrigatório)

    • Não pode ser usado com constraintTemplate.
    • sourceType (obrigatório)
      • Define o tipo de fonte para o modelo de restrição. Valores permitidos: PublicURL ou Base64Encoded.

      • Se PublicURL, emparelhado com a propriedade url para fornecer a localização do modelo de restrição. A localização deve ser acessível publicamente.

        Aviso

        Não use os URIs de SAS, tokens de URL ou qualquer outra coisa que possa expor segredos em texto sem formatação.

      • Se Base64Encoded, emparelhado com a propriedade content para fornecer o modelo de restrição codificado em base 64. Consulte Criar definição de política do modelo de restrição para criar uma definição personalizada de um modelo de restrição Gatekeeper v3 do OPA (Open Policy Agent) existente.

  • constraint (preterido)

    • Não pode ser usado com templateInfo.
    • A implementação de CRD do modelo de restrição. Usa parâmetros passados por meio de values como {{ .Values.<valuename> }}. No exemplo 2 abaixo, esses valores são {{ .Values.excludedNamespaces }} e {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (preterido)

    • Não pode ser usado com templateInfo.
    • Deve ser substituído por ao templateInfo criar ou atualizar uma definição de política.
    • O modelo de restrição CRD (CustomResourceDefinition) que define novas restrições. O modelo define a lógica Rego, o esquema de restrição e os parâmetros de restrição que são passados por meio de values do Azure Policy. Para obter mais informações, acesse Restrições de gatekeeper.
  • constraintInfo (opcional)

    • Não pode ser usado com constraint, constraintTemplate, apiGroups, kinds, scope, namespaces, excludedNamespaces, ou labelSelector.
    • Se constraintInfo não for fornecido, a restrição poderá ser gerada a partir de templateInfo e da política.
    • sourceType (obrigatório)
      • Define o tipo de fonte para o modelo de restrição. Valores permitidos: PublicURL ou Base64Encoded.

      • Se PublicURL, emparelhado com a propriedade url para fornecer a localização da restrição. A localização deve ser acessível publicamente.

        Aviso

        Não use URIs de SAS ou tokens em url ou qualquer outra coisa que possa expor um segredo.

  • namespaces (opcional)

    • Uma matriz dos namespaces dos Kubernetes a serem limitados da avaliação de política.
    • Um valor vazio ou ausente faz com que a avaliação de política inclua todos os namespaces não definidos em excludedNamespaces.
  • excludedNamespaces (opcional)

  • labelSelector (opcional)

    • Um objeto que inclui propriedades domatchLabels (objeto) e do matchExpression (matriz) para permitir quais recursos de Kubernetes devem ser incluídos na avaliação da política que está de acorco com as etiquetas e seletores informados.
    • Um valor vazio ou ausente faz com que a avaliação de política inclua todas as etiquetas e os seletores, exceto aqueles definidos em excludedNamespaces.
  • scope (opcional)

    • Uma cadeia de caracteres que inclui a propriedade de escopo para permitir a especificação se recursos com escopo de cluster ou com escopo de nomes forem correspondidos.
  • apiGroups (obrigatório ao usar templateInfo)

    • Uma matriz que inclui os grupos da API correspondentes. Uma matriz vazia ([""]) é o grupo de API principal.
    • A definição ["*"] de apiGroups não é permitida.
  • kinds (obrigatório ao usar templateInfo)

    • Uma matriz que inclui o tipo de objeto de Kubernetes para limitar a avaliação.
    • A definição ["*"] de tipos não é permitida.
  • values (opcional)

    • Define quaisquer parâmetros e valores a ser passados para a restrição. Cada valor deve existir e corresponder a uma propriedade na seção openAPIV3Schema de validação do CRD do modelo de restrição.

Exemplo de auditoria

Exemplo 1: uso do efeito audit nos modos do Resource Manager.

"then": {
  "effect": "audit"
}

Exemplo 2: uso do efeito audit em um modo Microsoft.Kubernetes.Data do provedor de recursos. As informações adicionais em details.templateInfo declaram o uso de PublicURL e definem url para a localização do modelo de restrição a ser usado no Kubernetes para limitar as imagens de contêiner permitidas.

"then": {
  "effect": "audit",
  "details": {
    "templateInfo": {
      "sourceType": "PublicURL",
      "url": "https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml",
    },
    "values": {
      "imageRegex": "[parameters('allowedContainerImagesRegex')]"
    },
    "apiGroups": [
      ""
    ],
    "kinds": [
      "Pod"
    ]
  }
}

Próximas etapas