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
Na Google Cloud consola, aceda à página Secret Manager.
Na página Secret Manager, clique em Criar segredo.
Na secção Detalhes do segredo, conclua o seguinte:
No campo Nome, introduza um nome para o segredo, por exemplo,
aws-access-key-id
.Na secção Valor secreto, ignore o campo Carregar ficheiro.
No campo Valor secreto, introduza a chave de acesso secreta da AWS.
Ignore as secções restantes.
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, comoaws-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
Na Google Cloud consola, aceda à página Secret Manager.
- Selecione o segredo.
- Selecione Autorizações e, de seguida, Conceder acesso. É apresentada a caixa de diálogo Conceder acesso.
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.- Na secção Atribuir funções, para Selecionar uma função, selecione Secret Manager e, de seguida, selecione Secret Manager Secret Accessor.
- 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 projetoSECRET_NAME
: o nome do seu segredo
Configure a RFC de conteúdo multimédia para autenticar o seu contentor de origem externo
Consola
Na Google Cloud consola, aceda à página RFC de multimédia.
Clique no separador Origens.
Clique no nome da origem que quer configurar.
É apresentada a página Detalhes da origem da cache na extremidade.
Clique no botão Editar.
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.
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.
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
Para Protocolo, selecione HTTPS.
Clique em Atualizar origem.
gcloud
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 CDNFILENAME
: o nome do ficheiro YAML
No Cloud Shell, use um editor de texto para editar o ficheiro YAML.
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 origemS3_BUCKET_NAME
: o nome do seu contentor do Amazon S3S3_REGION
: a região em que o seu contentor do Amazon S3 está localizado, comous-east-1
AWS_ACCESS_KEY_ID
: o ID da chave de acesso da AWS com autorizações de leitura para a sua origemPROJECT_NUMBER
: o número do seu projetoSECRET_NAME
: o ID da sua chave de acesso no Secret ManagerSECRET_VERSION
: a versão do secret a usar
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 umhostRewrite
que corresponda aooriginAddress
indicado no ficheiro YAML doEdgeCacheService
. O seguinte exemplo de código 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: 3600s
Substitua
SERVICE_NAME
pelo nome do seuEdgeCacheService
.Para mais informações, consulte o artigo Use back-ends de armazenamento de terceiros.
Guarde o ficheiro YAML.
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.