Cette page explique comment connecter Media CDN à des buckets compatibles S3 en utilisant le "Simple Storage Service" d'Amazon Web Services (AWS) et la version 4 de S3 Signature.
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 S3, ce qui vous garantit 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
Vérifiez que vous disposez des éléments suivants :
Un bucket S3 privé.
Un compte utilisateur AWS IAM (Identity and Access Management) dédié pour accéder au bucket 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 S3, consultez la page Gestion de l'authentification et des accès dans Amazon S3.L'ID de clé d'accès et l'ID de clé d'accès secrète pour le compte utilisateur IAM AWS dédié. Pour en savoir plus, consultez la page Gérer les clés d'accès pour les utilisateurs IAM.
Si vous n'avez pas encore utilisé Secret Manager, configurez Secret Manager.
Stocker les clés d'accès dans Secret Manager
Ajoutez la version du secret pour le compte utilisateur AWS dédié dans Secret Manager.
Attribuez le rôle d'accès Secret Manager (
roles/secretmanager.secretAccessor
) au compte de service Media CDN :gcloud secrets add-iam-policy-binding \ projects/PROJECT_NUMBER/secrets/ACCESS_KEY_ID \ --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 projet.ACCESS_KEY_ID
: ID de la clé d'accès à partager.
Configurer Media CDN pour qu'il s'authentifie auprès de votre bucket d'origine externe
Créez un fichier YAML pour configurer votre origine externe,
FILENAME
.yaml.Remplacez
FILENAME
.yaml par le nom de fichier de votre choix.Saisissez le contenu suivant dans le fichier :
name: ORIGIN_NAME originAddress: "S3_BUCKET_NAME.s3.S3_REGION.amazonaws.com/OBJECT_PATH" protocol: HTTPS awsV4Authentication: accessKeyId: "ACCESS_KEY_NAME" secretAccessKeyVersion: "projects/PROJECT_NUMBER/secrets/ACCESS_KEY_ID/versions/SECRET_ACCESS_KEY_VERSION" originRegion: "S3_REGION"
Remplacez les éléments suivants :
ORIGIN_NAME
: nom que vous avez défini pour cette origine.S3_BUCKET_NAME
: nom de votre bucket S3.S3_REGION
: région où se trouve votre bucket S3.OBJECT_PATH
: chemin d'accès à vos objets.ACCESS_KEY_NAME
: nom de votre clé d'accès dans AWS Secrets Manager.ACCESS_KEY_ID
: ID de la clé d'accès dans Secret Manager.SECRET_ACCESS_KEY_VERSION
: version de clé d'accès secrète à 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 plus d'informations, consultez la page Utiliser des backends de stockage tiers.
Pour créer ou mettre à jour votre configuration, importez le fichier YAML que vous avez créé :
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 page Connectivité et protection des origines.