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.
Com a autenticação de origem particular, o Cloud CDN tem acesso de longo prazo a recursos a 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 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
Crie uma chave de código de autenticação de mensagem baseada em hash (HMAC) para autenticar solicitações e associá-la a uma conta de serviço. Anote a chave de acesso e a chave secreta.
Consulte Como acessar a AWS usando suas credenciais da AWS: acesso programático na documentação da AWS.
Configurar um balanceador de carga com o back-end externo.
Se o armazenamento de objetos espera um valor específico para o cabeçalho
Host
da solicitação HTTP, verifique se ele está configurado no serviço de back-end. Se você não configurar um cabeçalho de solicitação personalizado, um serviço de back-end preservará o cabeçalhoHost
usado pelo cliente para se conectar ao balanceador de carga de aplicativo externo do Google Cloud.Para conferir as etapas de configuração, consulte Como trabalhar com cabeçalhos de solicitação personalizados. Para um exemplo específico, consulte Como configurar um balanceador de carga com um back-end externo.
Se necessário, atualize para a versão mais recente da CLI do Google Cloud:
gcloud components update
Configurar a autenticação para origens particulares
Para configurar a autenticação de origem particular, siga estas instruções:
gcloud
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 YAML. arquivo, por exemplo,my-private-origin.yaml
.Para autenticar suas solicitações de back-end usando a chave HMAC, especificar essas opções de configuração adicionais na Seção
securitySettings
debackendServices
: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 HMACACCESS_KEY
: a chave de acesso HMACACCESS_KEY_VERSION
(opcional): um nome exclusivo. que você define para representar a versão da chaveREGION
: uma região válida para o armazenamento. de nuvem. Para o Amazon S3, o valor não é um nome do Google Cloud na mesma região.
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
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 HMACACCESS_KEY
: a chave de acesso HMACACCESS_KEY_VERSION
(opcional): um nome exclusivo que é possível definir para representar a versão da chaveREGION
: uma região válida para o armazenamento. de nuvem. Para o Amazon S3, o valor não é um nome do Google Cloud na mesma região.
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 modo particular seja armazenado em cache do Cloud CDN.
Para fazer isso, defina o modo de cache Forçar o armazenamento em cache de todo o conteúdo e especificar um TTL, de modo que todo o conteúdo exibido a partir a origem é armazenada em cache.
Como alternativa, se 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 Armazene o conteúdo estático em cache e verifique se o cabeçalho Cache-Control
está
definido corretamente no conteúdo veiculado a partir da sua origem.