Esta página, fornece 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 buckets particulares do Amazon S3 ou a outros repositórios 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 origens e ao 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, na sigla em inglês) para autenticar solicitações e associá-la a uma conta de serviço. Anote a chave de acesso e a chave secreta.
Consulte Acesso à 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 repositório 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 um cabeçalho da solicitação personalizado não for configurado, o serviço de back-end preservará o cabeçalhoHost
usado pelo cliente para se conectar ao balanceador de carga de aplicativo externo.Consulte as etapas de configuração em Como trabalhar com cabeçalhos de solicitação personalizados. Consulte um exemplo específico em 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, use estas instruções:
Console
No console do Google Cloud , acesse a página Cloud CDN.
Clique no nome da origem a ser configurada. 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 Avançar.
Para navegar até a seção Desempenho do cache, clique em Avançar.
Na seção Autenticação de origem particular, selecione Autenticar solicitações para esta origem com a versão 4 da assinatura da AWS. Em seguida, especifique as seguintes informações:
- ID da chave: chave de acesso do bucket do Amazon S3 ou outro repositório de objetos compatível.
- Chave: a chave secreta usada para autenticar o acesso ao repositório de objetos. Se estiver sendo usado 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 repositório de objetos 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 solicitações de back-end usando a chave HMAC, especifique as seguintes 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 o provedor de armazenamento. Para o Amazon S3, o valor não é uma região da Google Cloud.
O snippet a seguir mostra o conteúdo de um exemplo de arquivo
my-private-origin.yaml
: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 solicitações de back-end usando a chave HMAC, especifique as seguintes
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. Para o Amazon S3, o valor não é uma região da 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 disponibilizado na origem seja armazenado em cache.
Como alternativa, se você não quiser forçar o armazenamento em cache de todo o conteúdo da mesma forma,
altere o modo de cache para Usar configuração de origem com base em cabeçalhos Cache-Control
ou Armazenar conteúdo estático em cache e verifique se o cabeçalho Cache-Control
está
definido corretamente no conteúdo disponibilizado na origem.