Para criar uma solicitação assinada, crie uma string que inclua parâmetros que descrevam o conteúdo que você quer proteger e o tempo de expiração do valor assinado. Em seguida, inclua a string composta na solicitação. Em seguida, a Media CDN verifica se a solicitação assinada é válida antes de agir de acordo com ela.
Requisitos de solicitação assinada
As solicitações assinadas precisam atender aos seguintes requisitos:
Ter um método HTTP
GET,HEADouOPTIONS. Outros métodos não são compatíveis.Ter um horário de expiração definido para o futuro. Devido a possíveis diferenças de sincronização de relógio, bem como condições de rede do cliente (por exemplo, desconexões e novas tentativas), recomendamos definir carimbos de data/hora em pelo menos um minuto no futuro ou pelo menos o tempo do fluxo de vídeo, o que for maior.
Ter uma assinatura que possa ser verificada por uma chave ou um segredo em um
EdgeCacheKeyset.
Não é possível assinar outros métodos HTTP, como solicitações POST, PUT ou DELETE.
Se você precisar emitir URLs assinados para uploads voltados ao usuário, consulte a
documentação do Cloud Storage sobre URLs assinados.
Configurar solicitações assinadas
As seções a seguir detalham como configurar, assinar e validar solicitações assinadas.
Gerar chaves
Crie as chaves que a Media CDN usa para assinar solicitações.
Criar um conjunto de chaves
Crie o conjunto de chaves que o Media CDN usa para solicitações assinadas.
Exigir solicitações assinadas
Para permitir que apenas solicitações assinadas acessem um recurso, anexe uma
lista de chaves a uma rota e defina signedRequestMode como um dos seguintes valores:
REQUIRE_SIGNATURESpara solicitações assinadas que não usam tokens.REQUIRE_TOKENSpara solicitações assinadas usando tokens.
Ao ativar as solicitações assinadas em uma rota, todos os pedidos precisam ser assinados ou apresentar um token. As solicitações sem uma assinatura válida (como um nome de chave inválido, uma assinatura ou token expirado, uma assinatura incompatível etc.) falham.
Um EdgeCacheKeyset pode conter várias chaves para permitir a rotação de chaves. As solicitações válidas assinadas com qualquer chave listada são aceitas, e as chaves
são testadas em ordem. Para mais informações sobre a rotação de chaves, consulte Fazer rotação de
secrets.
Quando o signedRequestMode é definido como REQUIRE_SIGNATURES ou REQUIRE_TOKENS, o Media CDN valida acertos e ausências no cache. Isso inclui todas as solicitações à origem.
Confira abaixo um exemplo de configuração da Media CDN que impõe solicitações assinadas em um determinado PathMatcher (rota):
gcloud edge-cache services describe prod-media-service
... routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_SIGNATURES signedRequestKeyset: prod-vod-keyset
Para informações sobre como criar tokens para solicitações assinadas, consulte Gerar tokens.
Para desativar a assinatura de solicitações, defina signedRequestMode como DISABLED
e exclua a referência a signedRequestKeyset.
Validar solicitações na origem
Quando uma rota é configurada com um modo de assinatura REQUIRE_SIGNATURES,
o Media CDN valida se cada solicitação correspondente tem uma assinatura
válida. A falta de uma assinatura é tratada como uma assinatura inválida para essas rotas.
Para evitar casos em que a assinatura está mal configurada e em que um usuário tenta acessar sua origem diretamente, recomendamos que você valide se as solicitações também estão assinadas na origem. Uma abordagem de defesa em profundidade para proteção de conteúdo ajuda a evitar o acesso e o download não autorizados do seu conteúdo licenciado e pago.
Para métodos de assinatura baseados em URL, em que a assinatura faz parte dos parâmetros
de consulta ou está incorporada como um componente de caminho de URL, a assinatura e os parâmetros
relacionados são removidos do URL antes que a solicitação seja enviada à
origem. Isso evita que a assinatura cause problemas de roteamento quando a origem
está lidando com a solicitação. Para validar essas solicitações, inspecione o
cabeçalho da solicitação x-client-request-url, que inclui o URL de solicitação do cliente original (assinado)
antes da remoção dos componentes assinados.
Para validar solicitações na origem, use o mesmo código de validação como parte dos endpoints de assinatura de solicitação, o que também ajuda a reduzir a incompatibilidade de chaves e problemas devido à rotação de chaves.
Alternar chaves
Como prática recomendada, faça a rotação ou atualize os secrets usados pela Media CDN regularmente. Recomendamos fazer a rotação das chaves a cada 30 a 60 dias, mas isso não é estritamente necessário.
A seguir
Para ler mais sobre como ativar e acessar os registros da Media CDN, incluindo como filtrar e consultar seus registros, consulte Registro em log.
Para configurar o Media CDN e um bucket privado do Cloud Storage, consulte Conectividade e proteção de origem.