Media CDN utilise des paires de clés cryptographiques lors de la signature des requêtes. Media CDN utilise une collection de clés pour stocker les paires de clés activement utilisées pour signer les requêtes. Vous pouvez avoir jusqu'à trois clés publiques et trois clés partagées de validation, pour un total de six clés par collection de clés.
Vous pouvez également supprimer les clés inutilisées d'une collection de clés. L'ajout et la suppression de clés sont généralement appelés rotation des secrets. La rotation des secrets vous permet d'effectuer les opérations suivantes :
- Ajouter des secrets à une collection de clés en toute sécurité.
- Générer des jetons avec le secret correspondant.
Supprimer les anciens secrets après l'expiration du jeton le plus ancien.
Par exemple, supposons que vous définissiez vos jetons de courte durée pour qu'ils expirent au bout d'une heure. Vous supprimez ensuite le secret le plus ancien utilisé pour les jetons de courte durée, une fois que de nouvelles requêtes sont diffusées aux utilisateurs pendant une ou plusieurs heures.
Avant de supprimer un secret inutilisé, vérifiez qu'il n'est pas référencé ou récupéré pour signer des requêtes utilisateur sur votre serveur d'applications. La suppression prématurée d'un secret d'une collection de clés empêche Media CDN de valider les requêtes associées à ce secret. Une réponse HTTP 403
Forbidden
est envoyée aux utilisateurs concernés.
Pour optimiser les performances, la fiabilité et le coût des accès simultanés à Secret Manager, vos clés secrètes de validation partagées sont mises en cache pendant une heure au maximum. La mise en cache des secrets peut entraîner le prolongement d'accès aux jetons après la suppression d'un secret pendant une heure au maximum.
Il est recommandé d'appliquer une rotation régulière des clés.
Limitations connues
Media CDN rejette les requêtes signées avec les signatures symétriques utilisées par Cloud CDN avec une réponse HTTP 403
.
Media CDN est actuellement compatible avec les clés symétriques pour les requêtes utilisant le format de jeton et les clés référencées par Media CDN.
Les clés asymétriques doivent être générées en tant que paires Ed25519, avec une clé privée de 512 bits (64 octets) et une clé publique de 256 bits (32 octets). La bibliothèque Tink permet de générer, de signer et de valider des signatures Ed25519 avec C++, Go, Java et Objective-C.
Les clés asymétriques doivent présenter les caractéristiques suivantes :
Encodage en base64 avec une longueur de 44 octets (avec remplissage) ou 43 octets (sans remplissage). Les formes avec et sans remplissage de base64 sont acceptées.
La clé publique doit être encodée au format base64 URL-safe. La clé privée peut être encodée au format base64 standard.
La clé doit disposer d'une clé privée correspondante.