Configurer l'authentification d'origine privée

Cette page présente l'authentification d'origine privée et explique comment l'utiliser avec Cloud CDN.

L'authentification d'origine privée permet à Cloud CDN d'accéder à long terme à un bucket Amazon S3 privé ou à un objet compatible. L'utilisation d'origines privées empêche les clients de contourner Cloud CDN et d'accéder directement à votre origine.

Cette fonctionnalité est compatible avec Cloud CDN avec un équilibreur de charge HTTP(S) externe global ou un équilibreur de charge HTTP(S) externe global (classique).

L'authentification d'origine privée est destinée aux clients, tandis que les URL signées et les cookies signés sont côté client. Vous pouvez activer les deux pour le même contenu. L'authentification d'origine privée limite l'accès à vos origines et contenus en dehors du CDN. Les URL signées et les cookies contrôlent les utilisateurs autorisés à accéder à Cloud CDN.

Avant de commencer

Avant d'utiliser l'authentification d'origine privée, procédez comme suit:

  • Obtenez la clé d'accès et l'ID de clé d'accès de votre bucket Amazon S3 ou d'un autre magasin d'objets compatible. Pour connaître la procédure détaillée pour Amazon S3, consultez la page Accéder à AWS à l'aide de vos identifiants AWS: accès automatisé.

  • Si votre magasin d'objets attend une valeur particulière pour l'en-tête Host de la requête HTTP, assurez-vous qu'elle est configurée dans le service de backend. Si vous ne configurez pas d'en-tête de requête personnalisé, le service de backend conserve l'en-tête Host que le client a utilisé pour se connecter à l'équilibreur de charge HTTP(S) externe. Pour connaître la procédure à suivre, consultez la page 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
    

Pour en savoir plus, consultez Authentifier du contenu.

Configurer l'authentification d'origine privée

Pour configurer l'authentification d'origine privée pour les buckets Amazon S3 ou les datastores compatibles, procédez comme suit:

gcloud

  1. Exportez la configuration du backend pour votre origine privée dans un fichier .yaml à l'aide de la commande gcloud beta compute backend-services export:

    gcloud beta compute backend-services export BACKEND_SERVICE_NAME \
       [--destination=DESTINATION]
    

    Remplacez DESTINATION par le nom du fichier .yaml (par exemple, my-private-origin.yaml).

  2. Authentifiez vos requêtes de backend avec AWS Signature Version 4 en spécifiant ces options de configuration supplémentaires dans la section securitySettings de backendServices:

    securitySettings:
      awsV4Authentication:
        accessKeyId: ACCESS_KEY_ID
        accessKey: ACCESS_KEY
        accessKeyVersion: ACCESS_KEY_VERSION
        originRegion: REGION
    …]
    

    Remplacez les éléments suivants :

    • ACCESS_KEY_ID: identifiant unique de la clé d'accès.
    • ACCESS_KEY: clé d'accès utilisée pour l'authentification
    • ACCESS_KEY_VERSION (facultatif): nom unique que vous pouvez définir pour représenter la version de clé
    • REGION: région valide pour votre fournisseur de stockage, et non une région Google Cloud

    L'extrait de code suivant montre le contenu d'un exemple de fichier my-private-origin.yaml:

     name: shopping-cart-services
     backends:
       - description: cart-backend-1
         group: 'https://www.googleapis.com/compute/beta/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
    
  3. Pour mettre à jour votre origine privée, importez la configuration dans votre service de backend à l'aide de la commande gcloud beta compute backend-services import:

    gcloud beta compute backend-services import BACKEND_SERVICE_NAME \
       [--source=SOURCE]
    

    Remplacez SOURCE par le nom du fichier .yaml.

API

Pour authentifier vos requêtes backend avec la version 4 d'AWS Signature, spécifiez ces options de configuration supplémentaires dans la section securitySettings de backendServices.

Pour les services de backend, utilisez l'appel d'API Method: backendServices.insert ou Method: backendServices.update.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/beta/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: identifiant unique de la clé d'accès.
  • ACCESS_KEY: clé d'accès utilisée pour l'authentification
  • ACCESS_KEY_VERSION (facultatif): nom unique que vous pouvez définir pour représenter la version de clé
  • REGION: région valide pour votre fournisseur de stockage, et non une région Google Cloud

L'extrait de code suivant montre le contenu d'un exemple de corps de 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.

Étapes suivantes