Usar um bucket particular compatível com o Amazon S3 como origem

Esta página descreve como conectar o Media CDN a buckets particulares compatíveis com o Amazon S3 usando o Amazon Simple Storage Service (Amazon S3) e a AWS Signature Version 4. O Media CDN não é compatível com a versão 4a da assinatura da AWS.

A Media CDN oferece suporte à versão 4 do AWS Signature para autenticar solicitações de origem. Você pode usar esse recurso para conectar o Media CDN aos seus buckets particulares compatíveis com o Amazon S3 e garantir que seu conteúdo seja compartilhado apenas com o Media CDN. Também é possível ativar a autenticação do cliente para uma defesa em profundidade maior. Para mais informações, consulte Usar solicitações assinadas.

Antes de começar

Verifique se você tem os seguintes recursos:

Criar um agente de serviço para o Media CDN

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 Criar um agente de serviço de gatilho.

Armazenar chaves de acesso no Secret Manager

Siga estas etapas para criar um secret no Secret Manager.

Console

  1. No console do Google Cloud, acesse a página Secret Manager.

    Acessar o Secret Manager

  2. Na página Secret Manager, clique em Criar secret.

  3. Na seção Detalhes do segredo, faça o seguinte:

    1. No campo Nome, insira um nome para o secret, por exemplo, aws-access-key-id.

    2. Na seção Valor do secret, pule o campo Fazer upload de arquivo.

    3. No campo Valor do secret, insira a chave de acesso secreta da AWS.

  4. Pule as seções restantes.

  5. 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), é necessário fazer a autenticação com o escopo da plataforma em nuvem.

gcloud secrets create SECRET_NAME \
    --replication-policy="automatic" \
    --data-file="PATH_TO_AWS_SECRET_ACCESS_KEY"

Substitua:

  • SECRET_NAME: o nome do secreto, como aws-access-key-id
  • PATH_TO_AWS_SECRET_ACCESS_KEY: o caminho para o valor da chave de acesso secreta da AWS

Para saber como adicionar versões de secrets, consulte Adicionar uma versão de secret.

Conceder o papel de acesso do Secret Manager

Siga estas etapas para conceder o papel Acessador de secret do Secret Manager (roles/secretmanager.secretAccessor) à conta de serviço do Media CDN.

Console

  1. No console do Google Cloud, acesse a página Secret Manager.

    Acessar o Secret Manager

  2. Selecione o secret.
  3. Selecione Permissões e Conceder acesso. A caixa de diálogo Conceder acesso será exibida.
  4. Na seção Adicionar principais, insira a conta de serviço do Media CDN no campo Novos principais da seguinte maneira:
    service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

    Substitua PROJECT_NUMBER pelo número do seu projeto.

  5. Na seção Atribuir papéis, em Selecionar um papel, selecione Secret Manager e depois Acessador de secrets do Secret Manager.
  6. 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 projeto
  • SECRET_NAME: o nome do secret

Configurar o Media CDN para autenticar no bucket de origem externa

Console

  1. No console do Google Cloud, acesse a página Media CDN.

    Acesse Media CDN

  2. Clique na guia Origens.

  3. Clique no nome da origem que você quer configurar.

    A página Detalhes da origem do armazenamento em cache de borda é aberta.

  4. Clique no botão Editar.

  5. Em Endereço de origem, escolha Especificar um FQDN ou endereço IP e insira o FQDN ou endereço IP.

  6. Na seção Autenticação de origem particular, selecione Autentique a solicitação do Media CDN para essa origem com a versão 4 da assinatura da AWS.

  7. Especifique as seguintes informações:

    • ID da chave: o ID da chave de acesso da AWS com permissões de leitura para a origem
    • Referir um secret: o ID da chave de acesso no Secret Manager e a versão dela. Você pode selecionar um ID atual, 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
  8. Em Protocolo, selecione HTTPS.

  9. Clique em Atualizar origem.

gcloud

  1. 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.yaml
    

    Substitua:

    • SERVICE_NAME: o nome do serviço da Media CDN
    • FILENAME: o nome do arquivo YAML
  2. No Cloud Shell, use um editor de texto para editar o arquivo YAML.

  3. 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 definido para essa origem
    • S3_BUCKET_NAME: o nome do bucket do Amazon S3
    • S3_REGION: a região em que o bucket do Amazon S3 está localizado, como us-east-1
    • AWS_ACCESS_KEY_ID: o ID da chave de acesso da AWS com permissões de leitura para a origem.
    • PROJECT_NUMBER: o ID do seu projeto
    • SECRET_NAME: o ID da chave de acesso no Secret Manager
    • SECRET_VERSION: a versão do secret a ser usada
  4. Configure as substituições de host e de caminho para solicitações na origem. Por exemplo, para mapear todas as solicitações com um prefixo de caminho de /vod/, configure um hostRewrite que corresponda ao originAddress listado no arquivo YAML do EdgeCacheService. O exemplo de código abaixo mostra como usar hostRewrite:

    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
    

    Substitua SERVICE_NAME pelo nome do EdgeCacheService.

    Para mais informações, consulte Usar back-ends de armazenamento de terceiros.

  5. Salve o arquivo YAML.

  6. 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 no bucket externo, ele gera um cabeçalho de autorização HTTP para todas as solicitações. Todos os parâmetros de consulta são removidos do cálculo da assinatura e da solicitação para a origem.

A origem pode anexar outros cabeçalhos às respostas. Para remover os cabeçalhos de resposta antes de servir aos clientes, consulte Definir cabeçalhos personalizados. Para mais informações sobre como configurar origens, consulte Proteção e conectividade de origem.