Partilhar via


Definições de Política do Azure negam efeito

O deny efeito é usado para impedir uma solicitação de recurso que não corresponde aos padrões definidos por meio de uma definição de política e falha na solicitação.

Negar avaliação

Ao criar ou atualizar um recurso correspondente em um modo do Gerenciador de Recursos, negar impede que a solicitação seja enviada ao Provedor de Recursos. A solicitação é retornada como um 403 (Forbidden)arquivo . No portal, o Forbidden pode ser visto como um status de implantação que foi impedido pela atribuição de política. Para um modo Provedor de Recursos, o provedor de recursos gerencia a avaliação do recurso.

Durante a avaliação dos recursos existentes, os recursos que correspondem a uma deny definição de política são marcados como não conformes.

Negar propriedades

Para um modo Gerenciador de Recursos, o deny efeito não tem mais propriedades para uso na then condição da definição de política.

Para um modo Provedor de Recursos do Microsoft.Kubernetes.Data, o deny efeito tem as seguintes subpropriedades de details. O uso de é necessário para definições de templateInfo política novas ou atualizadas, conforme constraintTemplate preterido.

  • 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. O local deve ser acessível ao público.

        Aviso

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

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

  • constraint (facultativo)
    • Não pode ser usado com templateInfo.
    • A implementação CRD do modelo Constraint. Usa parâmetros passados como values {{ .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 templateInfo ao criar ou atualizar uma definição de política.
    • O modelo de restrição CustomResourceDefinition (CRD) 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 da values Política do Azure. Para obter mais informações, vá para Restrições do Gatekeeper.
  • constraintInfo (facultativo)
    • Não pode ser usado com constraint, constraintTemplate, apiGroups, ou kinds.
    • Se constraintInfo não for fornecida, a restrição pode ser gerada a partir de templateInfo e política.
    • sourceType (obrigatório)
      • Define o tipo de fonte para a restrição. Valores permitidos: PublicURL ou Base64Encoded.

      • Se PublicURL, emparelhado com a propriedade url para fornecer a localização da restrição. O local deve ser acessível ao público.

        Aviso

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

  • namespaces (facultativo)
  • excludedNamespaces (obrigatório)
    • Uma matriz de namespaces do Kubernetes a serem excluídos da avaliação de políticas.
  • labelSelector (obrigatório)
    • Um objeto que inclui matchLabels propriedades (objeto) e matchExpression (matriz) para permitir especificar quais recursos do Kubernetes devem ser incluídos para avaliação de políticas que correspondam aos rótulos e seletores fornecidos.
    • Um valor vazio ou ausente faz com que a avaliação da política inclua todos os rótulos e seletores, exceto namespaces definidos em excludedNamespaces.
  • apiGroups (obrigatório ao usar templateInfo)
    • Uma matriz que inclui os grupos de API correspondentes . Uma matriz vazia ([""]) é o grupo principal da API.
    • A definição ["*"] de apiGroups não é permitida.
  • kinds (obrigatório ao usar templateInfo)
  • values (facultativo)
    • Define quaisquer parâmetros e valores a serem passados para a Restrição. Cada valor deve existir no modelo de restrição CRD.

Negar exemplo

Exemplo 1: Usando o efeito para os deny modos do Gerenciador de Recursos.

"then": {
  "effect": "deny"
}

Exemplo 2: Usando o deny efeito para um modo de Provedor de Recursos de Microsoft.Kubernetes.Data. As informações adicionais em details.templateInfo declara o uso e PublicURL define url o local do modelo Restrição a ser usado no Kubernetes para limitar as imagens de contêiner permitidas.

"then": {
  "effect": "deny",
  "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óximos passos