Pour créer une requête signée, composez une chaîne qui inclut des paramètres décrivant le contenu que vous souhaitez protéger et le délai d'expiration de la valeur signée. Vous incluez ensuite la chaîne composée dans votre requête. Media CDN vérifie ensuite que votre requête signée est valide avant de la traiter.
Conditions requises pour les requêtes signées
Les requêtes signées doivent répondre aux exigences suivantes:
Utiliser une méthode HTTP
GET
,HEAD
ouOPTIONS
. Les autres méthodes ne sont pas acceptées.Définissez une heure d'expiration dans le futur. En raison des différences potentielles de synchronisation des horloges, ainsi que des conditions réseau du client (par exemple, les déconnexions et les nouvelles tentatives), nous vous recommandons de définir des codes temporels d'au moins une minute dans le futur ou d'au moins la longueur du flux vidéo, la valeur la plus élevée étant retenue.
disposer d'une signature pouvant être validée par une clé ou un secret dans un
EdgeCacheKeyset
;
Vous ne pouvez pas signer d'autres méthodes HTTP, telles que les requêtes POST
, PUT
ou DELETE
.
Si vous devez émettre des URL signées pour les importations destinées aux utilisateurs, consultez la documentation Cloud Storage sur les URL signées.
Configurer des requêtes signées
Les sections suivantes expliquent comment configurer, signer et valider des requêtes signées.
Générer des clés
Créez les clés que Media CDN utilise pour signer les requêtes.
Créer une collection de clés
Créez la collection de clés que Media CDN utilise pour les requêtes signées.
Exiger des requêtes signées
Pour n'autoriser que les requêtes signées à accéder à une ressource, vous pouvez associer une liste de clés à un routage et définir signedRequestMode
sur l'un des éléments suivants:
REQUIRE_SIGNATURES
pour les requêtes signées n'utilisant pas de jetons.REQUIRE_TOKENS
pour les requêtes signées à l'aide de jetons.
L'activation des requêtes signées sur un parcours garantit que toutes les requêtes sont signées ou présentent un jeton. Les requêtes sans signature valide (nom de clé non valide, signature ou jeton expirés, signature non correspondante, etc.) échouent.
Un EdgeCacheKeyset
peut contenir plusieurs clés pour permettre la rotation des clés. Les requêtes valides signées avec une clé de la liste sont acceptées, et les clés sont essayées dans l'ordre. Pour en savoir plus sur la rotation des clés, consultez la section Rotation des secrets.
Lorsque signedRequestMode
est défini sur REQUIRE_SIGNATURES
ou REQUIRE_TOKENS
, Media CDN valide à la fois les éventuelles correspondances et les échecs de mise en cache. Cela inclut toutes les requêtes envoyées à l'origine.
Voici un exemple de configuration Media CDN qui applique des requêtes signées à un PathMatcher (route) donné :
gcloud edge-cache services describe prod-media-service
... routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_SIGNATURES signedRequestKeyset: prod-vod-keyset
Pour en savoir plus sur la création de jetons pour les requêtes signées, consultez la section Générer des jetons.
Pour désactiver la signature des requêtes, vous pouvez définir signedRequestMode
sur DISABLED
et supprimer la référence à signedRequestKeyset
.
Valider les requêtes à l'origine
Lorsqu'une route est configurée avec un mode de signature REQUIRE_SIGNATURES
, Media CDN vérifie que chaque requête correspondante possède une signature valide. L'absence de signature est traitée comme une signature non valide pour ces routes.
Pour éviter les cas où la signature est mal configurée et où un utilisateur tente d'accéder directement à votre origine, nous vous recommandons de vérifier que les requêtes sont également signées à l'origine. Une approche de défense en profondeur pour la protection des contenus permet d'empêcher l'accès et le téléchargement non autorisés de vos contenus sous licence et payants.
Pour les méthodes de signature basées sur l'URL, lorsque la signature fait partie des paramètres de requête ou est intégrée en tant que composant de chemin d'URL, la signature et les paramètres associés sont supprimés de l'URL avant que la requête ne soit envoyée à l'origine. Cela évite que la signature ne provoque des problèmes de routage lorsque l'origine gère la requête. Pour valider ces requêtes, vous pouvez inspecter l'en-tête de requête x-client-request-url
, qui inclut l'URL de requête client d'origine (signée) avant la suppression des composants signés.
Pour valider les requêtes à l'origine, utilisez le même code de validation dans vos points de terminaison de signature de requête, ce qui permet également de réduire les différences de clé et les problèmes liés à la rotation des clés.
Rotation des clés
Il est recommandé d'alterner ou de mettre à jour régulièrement les secrets utilisés par Media CDN. Nous vous recommandons d'alterner les clés tous les 30 à 60 jours, mais ce n'est pas strictement obligatoire.
Étape suivante
Pour en savoir plus sur l'activation et l'accès aux journaux Media CDN, y compris sur le filtrage et les requêtes dans vos journaux, consultez la section Journalisation.
Pour configurer Media CDN et un bucket Cloud Storage privé, consultez la section Connectivité et protection des origines.