Cette page explique comment connecter Media CDN à des buckets compatibles Amazon S3 en utilisant Amazon Simple Storage Service (Amazon S3) et la version 4 de la signature AWS. Media CDN n'est pas compatible avec la version 4a d'AWS Signature.
Media CDN est compatible avec la version 4 d'AWS Signature pour authentifier les requêtes d'origine. Vous pouvez utiliser cette fonctionnalité pour connecter Media CDN à vos buckets privés compatibles Amazon S3 afin de vous assurer que votre contenu n'est partagé qu'avec Media CDN. Vous pouvez également activer l'authentification client pour une défense plus en profondeur. Pour en savoir plus, consultez la page Utiliser des requêtes signées.
Avant de commencer
Assurez-vous de disposer des ressources suivantes:
Un bucket Amazon S3 privé qui respecte les règles de dénomination.
Un compte utilisateur IAM AWS dédié pour accéder au bucket Amazon S3 privé précédent. Assurez-vous que le bucket accorde l'autorisation
s3:getObject
au compte utilisateur IAM AWS. Pour en savoir plus sur la configuration de l'accès à votre bucket Amazon S3, consultez la page Gestion de l'authentification et des accès dans Amazon S3.L'ID de clé d'accès AWS et la clé d'accès secrète AWS pour le compte utilisateur IAM AWS dédié. Pour en savoir plus, consultez la section Gérer les clés d'accès pour les utilisateurs IAM.
Si vous n'avez pas encore utilisé Secret Manager, configurez Secret Manager.
Créer un agent de service pour Media CDN
Pour créer un agent de service pour Media CDN, utilisez la commande gcloud beta services identity create
.
gcloud
gcloud beta services identity create \ --project PROJECT_ID \ --service=networkservices.googleapis.com
Remplacez PROJECT_ID
par l'ID du projet.
Pour en savoir plus, consultez Déclencher la création d'un agent de service.
Stocker les clés d'accès dans Secret Manager
Suivez ces étapes pour créer un secret dans Secret Manager.
Console
Dans la console Google Cloud, accédez à la page Secret Manager.
Sur la page Secret Manager, cliquez sur Créer un secret.
Dans la section Détails du secret, procédez comme suit:
Dans le champ Nom, saisissez un nom pour le secret (par exemple,
aws-access-key-id
).Dans la section Valeur du secret, ignorez le champ Importer un fichier.
Dans le champ Valeur du secret, saisissez la clé d'accès secrète AWS.
Ignorez les sections restantes.
Cliquez sur Créer un secret.
gcloud
Assurez-vous d'utiliser la version 402.0.0 ou ultérieure de la Google Cloud CLI. Sur Compute Engine ou Google Kubernetes Engine (GKE), vous devez vous authentifier avec le champ d'application cloud-platform.
gcloud secrets create SECRET_NAME \ --replication-policy="automatic" \ --data-file="PATH_TO_AWS_SECRET_ACCESS_KEY"
Remplacez les éléments suivants :
SECRET_NAME
: nom de votre secret, par exempleaws-access-key-id
PATH_TO_AWS_SECRET_ACCESS_KEY
: chemin d'accès à la valeur de votre clé d'accès secrète AWS
Pour en savoir plus sur l'ajout de versions de secret, consultez la section Ajouter une version de secret.
Attribuer le rôle "Accès" de Secret Manager
Suivez ces étapes pour attribuer le rôle Accesseur de secrets Secret Manager (roles/secretmanager.secretAccessor
) au compte de service Media CDN.
Console
Dans la console Google Cloud, accédez à la page Secret Manager.
- Sélectionnez le secret.
- Sélectionnez Autorisations, puis Accorder l'accès. La boîte de dialogue Accorder l'accès s'affiche.
Dans la section Ajouter des comptes principaux, saisissez le compte de service Media CDN dans le champ Nouveaux comptes principaux comme suit:
service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com
Remplacez
PROJECT_NUMBER
par votre numéro de projet.- Dans la section Attribuer des rôles, sous Sélectionner un rôle, sélectionnez Gestionnaire de secrets, puis Accesseur de secrets Secret Manager.
- Cliquez sur Enregistrer.
gcloud
gcloud secrets add-iam-policy-binding \ projects/PROJECT_NUMBER/secrets/SECRET_NAME \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor"
Remplacez les éléments suivants :
PROJECT_NUMBER
: votre numéro de projetSECRET_NAME
: nom de votre secret
Configurer Media CDN pour qu'il s'authentifie auprès de votre bucket d'origine externe
Console
Dans la console Google Cloud, accédez à la page Media CDN.
Cliquez sur l'onglet Origines.
Cliquez sur le nom de l'origine que vous souhaitez configurer.
La page Détails de l'origine de la mise en cache périphérique s'ouvre.
Cliquez sur le bouton Modifier.
Sous Adresse d'origine, sélectionnez Spécifier un nom de domaine complet ou une adresse IP, puis saisissez le nom de domaine complet ou l'adresse IP.
Dans la section Authentification de l'origine privée, sélectionnez Authentifier la requête de Media CDN auprès de cette origine avec la version 4 d'AWS Signature.
Spécifiez les informations suivantes :
- ID de clé: votre ID de clé d'accès AWS avec des autorisations de lecture sur votre origine
- Référencer un secret: ID de votre clé d'accès dans Secret Manager et sa version. Vous pouvez sélectionner un identifiant existant, saisir un identifiant manuellement ou en créer un et le sélectionner.
- Région: région dans laquelle se trouve votre bucket Amazon S3, par exemple
us-east-1
.
Dans le champ Protocole, sélectionnez HTTPS.
Cliquez sur Mettre à jour l'origine.
gcloud
Pour exporter la configuration actuelle de votre service vers un fichier YAML, exécutez la commande
gcloud edge-cache services export
:gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yaml
Remplacez les éléments suivants :
SERVICE_NAME
: nom du service Media CDNFILENAME
: nom du fichier YAML
Dans Cloud Shell, utilisez un éditeur de texte pour modifier le fichier YAML.
Modifiez le fichier YAML pour qu'il contienne les lignes suivantes:
name: ORIGIN_NAME originAddress: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com" protocol: HTTPS awsV4Authentication: accessKeyId: "AWS_ACCESS_KEY_ID" secretAccessKeyVersion: "projects/PROJECT_NUMBER/secrets/SECRET_NAME/versions/SECRET_VERSION" originRegion: "S3_REGION"
Remplacez les éléments suivants :
ORIGIN_NAME
: nom que vous avez défini pour cette origineS3_BUCKET_NAME
: nom de votre bucket Amazon S3S3_REGION
: région dans laquelle se trouve votre bucket Amazon S3, par exempleus-east-1
AWS_ACCESS_KEY_ID
: votre ID de clé d'accès AWS avec des autorisations de lecture pour votre originePROJECT_NUMBER
: votre numéro de projetSECRET_NAME
: ID de votre clé d'accès dans Secret Manager.SECRET_VERSION
: version du secret à utiliser
Configurez les réécritures d'hôte et de chemin d'accès pour les requêtes adressées à votre origine. Par exemple, pour mapper toutes les requêtes avec le préfixe de chemin d'accès
/vod/
, configurez un élémenthostRewrite
correspondant à l'élémentoriginAddress
répertorié dans le fichier YAML de votreEdgeCacheService
. L'exemple de code suivant montre comment utiliserhostRewrite
:name: SERVICE_NAME routeRules: - priority: 1 - description: ROUTE_DESCRIPTION origin: ORIGIN_NAME matchRules: - prefixMatch: "/vod/" routeAction: urlRewrite: hostRewrite: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com" pathPrefixRewrite: "/" cdnPolicy: cacheMode: CACHE_ALL_STATIC defaultTtl: 3600s
Remplacez
SERVICE_NAME
par le nom de votreEdgeCacheService
.Pour en savoir plus, consultez la section Utiliser des backends de stockage tiers.
Enregistrez le fichier YAML.
Pour mettre à jour votre configuration, importez le fichier YAML.
gcloud edge-cache origins import ORIGIN_NAME \ --source=FILENAME.yaml
Une fois que vous avez configuré Media CDN pour qu'il s'authentifie auprès de votre bucket externe, Media CDN génère un en-tête d'autorisation HTTP pour toutes les requêtes envoyées à votre en-tête. Tous les paramètres de requête sont supprimés du calcul de la signature et de la requête vers votre origine.
Votre origine peut ajouter des en-têtes supplémentaires à vos réponses. Pour supprimer les en-têtes de réponse avant de les diffuser aux clients, consultez la section Définir des en-têtes personnalisés. Pour en savoir plus sur la configuration des origines, consultez la section Connectivité et protection des origines.