Nesta página, descrevemos como conectar a Media CDN a buckets privados compatíveis com o Amazon S3 usando o Amazon Simple Storage Service (Amazon S3) e a versão 4 da assinatura da AWS. O Media CDN não é compatível com a versão 4a da assinatura da AWS.
A Media CDN aceita a versão 4 da assinatura da AWS para autenticar solicitações de origem. Use esse recurso para conectar o Media CDN aos seus buckets privados compatíveis com o Amazon S3 e garantir que o conteúdo seja compartilhado apenas com o Media CDN. Também é possível ativar a autenticação do cliente para aumentar a defesa em profundidade. Para mais informações, consulte Usar solicitações assinadas.
Antes de começar
Verifique se você tem os seguintes recursos:
Um bucket privado do Amazon S3 que segue as regras de nomenclatura.
Uma conta de usuário do IAM da AWS dedicada para acessar o bucket privado do Amazon S3 acima. Verifique se o bucket concede a permissão
s3:getObjectà conta de usuário do IAM da AWS. Para mais informações sobre como configurar o acesso ao bucket do Amazon S3, consulte Gerenciamento de identidade e acesso no Amazon S3.O ID da chave de acesso da AWS e a chave de acesso secreta da AWS para a conta de usuário dedicada do IAM da AWS. Para mais informações, consulte Como gerenciar chaves de acesso para usuários do IAM.
Se você nunca usou o Secret Manager, configure o Secret Manager.
Criar um agente de serviço para a CDN de mídia
Para criar um agente de serviço para a CDN de mídia, use o
comando gcloud beta services identity create.
gcloud
gcloud beta services identity create \
--project PROJECT_ID \
--service=networkservices.googleapis.com
Substitua PROJECT_ID pela ID do seu projeto.
Para mais informações, consulte Acionar a criação de um agente de serviço.
Armazenar chaves de acesso no Secret Manager
Siga estas etapas para criar um secret no Secret Manager.
Console
No console do Google Cloud , acesse a página Secret Manager.
Na página Secret Manager, clique em Criar secret.
Na seção Detalhes do secret, faça o seguinte:
No campo Nome, insira um nome para o secret, por exemplo,
aws-access-key-id.Na seção Valor do secret, pule o campo Fazer upload do arquivo.
No campo Valor do secret, insira a chave de acesso secreta da AWS.
Pule as seções restantes.
Clique em Criar secret.
gcloud
Verifique se você está usando a versão 402.0.0 ou mais recente da Google Cloud CLI. No Compute Engine ou no Google Kubernetes Engine (GKE), você precisa fazer a autenticação com o escopo do cloud-platform.
gcloud secrets create SECRET_NAME \
--replication-policy="automatic" \
--data-file="PATH_TO_AWS_SECRET_ACCESS_KEY"
Substitua:
SECRET_NAME: o nome do secret, comoaws-access-key-idPATH_TO_AWS_SECRET_ACCESS_KEY: o caminho para o valor da chave de acesso secreta da AWS
Para informações sobre como adicionar versões do secret, consulte Adicionar uma versão do secret.
Conceder o papel de acesso do Secret Manager
Siga estas etapas para conceder o
papel de acessador de secrets do Secret Manager
(roles/secretmanager.secretAccessor) à conta de serviço
da Media CDN.
Console
No console do Google Cloud , acesse a página Secret Manager.
- Selecione o secret.
- Selecione Permissões e clique em Conceder acesso. A caixa de diálogo Conceder acesso será exibida.
Na seção Adicionar principais, insira a conta de serviço da Media CDN no campo Novos principais da seguinte forma:
service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.comSubstitua
PROJECT_NUMBERpelo número do seu projeto.- Na seção Atribuir papéis, em Selecionar um papel, escolha Secret Manager e depois Acessador de secrets do Secret Manager.
- Clique em Salvar.
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"
Substitua:
PROJECT_NUMBER: o ID do seu projetoSECRET_NAME: o nome do secret
Configurar o Media CDN para autenticar no bucket de origem externa
Console
No console do Google Cloud , acesse a página Media CDN.
Clique na guia Origens.
Clique no nome da origem a ser configurada.
A página Detalhes da origem do armazenamento em cache de borda é aberta.
Clique no botão Editar.
Em Endereço de origem, escolha Especificar um FQDN ou endereço IP e insira o FQDN ou endereço IP.
Na seção Autenticação de origem particular, selecione Autenticar a solicitação do Media CDN para essa origem com a versão 4 da assinatura da AWS.
Especifique as seguintes informações:
- ID da chave: seu ID da chave de acesso da AWS com permissões de leitura para sua origem
- Referenciar um secret: o ID da sua chave de acesso no Secret Manager e a versão dele. É possível selecionar um ID existente, inserir um ID manualmente ou criar e selecionar um novo.
- Região: a região em que o bucket do Amazon S3 está localizado, como
us-east-1
Em Protocolo, selecione HTTPS.
Clique em Atualizar origem.
gcloud
Para exportar a configuração atual do serviço para um arquivo YAML, execute o comando
gcloud edge-cache services export:gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yamlSubstitua:
SERVICE_NAME: o nome do serviço da Media CDNFILENAME: o nome do arquivo YAML
No Cloud Shell, use um editor de texto para editar o arquivo YAML.
Atualize o arquivo YAML para que ele tenha as seguintes linhas:
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"Substitua:
ORIGIN_NAME: um nome que você definiu para essa origem.S3_BUCKET_NAME: o nome do seu bucket do Amazon S3S3_REGION: a região em que seu bucket do Amazon S3 está localizado, comous-east-1AWS_ACCESS_KEY_ID: seu ID da chave de acesso da AWS com permissões de leitura para sua origemPROJECT_NUMBER: o ID do seu projetoSECRET_NAME: o ID da sua chave de acesso no Secret Manager.SECRET_VERSION: a versão do secret a ser usada
Configure substituições de host e caminho para solicitações à sua origem. Por exemplo, para mapear todas as solicitações com um prefixo de caminho
/vod/, configure umhostRewriteque corresponda aooriginAddresslistado no arquivo YAML doEdgeCacheService. O exemplo de código a seguir mostra como usarhostRewrite: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: 3600sSubstitua
SERVICE_NAMEpelo nome doEdgeCacheService.Para mais informações, consulte Usar back-ends de armazenamento de terceiros.
Salve o arquivo YAML.
Para atualizar a configuração, importe o arquivo YAML.
gcloud edge-cache origins import ORIGIN_NAME \ --source=FILENAME.yaml
Depois de configurar o Media CDN para autenticar seu bucket externo, ele vai gerar um cabeçalho de autorização HTTP para todas as solicitações ao cabeçalho. Todos os parâmetros de consulta são removidos do cálculo da assinatura e da solicitação à sua origem.
Sua origem pode anexar outros cabeçalhos às respostas. Para remover os cabeçalhos de resposta antes de atender aos clientes, consulte Definir cabeçalhos personalizados. Para mais informações sobre como configurar origens, consulte Conectividade e proteção de origem.