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
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.
Configure 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:
Console
No console do Google Cloud, acesse a página do Cloud CDN.
Clique no nome da origem que você quer configurar. A origem precisa ser do tipo Origem personalizada.
Na página Detalhes da origem, clique no botão Editar.
Para navegar até a seção Regras de host e caminho, clique em Próxima.
Para navegar até a seção Desempenho do cache, clique em Próxima.
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
.
Clique em Concluído.
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 arquivo YAML, por exemplo,my-private-origin.yaml
.Para autenticar suas solicitações de back-end usando a chave HMAC, especifique 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 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
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 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.