Se a origem do seu nome de domínio acelerado for um bucket privado do Object Storage Service (OSS), recomendamos ativar o recurso Alibaba Cloud OSS Private Bucket Access. Isso fornece controle de acesso para evitar roubo de tráfego e permite que o CDNDCDN acelere recursos do seu bucket privado.
Funcionamento e benefícios
Funcionamento: Após ativar este recurso, quando o CDN ou DCDN envia uma solicitação de busca de origem para seu bucket privado do OSS, eles adicionam automaticamente um campo
Authorizationao cabeçalho da solicitação. O valor desse campo é uma assinatura válida gerada a partir das informações de identidade autorizada, como um token temporário STS ou um AccessKey. O OSS usa essa assinatura para autenticar a solicitação.Acesso seguro: Ao conceder permissões limitadas e somente leitura ao CDN ou DCDN, você garante a legitimidade das solicitações de busca de origem e evita os riscos de segurança de tornar um bucket privado público.
Otimização de custos: O cache do CDN atende às solicitações dos usuários finais, o que é mais econômico do que atendê-las diretamente do OSS. O tráfego de busca de origem do CDN ou DCDN para o OSS é faturado como tráfego de busca de origem do CDN com preço reduzido, e não como tráfego de saída pela Internet do OSS, que é mais caro. Isso reduz seus custos gerais. Para obter mais informações, consulte Billing of CDN-accelerated OSS resources.
Procedimento
A configuração envolve duas etapas: primeiro, conceda autorização única para sua conta e, em seguida, ative o recurso para um nome de domínio acelerado específico.
-
Autorize o CDN ou DCDN a acessar o OSS. Antes de ativar este recurso para qualquer nome de domínio em sua conta, conceda permissão ao CDN ou DCDN para acessar o OSS. Esta é uma operação única no nível da conta. Se não houver solicitação para conceder autorização, pule para a próxima etapa.
(Recomendado) Autorização com um clique
Acesse o CDN console.
No painel de navegação à esquerda, clique em Domain Names.
Na página Domain Names, localize o nome de domínio que deseja gerenciar e clique em Manage na coluna Actions.
No painel de navegação à esquerda da página de configuração do nome de domínio, clique em Origin Fetch.
-
Na seção Alibaba Cloud OSS Private Bucket Access, clique em Authorize. Na caixa de diálogo de confirmação exibida, clique em Authorize.
A linha Role Authorization indica que o service CDN não está autorizado a acessar seus buckets do OSS. O interruptor Status está desativado por padrão.
(Alternativa) Autorização manual com RAM
Acesse o RAM console.
No painel de navegação à esquerda, escolha Permissions> Policies.
Na página Policies, clique em Create Policy.
Na aba Script Editor, insira o seguinte conteúdo de política:
Clique em OK. Na página Create Policy, insira as seguintes informações e clique em OK.
Policy Name: AliyunCDNAccessingPrivateOSSRolePolicy
Remarks: Uma política de autorização para a função que permite ao CDN ou DCDN realizar busca de origem em um bucket privado do OSS. Esta política concede permissões somente leitura ao OSS.
{ "Version": "1", "Statement": [ { "Action": [ "oss:List*", "oss:Get*" ], "Resource": "*", "Effect": "Allow" } ] }No painel de navegação à esquerda, escolha Identities> Roles.
Na página Roles, clique em Create Role.
Defina Trusted Principal Type como Cloud Account, selecione Current Cloud Account como Trusted Principal Name e clique em OK.
Na etapa Create Role, insira as seguintes informações.
Role Name: AliyunCDNAccessingPrivateOSSRole
Após criar a função, localize e clique em AliyunCDNAccessingPrivateOSSRole na lista da página Roles para abrir a página de detalhes da função.
Na aba Trust Policy, clique em Edit Trust Policy, insira o seguinte conteúdo e clique em OK.
Mude para a aba Permissions. Na aba Authorize, clique em Add Authorization.
Resource Scope: Account Level
Principal: Selecione a função AliyunCDNAccessingPrivateOSSRole que você criou.
Policy: Selecione Custom Policy, escolha a política AliyunCDNAccessingPrivateOSSRolePolicy que você criou e clique em Confirm New Authorization.
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "cdn.aliyuncs.com" ] } } ], "Version": "1" }Após clicar em Confirm New Authorization, retorne à página Origin Fetch no console do CDNDCDN. Você verá que o recurso Alibaba Cloud OSS Private Bucket Access agora está autorizado.
-
Ative o Alibaba Cloud OSS Private Bucket Access e configure o tipo de origem.
Na seção Alibaba Cloud OSS Private Bucket Access, ative o interruptor.
-
Na caixa de diálogo Alibaba Cloud OSS Private Bucket Access exibida, selecione um tipo de origem e clique em OK.
Tipo de origem
Descrição
Bucket in the Same Account
(Recomendado) Utilize esta opção quando o service CDN ou DCDN e o bucket do OSS pertencerem à mesma conta Alibaba Cloud. O sistema usa um token temporário STS para autenticação, o que simplifica a configuração, elimina o gerenciamento de chaves e melhora a segurança.
Também é possível usar um token temporário STS para busca de origem entre contas. Para obter mais informações, consulte Use STS to access a private OSS bucket in a different account.
Bucket Across Accounts or in the Same Account
Mais indicado para quando o service CDN ou DCDN e o bucket do OSS pertencem a contas Alibaba Cloud diferentes. Esta opção também suporta cenários de mesma conta. É necessário fornecer o AccessKey ID e o AccessKey Secret da conta proprietária do bucket privado do OSS. Para obter mais informações, consulte Create an AccessKey.
NotaEscopo de acesso: Após ativar este recurso, o nome de domínio acelerado pode acessar todos os recursos em seu bucket privado de origem. Não é possível usar o CDN ou DCDN para restringir o acesso a recursos específicos dentro do bucket.
Conflitos de assinatura: Para evitar falhas na autenticação do OSS, garanta que uma solicitação de busca de origem não contenha assinaturas tanto no cabeçalho da solicitação quanto nos parâmetros da URL.
Conflitos de recursos: Este recurso entra em conflito com a configuração de página de índice padrão do recurso de hospedagem de site estático no OSS. Caso precise usar ambos os recursos simultaneamente, consulte the related documentation.
Recomendações de segurança
Ao ativar a busca de origem em um bucket privado, seus dados de origem ficam seguros. No entanto, os recursos armazenados em cache nos POPs do CDN são publicamente acessíveis por padrão. Para evitar roubo de tráfego, utilize recursos de segurança adicionais do CDN ou DCDN:
Configure a Referer blacklist or whitelist: Restrinja o acesso aos seus recursos do CDN a solicitações provenientes de sites específicos.
Configure URL signing: Defina uma assinatura dinâmica e um tempo de expiração para as URLs dos seus recursos para prevenir eficazmente downloads maliciosos.
Desativar busca de origem em bucket privado do OSS
Se não desejar mais que um nome de domínio acelerado acesse recursos em um bucket privado, acesse o console Resource Access Management (RAM) para revogar a autorização da função correspondente. Isso revoga as permissões que permitem ao CDNDCDN acessar o bucket privado do OSS.
-
Desative o recurso no console CDN.
Acesse o CDN console.
No painel de navegação à esquerda, clique em Domain Names.
Na página Domain Names, localize o nome de domínio que deseja gerenciar e clique em Manage na coluna Actions.
No painel de navegação à esquerda, clique em Origin Fetch.
Na seção Alibaba Cloud OSS Private Bucket Access, desative o interruptor Alibaba Cloud OSS Private Bucket Access.
-
Exclua permanentemente a autorização no console RAM.
Acesse o RAM console.
No painel de navegação à esquerda, escolha .
-
Na lista Role Name, clique na função AliyunCDNAccessingPrivateOSSRole.
Na página de detalhes da função, vá para a aba Permissions. Visualize a política de sistema autorizada, que possui a observação "An authorization policy for the role that allows CDN/DCDN to perform origin fetch from a private OSS bucket and grants read-only permissions to OSS". O escopo do recurso é Account Level. A coluna Actions fornece um link Revoke Authorization, e há um botão Delete Role no canto superior direito da página.
-
Remova todas as permissões da função AliyunCDNAccessingPrivateOSSRole.
Clique em Revoke Authorization para a política.
Na caixa de diálogo de confirmação exibida, clique em Revoke Authorization.
-
Retorne à página e exclua a função AliyunCDNAccessingPrivateOSSRole.
Localize a função AliyunCDNAccessingPrivateOSSRole e clique em Delete Role na coluna Actions.
Na caixa de diálogo de confirmação Delete Role, clique em Delete Role.
-
Retorne à página e exclua a política AliyunCDNAccessingPrivateOSSRolePolicy.
Localize a política AliyunCDNAccessingPrivateOSSRolePolicy e clique em Delete Policy na coluna Actions.
Na caixa de diálogo de confirmação Delete Policy, insira o nome da política e clique em Delete Policy.
FAQ
Como resolvo o erro This request is forbidden by kms. quando o CDN ou DCDN acessa recursos do OSS?
Se o seu bucket do OSS estiver criptografado com o Key Management Service (KMS), conceda à função AliyunCDNAccessingPrivateOSSRole a permissão para usar a chave KMS. Caso contrário, o CDN ou DCDN não conseguirá descriptografar e acessar os arquivos, resultando em um erro This request is forbidden by kms.. Para resolver esse problema, conceda as permissões necessárias do KMS à função.
Acesse o RAM console.
No painel de navegação à esquerda, escolha .
Na lista Role Name, localize e clique na função AliyunCDNAccessingPrivateOSSRole.
Clique em Add Authorization. O Principal é preenchido automaticamente.
Em Policies, selecione System Policies, pesquise e clique em AliyunKMSCryptoUserAccess para adicioná-lo à caixa Selected Policies.
Clique em Confirm New Authorization. Uma mensagem indica que a operação foi Completed.
Clique em Disable.
Use o recurso refresh and prefetch para limpar o cache. Após a conclusão da tarefa de atualização, tente acessar o recurso novamente.
Documentação relacionada
Best practices for using CDN to accelerate access to OSS resources