Configurar autenticação de origem particular

Nesta página, você encontra uma visão geral da autenticação de origem particular e instruções para usá-la com o Cloud CDN.

A autenticação de origem particular fornece ao Cloud CDN acesso de recursos de longo prazo a buckets particulares do Amazon S3 ou outros armazenamentos de objetos compatíveis. O uso de origens particulares impede que os clientes ignorem o Cloud CDN e acessem sua origem diretamente.

Esse recurso é compatível com o Cloud CDN com um balanceador de carga de aplicativo externo global ou um balanceador de carga de aplicativo clássico.

A autenticação de origem particular é voltada para a origem, enquanto os URLs assinados e os cookies assinados são voltados para o cliente. É possível ativar ambos para o mesmo conteúdo. A autenticação de origem particular limita o acesso não CDN às suas origens e conteúdo. URLs e cookies assinados controlam quais usuários podem acessar o Cloud CDN.

Antes de começar

Configurar a autenticação para origens particulares

Para configurar a autenticação de origem particular, siga estas instruções:

gcloud

  1. Exporte a configuração de back-end da origem particular para um arquivo .yaml usando o comando gcloud compute backend-services export:

    gcloud compute backend-services export BACKEND_SERVICE_NAME \
       [--destination=DESTINATION]
    

    Substitua DESTINATION pelo nome do arquivo .yaml, por exemplo, my-private-origin.yaml.

  2. Para autenticar suas solicitações de back-end usando a chave HMAC, especifique estas opções de configuração adicionais na seção securitySettings de backendServices:

    securitySettings:
      awsV4Authentication:
        accessKeyId: ACCESS_KEY_ID
        accessKey: ACCESS_KEY
        [accessKeyVersion: ACCESS_KEY_VERSION]
        originRegion: REGION
    …]
    

    Substitua:

    • ACCESS_KEY_ID: o ID da chave de acesso HMAC
    • ACCESS_KEY: a chave de acesso HMAC
    • ACCESS_KEY_VERSION (opcional): um nome exclusivo que pode ser definido para representar a versão da chave.
    • REGION: uma região válida para seu provedor de armazenamento. Para o Amazon S3, o valor não é uma região do Google Cloud.

    O snippet a seguir mostra o conteúdo de um arquivo my-private-origin.yaml de exemplo:

     name: shopping-cart-services
     backends:
       - description: cart-backend-1
         group: 'https://www.googleapis.com/compute/v1/projects/my-project-id/global/networkEndpointGroups/my-network-origin-group'
     securitySettings:
       awsV4Authentication:
         accessKeyId: AKIDEXAMPLE
         accessKey: c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9
         accessKeyVersion: prod-access-key-v1.2
         originRegion: us-east-2
    
  3. Para atualizar a origem particular, importe a configuração para o serviço de back-end usando o comando gcloud compute backend-services import:

    gcloud compute backend-services import BACKEND_SERVICE_NAME \
       [--source=SOURCE]
    

    Substitua SOURCE pelo nome do arquivo .yaml.

API

Para autenticar suas solicitações de back-end usando a chave HMAC, especifique essas outras opções de configuração na seção securitySettings de backendServices.

Use a chamada de API Method: backendServices.insert ou Method: backendServices.update.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

Adicione o seguinte snippet ao corpo da solicitação JSON:

securitySettings: {
  awsV4Authentication: {
    accessKeyId: ACCESS_KEY_ID,
    accessKey: ACCESS_KEY,
    [accessKeyVersion: ACCESS_KEY_VERSION],
    originRegion: REGION
  }
}

Substitua:

  • ACCESS_KEY_ID: o ID da chave de acesso HMAC
  • ACCESS_KEY: a chave de acesso HMAC
  • ACCESS_KEY_VERSION (opcional): um nome exclusivo que pode ser definido para representar a versão da chave.
  • REGION: uma região válida para seu provedor de armazenamento. Para o Amazon S3, o valor não é uma região do Google Cloud.

O snippet a seguir mostra o conteúdo de um exemplo de corpo de solicitação JSON:

securitySettings: {
  awsV4Authentication: {
    accessKeyId: "AKIDEXAMPLE",
    accessKey: "c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9",
    accessKeyVersion: "prod-access-key-v1.2",
    originRegion: "us-east-2"
  }
}

O nome do serviço é definido automaticamente como s3 para criar a assinatura. Depois que essas configurações estiverem em vigor, o Cloud CDN vai gerar um cabeçalho de autorização HTTP para todas as solicitações da origem.

Armazenar em cache respostas autenticadas de forma particular

Talvez você queira garantir que o conteúdo autenticado de forma privada seja armazenado em cache pelo Cloud CDN.

Para fazer isso, defina o modo de cache como Forçar o armazenamento em cache de todo o conteúdo e especifique um TTL para que todo o conteúdo disponibilizado da origem seja armazenado em cache.

Como alternativa, se você não quiser forçar todo o conteúdo a ser armazenado em cache da mesma maneira, mude o modo de cache para Usar a configuração de origem com base nos cabeçalhos de controle de cache ou Armazenar conteúdo estático em cache e verifique se o cabeçalho Cache-Control está definido corretamente no conteúdo disponibilizado na sua origem.

A seguir