Configurar políticas de autorização para o Secure Web Proxy

Esta página descreve como configurar políticas de autorização para o Secure Web Proxy.

Antes de começar

Criar uma política de autorização

Esta seção explica como criar diferentes tipos de políticas de autorização anexadas a uma instância do Secure Web Proxy.

Para criar uma política de autorização para o Secure Web Proxy, faça o seguinte:

Política de autorização com base na identidade mTLS

O Secure Web Proxy oferece suporte à aplicação de regras de segurança com base em identidades derivadas de certificados TLS mútuos (mTLS). A aplicação de regras com base nessas identidades é particularmente útil em ambientes de confiança zero, em que o tráfego entre clientes e o proxy é protegido por mTLS. Para mais informações, consulte Política de autorização com base em principais.

O exemplo a seguir mostra uma política de autorização para uma instância do Secure Web Proxy chamada swp1. Este exemplo pressupõe que o tráfego para o proxy usa o protocolo HTTPS.

A política com o perfil REQUEST_AUTHZ exige que todo o tráfego para example.com/mcp exija a autenticação mTLS de um principal específico antes que o tráfego possa passar. A política também nega todo o tráfego de saída que não se destina a example.com/mcp.

  1. Crie o arquivo YAML da política de autorização.

    O exemplo a seguir cria um arquivo authz-policy.yaml. A política permite o tráfego para o host e o caminho especificados somente se o cliente apresentar um certificado que corresponda ao principal SPIFFE ID definido.

    $ cat >authz-policy.yaml <<EOF
    name: test-authz-policy-mtls
    target:
      resources:
      - "projects/ PROJECT_ID /locations/ LOCATION /gateways/swp1"
    policyProfile: REQUEST_AUTHZ
    httpRules:
    - to:
      operations:
      - hosts:
          - exact: "example.com"
        paths:
          - exact: "/mcp"
      from:
        sources:
        - principals:
          - principalSelector: CLIENT_CERT_URI_SAN
            principal:
              exact: "spiffe:// PROJECT_ID .global.123.workload.id.goog/ns/ns1/sa/hellomcp"
    action: ALLOW
    EOF
    

    Substitua:

    • PROJECT_ID: ID do seu Google Cloud projeto
    • LOCATION: região da instância do Secure Web Proxy
  2. Crie uma política de autorização e importe o arquivo YAML usando o gcloud network-security authz-policies import comando.

    gcloud beta network-security authz-policies import my-authz-policy-allow
        --source=authz-policy.yaml
        --location= LOCATION 
    

    Substitua LOCATION pela região da instância do Secure Web Proxy.

Política de autorização com base em contas de serviço ou tags

É possível aplicar uma política de autorização com base em contas de serviço ou tags anexadas a vários Google Cloud recursos.

Este exemplo pressupõe que você concluiu o seguinte:

Conta de serviço

  1. Crie um arquivo YAML de política de autorização para permitir determinadas solicitações.

    O exemplo a seguir cria um arquivo authz-policy.yaml para a instância do Secure Web Proxy chamada swp1. A política está configurada para permitir solicitações de uma instância de máquina virtual (VM) do Compute Engine com a conta de serviço my-sa-123@56788.iam.gserviceaccount.com para acessar o caminho example1.com/url1.

    $ cat >authz-policy.yaml <<EOF
    name: my-authz-policy-allow
    target:
        resources:
        - "projects/PROJECT_ID/locations/ LOCATION /gateways/swp1"
    policyProfile: REQUEST_AUTHZ
    httpRules:
    - from:
        sources:
            - resources:
                - iamServiceAccount:
                    exact: "my-sa-123@56788.iam.gserviceaccount.com"
      to:
        operations:
        - hosts:
            - exact: "example1.com"
        paths:
        - prefix: "/url1"
    action: ALLOW
    EOF
    

    Substitua:

    • PROJECT_ID: ID do seu Google Cloud projeto
    • LOCATION: região da instância do Secure Web Proxy
  2. Crie uma política de autorização e importe o arquivo YAML usando o gcloud network-security authz-policies import comando.

    O comando de exemplo a seguir mostra como importar o arquivo de política criado anteriormente e criar uma política de autorização:

    gcloud network-security authz-policies import my-authz-policy-allow
    
        --source=authz-policy.yaml
        --location= LOCATION 
    

    Substitua LOCATION pela região da instância do Secure Web Proxy.

Tag

  1. Crie um arquivo YAML de política de autorização para permitir determinadas solicitações.

    O exemplo a seguir cria um arquivo authz-policy-tag.yaml para a instância do Secure Web Proxy chamada swp1. A política permite apenas as solicitações originadas de um Google Cloud recurso com um valor de tag de TAG_VALUE_PERMANENT_ID para acessar o caminho do URL example1.com/url1.

    $ cat >authz-policy-tag.yaml <<EOF
    name: my-authz-policy-tag-allow
    target:
        resources:
        - "projects/PROJECT_ID/locations/ LOCATION /gateways/ GATEWAY_NAME "
    policyProfile: REQUEST_AUTHZ
    httpRules:
    - from:
        sources:
        - resources:
            - tagValueIdSet:
                ids: ["TAG_VALUE_PERMANENT_ID"]
      to:
        operations:
        - hosts:
            - exact: "example1.com"
            paths:
            - exact: "/url1"
    action: ALLOW
    EOF
    

    Substitua:

    • PROJECT_ID: ID do seu Google Cloud projeto
    • LOCATION: região da instância do Secure Web Proxy
    • GATEWAY_NAME: nome do gateway do Secure Web Proxy
    • TAG_VALUE_PERMANENT_ID: ID permanente de um valor de tag, como tagValues/123456789012
  2. Crie uma política de autorização e importe o arquivo YAML usando o gcloud network-security authz-policies import comando.

    O comando de exemplo a seguir importa o arquivo de política criado anteriormente e cria uma política de autorização na região especificada Google Cloud :

    gcloud network-security authz-policies import my-authz-policy-tag-allow
        --source=authz-policy-tag.yaml
        --location= LOCATION 
    

    Substitua LOCATION pela região da instância do Secure Web Proxy.

Política de autorização para delegar decisões de autorização

Para decisões de autorização complexas que não podem ser expressas usando regras ALLOW ou DENY padrão, é possível criar uma política de autorização com uma ação CUSTOM. Em seguida, você pode delegar suas decisões de autorização para extensões de autorização (Service Extensions).

Ao configurar uma política com uma ação CUSTOM, o Secure Web Proxy descarrega os metadados ou o payload da solicitação para Service Extensions. Dependendo da resposta das Service Extensions, o proxy permite ou rejeita o tráfego.

O Secure Web Proxy oferece suporte aos seguintes tipos de delegações:

  • Delegar decisões de autorização de solicitação para Service Extensions: é possível usar uma política de autorização configurada com uma ação CUSTOM e um perfil REQUEST_AUTHZ para delegar decisões com base em metadados e cabeçalhos de solicitação. Nesse modo, a decisão de acesso é delegada a uma extensão de autorização. É possível usar esse modo para verificar identidades e permissões.

  • Delegar decisões de autorização de conteúdo para Service Extensions: é possível usar uma política de autorização com uma ação CUSTOM e um CONTENT_AUTHZ perfil para delegar decisões a uma extensão de autorização com base no payload de dados real da solicitação. Esse modo permite a inspeção de conteúdo detalhada e a aplicação de segurança, permitindo que você verifique informações sensíveis ou padrões maliciosos integrando-se a serviços como o Model Armor.

Limitações

Ao implementar políticas de autorização para o Secure Web Proxy, as seguintes limitações se aplicam:

A seguir