Use um contentor privado compatível com o Amazon S3 como origem

Esta página descreve como associar a RFC de multimédia a contentores privados compatíveis com o Amazon S3 através do Amazon Simple Storage Service (Amazon S3) e da versão 4 da assinatura da AWS. A rede CDN de multimédia não suporta a versão 4a da assinatura da AWS.

A RFC de conteúdo multimédia suporta a versão 4 da assinatura da AWS para autenticar pedidos de origem. Pode usar esta funcionalidade para ligar a RFC aos seus contentores privados compatíveis com o Amazon S3 para garantir que o seu conteúdo é partilhado apenas com a RFC. Também pode ativar a autenticação do cliente para uma maior defesa em profundidade. Para mais informações, consulte o artigo Use pedidos assinados.

Antes de começar

Verifique se tem os seguintes recursos:

  • Um contentor privado do Amazon S3 que segue as regras de nomenclatura.

  • Uma conta de utilizador do AWS IAM dedicada para aceder ao bucket do Amazon S3 privado anterior. Certifique-se de que o contentor concede a autorização s3:getObject à conta de utilizador do AWS IAM. Para mais informações sobre a configuração do acesso ao seu contentor do Amazon S3, consulte o artigo Gestão de identidades e acessos no Amazon S3.

  • O ID da chave de acesso da AWS e a chave de acesso secreta da AWS para a conta de utilizador do AWS IAM dedicada. Para mais informações, consulte o artigo Gerir chaves de acesso para utilizadores do IAM.

  • Se nunca usou o Secret Manager, configure o Secret Manager.

Crie um agente de serviço para a RFC de multimédia

Para criar um agente de serviço para a RFC de conteúdo multimé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 pelo ID do seu projeto.

Para mais informações, consulte o artigo Acione a criação de agentes de serviço.

Armazene chaves de acesso no Secret Manager

Siga estes passos para criar um segredo no Secret Manager.

Consola

  1. Na Google Cloud consola, aceda à página Secret Manager.

    Aceda ao Secret Manager

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

  3. Na secção Detalhes do segredo, conclua o seguinte:

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

    2. Na secção Valor secreto, ignore o campo Carregar ficheiro.

    3. No campo Valor secreto, introduza a chave de acesso secreta da AWS.

  4. Ignore as secções restantes.

  5. Clique em Criar segredo.

gcloud

Certifique-se de que está a usar a versão 402.0.0 ou posterior da CLI Google Cloud. No Compute Engine ou no Google Kubernetes Engine (GKE), tem de se autenticar com o âmbito cloud-platform.

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

Substitua o seguinte:

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

Para obter informações sobre como adicionar versões de segredos, consulte o artigo Adicione uma versão de segredo.

Conceda a função de acesso do Gestor Secreto

Siga estes passos para conceder a função Secret Accessor do Secret Manager (roles/secretmanager.secretAccessor) à conta de serviço do Media CDN.

Consola

  1. Na Google Cloud consola, aceda à página Secret Manager.

    Aceda ao Secret Manager

  2. Selecione o segredo.
  3. Selecione Autorizações e, de seguida, Conceder acesso. É apresentada a caixa de diálogo Conceder acesso.
  4. Na secção Adicionar membros, introduza a conta de serviço da RFC de multimédia no campo Novos membros da seguinte forma:
    service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

    Substitua PROJECT_NUMBER pelo seu número do projeto.

  5. Na secção Atribuir funções, para Selecionar uma função, selecione Secret Manager e, de seguida, selecione Secret Manager Secret Accessor.
  6. Clique em Guardar.

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 o seguinte:

  • PROJECT_NUMBER: o número do seu projeto
  • SECRET_NAME: o nome do seu segredo

Configure a RFC de conteúdo multimédia para autenticar o seu contentor de origem externo

Consola

  1. Na Google Cloud consola, aceda à página RFC de multimédia.

    Aceda à RFC de multimédia

  2. Clique no separador Origens.

  3. Clique no nome da origem que quer configurar.

    É apresentada a página Detalhes da origem da cache na extremidade.

  4. Clique no botão Editar.

  5. Para Endereço de origem, escolha Especificar um FQDN ou um endereço IP e, de seguida, introduza o FQDN ou o endereço IP.

  6. Na secção Autenticação de origem privada, selecione Autenticar o pedido da RFC de multimédia a esta 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 autorizações de leitura para a sua origem
    • Referencie um segredo: o ID da sua chave de acesso no Secret Manager e a respetiva versão. Pode selecionar um ID existente, introduzir um ID manualmente ou criar um novo ID e selecioná-lo.
    • Região: a região onde o seu contentor do Amazon S3 está localizado, como us-east-1
  8. Para Protocolo, selecione HTTPS.

  9. Clique em Atualizar origem.

gcloud

  1. Para exportar a configuração atual do seu serviço para um ficheiro YAML, execute o comando gcloud edge-cache services export:

    gcloud edge-cache services export SERVICE_NAME \
        --destination=FILENAME.yaml
    

    Substitua o seguinte:

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

  3. Atualize o ficheiro YAML para que 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 o seguinte:

    • ORIGIN_NAME: um nome que define para esta origem
    • S3_BUCKET_NAME: o nome do seu contentor do Amazon S3
    • S3_REGION: a região em que o seu contentor do Amazon S3 está localizado, como us-east-1
    • AWS_ACCESS_KEY_ID: o ID da chave de acesso da AWS com autorizações de leitura para a sua origem
    • PROJECT_NUMBER: o número do seu projeto
    • SECRET_NAME: o ID da sua chave de acesso no Secret Manager
    • SECRET_VERSION: a versão do secret a usar
  4. Configure reescritas de anfitrião e caminho para pedidos à sua origem. Por exemplo, para mapear todos os pedidos com um prefixo de caminho de /vod/, configure um hostRewrite que corresponda ao originAddress indicado no ficheiro YAML do EdgeCacheService. O seguinte exemplo de código 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 seu EdgeCacheService.

    Para mais informações, consulte o artigo Use back-ends de armazenamento de terceiros.

  5. Guarde o ficheiro YAML.

  6. Para atualizar a configuração, importe o ficheiro YAML.

    gcloud edge-cache origins import ORIGIN_NAME \
        --source=FILENAME.yaml
    

Depois de configurar a RFC de conteúdo multimédia para autenticar o seu contentor externo, a RFC de conteúdo multimédia gera um cabeçalho de autorização HTTP para todos os pedidos ao seu cabeçalho. Todos os parâmetros de consulta são removidos do cálculo da assinatura e do pedido à sua origem.

A sua origem pode anexar cabeçalhos adicionais às suas respostas. Para remover os cabeçalhos de resposta antes da publicação para os clientes, consulte o artigo Defina cabeçalhos personalizados. Para mais informações sobre a configuração de origens, consulte o artigo Conetividade e proteção de origens.