Cette page présente l'authentification de l'origine privée et fournit des instructions pour son utilisation avec Cloud CDN.
L'authentification de l'origine privée donne à Cloud CDN un accès aux ressources à long terme vers des buckets Amazon S3 privés ou d'autres magasins d'objets compatibles. En utilisant privées empêche les clients de contourner Cloud CDN et accéder directement à votre origine.
Cette fonctionnalité est compatible avec Cloud CDN avec un équilibreur de charge d'application externe global ou un équilibreur de charge d'application classique.
L'authentification de l'origine privée concerne l'origine, tandis que URL signées et les cookies signés sont destinés aux clients. Toi peuvent activer les deux pour le même contenu. Limites d'authentification de l'origine privée un accès non CDN à vos origines et votre contenu. Contrôle des URL et cookies signés les utilisateurs pouvant accéder à Cloud CDN.
Avant de commencer
Créer une clé HMAC (Hash-based Message Authentication Code) pour s'authentifier et les associer à un compte de service. Notez l'accès clé et secret.
Consultez Accéder à AWS à l'aide de vos identifiants AWS: Accès programmatique dans la documentation AWS.
Configurez un équilibreur de charge avec le backend externe.
Si votre magasin d'objets attend une valeur particulière pour le paramètre
Host
de la requête HTTP assurez-vous qu'il est configuré dans le service de backend. Si vous ne configuré un en-tête de requête personnalisé, le service de backend conserve leHost
que le client a utilisé pour se connecter à l'équilibreur de charge d'application externe.Pour connaître les étapes de configuration, consultez Utiliser des en-têtes de requêtes personnalisés Pour obtenir un exemple spécifique, consultez Configurer un équilibreur de charge avec un backend externe
Si nécessaire, installez la dernière version de Google Cloud CLI :
gcloud components update
Configurer l'authentification pour les origines privées
Pour configurer l'authentification de l'origine privée, procédez comme suit:
gcloud
Exportez la configuration backend de votre origine privée dans un fichier YAML à l'aide de
gcloud compute backend-services export
:gcloud compute backend-services export BACKEND_SERVICE_NAME \ [--destination=DESTINATION]
Remplacez
DESTINATION
par le nom du fichier YAML (par exemple,my-private-origin.yaml
).Pour authentifier vos requêtes de backend à l'aide de la clé HMAC, spécifiez ces options de configuration supplémentaires dans Section
securitySettings
debackendServices
:securitySettings: awsV4Authentication: accessKeyId: ACCESS_KEY_ID accessKey: ACCESS_KEY [accessKeyVersion: ACCESS_KEY_VERSION] originRegion: REGION …]
Remplacez les éléments suivants :
ACCESS_KEY_ID
: ID de la clé d'accès HMACACCESS_KEY
: clé d'accès HMACACCESS_KEY_VERSION
(facultatif): nom unique que vous pouvez définir pour représenter la version de cléREGION
: région valide pour votre stockage un fournisseur de services agréé. Pour Amazon S3, la valeur n'est pas Google Cloud dans la même région.
L'extrait de code suivant montre le contenu d'un exemple Fichier
my-private-origin.yaml
: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-2
Pour mettre à jour votre origine privée, importez la configuration dans votre service de backend à l'aide du Commande
gcloud compute backend-services import
:gcloud compute backend-services import BACKEND_SERVICE_NAME \ [--source=SOURCE]
Remplacez
SOURCE
par le nom du fichier YAML.
API
Pour authentifier vos requêtes de backend à l'aide de la clé HMAC, spécifiez ces
des options de configuration supplémentaires dans la section securitySettings
de
backendServices
Utilisez les
Method: backendServices.insert
ou
Method: backendServices.update
d'un appel d'API.
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
Ajoutez l'extrait suivant au corps de la requête JSON :
securitySettings: { awsV4Authentication: { accessKeyId: ACCESS_KEY_ID, accessKey: ACCESS_KEY, [accessKeyVersion: ACCESS_KEY_VERSION], originRegion: REGION } }
Remplacez les éléments suivants :
ACCESS_KEY_ID
: ID de la clé d'accès HMACACCESS_KEY
: clé d'accès HMACACCESS_KEY_VERSION
(facultatif): nom unique qui que vous pouvez définir pour représenter la version de cléREGION
: région valide pour votre stockage un fournisseur de services agréé. Pour Amazon S3, la valeur n'est pas Google Cloud dans la même région.
L'extrait de code suivant montre le contenu d'un exemple Corps de la requête JSON:
securitySettings: { awsV4Authentication: { accessKeyId: "AKIDEXAMPLE", accessKey: "c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9", accessKeyVersion: "prod-access-key-v1.2", originRegion: "us-east-2" } }
Le nom du service est automatiquement défini sur s3
pour créer la signature.
Une fois ces configurations en place, Cloud CDN génère un
En-tête d'autorisation HTTP pour toutes les requêtes adressées à votre origine.
Mettre en cache les réponses authentifiées en mode privé
Vous voudrez peut-être vous assurer que le contenu authentifié de manière privée est mis en cache par Cloud CDN.
Pour ce faire, définissez le mode cache à Forcer la mise en cache de l'ensemble du contenu et spécifier une valeur TTL, de sorte que tout le contenu diffusé depuis l'origine est mise en cache.
Sinon, si vous ne voulez pas forcer
la mise en cache de tout le contenu de la même manière,
Définissez le mode de cache sur Utiliser le paramètre d'origine basé sur les en-têtes Cache-Control.
ou mettre en cache le contenu statique et vous assurer que l'en-tête Cache-Control
est
correctement défini sur le contenu diffusé depuis votre origine.