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

Nesta página, descrevemos como conectar o Media CDN ao buckets compatíveis com o Amazon S3 usando o Amazon Simple Storage Service (Amazon S3) e AWS Signature Versão 4. O Media CDN não é compatível com o AWS Signature versão 4a.

O Media CDN oferece suporte ao AWS Signature versão 4 para autenticar solicitações de origem. Use esse recurso para se conectar o Media CDN aos seus buckets particulares compatíveis com o Amazon S3 para garanta 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.

  • Uma conta de usuário dedicada do IAM da AWS para acessar a conta privada anterior do Amazon S3. Verifique se o bucket concede a permissão s3:getObject permissão para a conta de usuário do IAM da AWS. Para mais informações sobre como configurar o acesso ao bucket do Amazon S3, consulte Identity and Access Management no Amazon S3.

  • O ID da chave de acesso e a chave de acesso secreta da AWS para a conta de usuário dedicada do AWS IAM. Para mais informações, consulte Como gerenciar chaves de acesso para usuários do IAM.

  • Se você nunca usou o Secret Manager, configure Secret Manager

Criar um agente de serviço para o Media CDN

Para criar um agente de serviço para o Media CDN, 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 Criação de 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 do Secret Manager, clique em Criar secret.

  3. Na seção Detalhes do secret, 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 do arquivo.

    3. No campo Valor do secret, insira a chave de acesso do secret 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 posterior da Google Cloud CLI. No Compute Engine ou no Google Kubernetes Engine (GKE), é preciso autenticar com o escopo da plataforma de nuvem.

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

Substitua:

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

Para informações sobre como adicionar versões do secret, consulte Adicione uma versão do secret.

Conceder o papel de acesso ao Secret Manager

Siga estas etapas para conceder Papel de acessador de secrets do Secret Manager (roles/secretmanager.secretAccessor) para o serviço Media CDN do Compute Engine.

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. O A caixa de diálogo Permitir acesso será exibida.
  4. Na seção Adicionar participantes, insira o conta de serviço do Media CDN no No campo Novos principais, da seguinte forma:
    service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

    Substitua PROJECT_NUMBER pelo seu número do projeto.

  5. Na seção Atribuir funções, em Selecionar uma função, escolha Secret Manager e selecione Acesso de secret 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 autenticação 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 do Edge é aberta.

  4. Clique no botão Editar.

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

  6. Na seção Autenticação de origem particular, selecione Autenticar. 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 sua origem
    • Referenciar um secret: o ID da sua chave de acesso em Secret Manager e a versão dele. É possível selecionar um ID existente, inserir um manualmente ou crie um novo ID e selecione-o.
    .
    • Região: a região onde está o bucket do Amazon S3 localizado em, 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 de CDN de mídia
    • FILENAME: o nome do arquivo YAML.
  2. No Cloud Shell, use um editor de texto para alterar 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 isto. origem
    • S3_BUCKET_NAME: o nome do Bucket do Amazon S3
    • S3_REGION: a região em que o 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 sua chave de acesso em Secret Manager
    • SECRET_VERSION: a versão do secret a ser usada.
  4. Configure regravações de host e caminho para solicitações à sua origem. Para exemplo, para mapear todas as solicitações com um prefixo de caminho /vod/, configure um hostRewrite que corresponde ao originAddress listado no Arquivo YAML de EdgeCacheService. O exemplo de código a seguir 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 fazer a autenticação no servidor bucket, o Media CDN gera um cabeçalho de autorização HTTP para todos ao seu cabeçalho. todos os parâmetros de consulta são removidos da assinatura; cálculo e solicitação para sua origem.

Sua origem pode acrescentar cabeçalhos às suas respostas. Para remover o cabeçalhos de resposta antes de veicular para os clientes, consulte Definir cabeçalhos personalizados. Para mais informações sobre como configurar origens, consulte Conectividade e proteção de origem.