Pour créer une requête signée, composez une chaîne incluant des paramètres décrire le contenu que vous souhaitez protéger et la date d'expiration 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 agir en conséquence.
Exigences concernant les requêtes signées
Les requêtes signées doivent répondre aux exigences suivantes:
Utilisez une méthode HTTP
GET
,HEAD
ouOPTIONS
. Les autres méthodes ne sont pas compatibles.avoir un délai d'expiration défini dans le futur ; En raison d'une horloge potentielle de synchronisation, ainsi que les conditions du réseau client (par (déconnexions et nouvelles tentatives, par exemple), nous vous recommandons de ne pas définir moins d'une minute dans le futur, ou au moins la durée de la flux vidéo, selon la valeur la plus élevée.
d'une signature pouvant être vérifiée à l'aide d'une clé ou d'un code 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 fournir des URL signées pour les importations destinées aux utilisateurs, consultez la
Documentation Cloud Storage sur les URL signées
Points à noter concernant la sécurité
Media CDN valide toutes les requêtes correspondant à une route configurée avec
cdnPolicy.signedRequestMode
sur REQUIRE_SIGNATURES
ou REQUIRE_TOKENS
.
Le tableau suivant explique les scénarios de validation de Media CDN une requête:
La requête comporte une signature | Signature valide ? | signedRequestMode | Comportement | Code de réponse |
---|---|---|---|---|
Non | N/A | REQUIRE_SIGNATURES ou REQUIRE_TOKENS |
Les requêtes sans signature ni jeton sont traitées comme si la signature était non valide. | HTTP 403 |
Oui | Non | REQUIRE_SIGNATURES ou REQUIRE_TOKENS |
Une signature ou un jeton est considéré comme non valide s'il a expiré ou si une URL non concordante ou clé incorrecte. Les signatures ou jetons non valides sont rejetés en périphérie du CDN. | HTTP 403 |
Oui | Oui | REQUIRE_SIGNATURES ou REQUIRE_TOKENS |
Valider une signature ou un jeton et la réponse avec le contenu de cache ou une extraction à partir de l'origine. | HTTP 200 |
Oui | Oui | Aucune ou DISABLED |
Aucune validation n'est effectuée et une réponse est envoyée à l'utilisateur. directement. | HTTP 200 |
Oui | Non | Aucune ou DISABLED |
Aucune validation n'est effectuée et une réponse est envoyée à l'utilisateur. directement. | HTTP 200 |
Lorsque votre application détecte une signature non valide, assurez-vous qu'elle répond avec un code de réponse HTTP 403 (Forbidden)
.
Les codes de réponse HTTP 403
ne peuvent pas être mis en cache.
Configurer des requêtes signées
Les sections suivantes expliquent en détail comment configurer, signer et valider les signatures requêtes.
Générer des clés
Créez les clés que Media CDN utilise pour signer requêtes.
Créer une collection de clés
Créez la collection de clés utilisée par Media CDN. 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 joindre un
de clés d'une route et définissez signedRequestMode
sur l'une des valeurs suivantes:
REQUIRE_SIGNATURES
pour les requêtes signées n'utilisant pas de jetons.REQUIRE_TOKENS
pour les requêtes signées utilisant des jetons.
L'activation de requêtes signées sur une route impose que toutes les requêtes soient signées ou présenter un jeton. Requêtes sans signature valide (clé non valide, par exemple) nom, signature ou jeton arrivé à expiration, signature non concordante, etc.), échouent.
Un EdgeCacheKeyset
peut contenir plusieurs clés pour autoriser la clé
la rotation des clés. Les requêtes valides signées avec l'une des clés listées 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 page Effectuer une rotation
secrets.
Lorsque signedRequestMode
est défini sur REQUIRE_SIGNATURES
ou REQUIRE_TOKENS
,
Media CDN valide les succès et les défauts de cache (miss). Cela inclut tous les
les requêtes à l'origine.
Voici un exemple de configuration Media CDN qui applique les requêtes signées sur une route PathMatcher donnée :
gcloud edge-cache services describe prod-media-serviceRésultat:
... routeAction: cdnPolicy: cacheMode: CACHE_ALL_STATIC signedRequestMode: REQUIRE_SIGNATURES signedRequestKeyset: prod-vod-keyset
Pour plus d'informations sur la création de jetons pour des requêtes signées, consultez la section Générer les jetons.
Pour désactiver la signature des requêtes, vous pouvez définir signedRequestMode
sur DISABLED
et supprimez 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 avec correspondance dispose d'un
signature. L'absence de signature est considérée comme une signature non valide pour ces
routes.
Pour éviter les cas où la signature est mal configurée et lorsqu'un utilisateur tente d'accéder directement à votre origine, nous vous recommandons vérifier que les requêtes sont également signées à l'origine. Une défense en profondeur de la protection du contenu permet d'éviter les accès et les téléchargements non autorisés de vos contenus payants et sous licence.
Pour les méthodes de signature basées sur l'URL, où la signature fait partie de la requête
ou intégrées en tant que composant de chemin d'URL, la signature et les attributs
sont supprimés de l'URL avant que la demande ne soit envoyée au
origine. Cela permet d'éviter que la signature ne provoque des problèmes de routage lorsque le
l'origine traite la requête. Pour valider ces requêtes, vous pouvez inspecter
En-tête de requête x-client-request-url
, qui inclut l'original (signé)
l'URL de requête du client avant la suppression
des composants signés.
Pour valider les requêtes à l'origine, utilisez le même code de validation dans le cadre vos points de terminaison pour la signature de vos requêtes, ce qui permet également de limiter la non-concordance des clés liés à la rotation des clés.
Rotation des clés
Nous vous recommandons d'alterner ou mettre à jour les secrets utilisés par Media CDN régulièrement. Nous recommandons d'alterner les clés toutes les 30 à 60 jours, mais ce n'est pas strictement obligatoire.
Étape suivante
Découvrez comment activer Media CDN et y accéder journaux, y compris comment les filtrer et les interroger, consultez Journalisation.
Pour configurer Media CDN et bucket Cloud Storage privé, consultez Connectivité et blindage de l'origine.