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 dá ao Cloud CDN acesso de longo prazo a recursos de buckets particulares do Amazon S3 ou a outros armazenamentos de objetos compatíveis. O uso de origens particulares impede que os clientes ignorem o Cloud CDN e acessem a 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:

Console

  1. No console do Google Cloud, acesse a página do Cloud CDN.

    Acessar o Cloud CDN

  2. Clique no nome da origem que você quer configurar. A origem precisa ser do tipo Origem personalizada.

  3. Na página Detalhes da origem, clique no botão Editar.

  4. Para navegar até a seção Regras de host e caminho, clique em Próxima.

  5. Para navegar até a seção Desempenho do cache, clique em Próxima.

  6. Na seção Autenticação de origem particular, selecione Autentique solicitações para a origem com o AWS Signature versão 4. Em seguida, especifique as seguintes informações:

    • ID da chave: chave de acesso do bucket do Amazon S3 ou de outro armazenamento de objetos compatível.
    • Chave: a chave secreta usada para autenticar o acesso ao repositório de objetos. Se você estiver usando um bucket particular do Cloud Storage, especifique a chave HMAC.
    • Versão da chave: um nome exclusivo para representar a versão da chave.
    • Região: a região em que o object store está localizado, por exemplo, us-east-1.
  7. Clique em Concluído.

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 essas 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. No 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 opções de configuração adicionais 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 o provedor de armazenamento. No 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 particular seja armazenado em cache pelo Cloud CDN.

Para fazer isso, defina o modo de cache como Forçar cache de todo o conteúdo e especifique um TTL para que todo o conteúdo veiculado pela 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 Cache-Control ou Armazenar em cache o conteúdo estático e verifique se o cabeçalho Cache-Control está definido corretamente no conteúdo veiculado pela origem.

A seguir