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
Hostdo 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çalhoHostque 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 exportgcloud compute backend-services export BACKEND_SERVICE_NAME \ [--destination=DESTINATION]
Substitua
DESTINATIONpelo 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
securitySettingsdebackendServices: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.yamlde 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-2Para 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
SOURCEpelo 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.