Configure a autenticação de origem privada

Esta página oferece uma vista geral da autenticação de origem privada e instruções para a usar com a RFC do Google Cloud.

A autenticação de origem privada concede ao Cloud CDN acesso a longo prazo a recursos a contentores privados do Amazon S3 ou a outros armazenamentos de objetos compatíveis. A utilização de origens privadas impede que os clientes ignorem a CDN da Google Cloud e acedam diretamente à sua origem.

Esta funcionalidade é suportada para o Cloud CDN com um balanceador de carga de aplicações externo global ou um balanceador de carga de aplicações clássico.

A autenticação de origem privada é orientada para a origem, enquanto os URLs assinados e os cookies assinados são orientados para o cliente. Pode ativar ambas as opções para o mesmo conteúdo. A autenticação de origem privada limita o acesso que não é da RFC às suas origens e conteúdo. Os URLs assinados e os cookies controlam que utilizadores podem aceder ao Cloud CDN.

Antes de começar

Configure a autenticação para origens privadas

Para configurar a autenticação de origem privada, use as seguintes instruções:

Consola

  1. Na Google Cloud consola, aceda à página Cloud CDN.

    Aceda ao Cloud CDN

  2. Clique no nome da origem que quer configurar. A origem tem de ser do tipo Origem personalizada.

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

  4. Para navegar para a secção Regras de anfitrião e caminho, clique em Seguinte.

  5. Para navegar para a secção Desempenho da cache, clique em Seguinte.

  6. Na secção Autenticação de origem privada, selecione Autenticar pedidos a esta origem com a versão 4 da assinatura da AWS. Em seguida, especifique as seguintes informações:

    • ID da chave: chave de acesso para o seu contentor do Amazon S3 ou outro armazenamento de objetos compatível.
    • Chave: a chave secreta usada para autenticar no armazenamento de objetos. Se estiver a usar um contentor privado 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 onde a sua loja de objetos está localizada, por exemplo, us-east-1.
  7. Clique em Concluído.

gcloud

  1. Exporte a configuração de back-end para a sua origem privada para um ficheiro YAML através do comando:gcloud compute backend-services export

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

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

  2. Para autenticar os pedidos de back-end através da chave HMAC, especifique estas opções de configuração adicionais na secção securitySettings de backendServices:

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

    Substitua o seguinte:

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

    O fragmento seguinte mostra o conteúdo de um ficheiro 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 privada, importe a configuração para o serviço de back-end através do comando gcloud compute backend-services import:

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

    Substitua SOURCE pelo nome do ficheiro YAML.

API

Para autenticar os pedidos de back-end através da chave HMAC, especifique estas opções de configuração adicionais na secção securitySettings de backendServices.

Use a chamada 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 fragmento ao corpo do pedido JSON:

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

Substitua o seguinte:

  • 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 definir para representar a versão da chave
  • REGION: uma região válida para o seu fornecedor de armazenamento. Para o Amazon S3, o valor não é uma Google Cloud região.

O seguinte fragmento mostra o conteúdo de um corpo do pedido JSON de exemplo:

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 de estas configurações estarem em vigor, a RFC gera um cabeçalho de autorização HTTP para todos os pedidos à sua origem.

Coloque em cache respostas autenticadas de forma privada

Pode querer garantir que o conteúdo autenticado de forma privada é colocado em cache pela RFC.

Para o fazer, defina o modo de cache como Forçar a colocação em cache de todo o conteúdo e especifique um TTL, para que todo o conteúdo publicado a partir da origem seja colocado em cache.

Em alternativa, se não quiser forçar a colocação em cache de todo o conteúdo da mesma forma, altere o modo de cache para Usar definição de origem com base nos cabeçalhos Cache-Control ou Colocar em cache conteúdo estático e certifique-se de que o cabeçalho Cache-Control está corretamente definido no conteúdo publicado a partir da sua origem.

O que se segue?