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
Crie uma chave de código de autenticação de mensagem baseada numa cifra (HMAC) para autenticar pedidos e associá-la a uma conta de serviço. Anote a chave de acesso e o segredo.
Consulte o artigo Aceder à AWS através das suas credenciais da AWS: acesso programático na documentação da AWS.
Configure um balanceador de carga com o back-end externo.
Se o seu armazenamento de objetos esperar um valor específico para o cabeçalho
Host
do pedido HTTP, certifique-se de que está configurado no serviço de back-end. Se não configurar um cabeçalho de pedido personalizado, o serviço de back-end preserva o cabeçalhoHost
que o cliente usou para se ligar ao Application Load Balancer externo.Para ver os passos de configuração, consulte o artigo Trabalhar com cabeçalhos de pedidos personalizados. Para um exemplo específico, consulte o artigo Configurar um balanceador de carga com um back-end externo.
Se necessário, atualize para a versão mais recente da CLI Google Cloud:
gcloud components update
Configure a autenticação para origens privadas
Para configurar a autenticação de origem privada, use as seguintes instruções:
Consola
Na Google Cloud consola, aceda à página Cloud CDN.
Clique no nome da origem que quer configurar. A origem tem de ser do tipo Origem personalizada.
Na página Detalhes da origem, clique no botão Editar.
Para navegar para a secção Regras de anfitrião e caminho, clique em Seguinte.
Para navegar para a secção Desempenho da cache, clique em Seguinte.
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
.
Clique em Concluído.
gcloud
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
.Para autenticar os pedidos de back-end através da chave HMAC, especifique estas opções de configuração adicionais na secção
securitySettings
debackendServices
: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 HMACACCESS_KEY
: a chave de acesso HMACACCESS_KEY_VERSION
(opcional): um nome único que pode definir para representar a versão da chaveREGION
: 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
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 HMACACCESS_KEY
: a chave de acesso HMACACCESS_KEY_VERSION
(opcional): um nome exclusivo que pode definir para representar a versão da chaveREGION
: 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.