Este tópico descreve como usar credenciais de acesso temporário do Alibaba Cloud Security Token Service (STS) ou uma URL pré-assinada para acessar recursos do Object Storage Service (OSS) temporariamente.
É obrigatório definir um período de validade para as credenciais de acesso temporário do STS e para a URL pré-assinada. Caso você utilize credenciais de acesso temporário para gerar uma URL pré-assinada destinada a operações como upload ou download de arquivos, o menor período de validade prevalece. Por exemplo, se a validade das suas credenciais temporárias do STS for de 1200 segundos e a da URL pré-assinada for de 3600 segundos, não será possível usar essa URL para fazer upload de arquivos após 1200 segundos, pois as credenciais temporárias do STS já terão expirado.
Observações
Neste tópico, utiliza-se o endpoint público da região China (Hangzhou). Para acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para obter mais informações sobre regiões e endpoints do OSS, consulte Regiões e endpoints.
Este tópico demonstra a criação de uma instância OSSClient com um endpoint do OSS. Para configurações alternativas, como o uso de domínio personalizado ou autenticação com credenciais do Security Token Service (STS), consulte Inicialização (C SDK).
Usar o STS para autorizar acesso temporário
O OSS oferece suporte à autorização de acesso temporário por meio do Alibaba Cloud Security Token Service (STS). O STS é um serviço web que fornece tokens de acesso temporário para usuários de computação em nuvem. Com o STS, você pode emitir credenciais de acesso com permissões e período de validade personalizados para aplicativos de terceiros ou subusuários (usuários cujas identidades você gerencia). Para saber mais sobre o STS, consulte O que é o STS.
O STS oferece os seguintes benefícios:
Evita a exposição do seu par de AccessKey de longo prazo a aplicativos de terceiros. Em vez disso, gere um token de acesso e forneça-o ao aplicativo, personalizando suas permissões de acesso e período de validade.
Elimina a necessidade de gerenciar a revogação de permissões, pois o token de acesso torna-se inválido automaticamente ao expirar.
Para acessar o OSS usando credenciais de acesso temporário do STS, execute as etapas a seguir:
-
Obtenha as credenciais de acesso temporário
As credenciais de acesso temporário incluem um par de AccessKey temporário (AccessKey ID e AccessKey secret) e um token de segurança (SecurityToken). O período de validade dessas credenciais é especificado em segundos, com valor mínimo de 900. O valor máximo corresponde à duração máxima da sessão definida para a função RAM atual. Para mais detalhes, consulte Definir a duração máxima da sessão para uma função RAM.
Você pode obter as credenciais de acesso temporário das seguintes formas:
-
Método 1
Chame a operação AssumeRole para obter as credenciais de acesso temporário.
-
Método 2
Utilize os SDKs do STS para obter as credenciais de acesso temporário. Para mais informações, consulte SDKs do STS.
-
-
Use as credenciais do STS para criar uma solicitação assinada.
-
Usar uma URL pré-assinada para autorizar acesso temporário
Observações de uso
-
Ao utilizar um SDK do OSS para gerar uma URL pré-assinada, o cálculo da assinatura ocorre localmente com base nas chaves armazenadas no computador, usando um algoritmo específico. Essa assinatura é então adicionada à URL para garantir sua validade e segurança. Como todo o processo de construção da URL acontece no cliente, não é necessário enviar solicitações pela rede ao servidor nem conceder permissões específicas ao chamador durante a geração da URL. No entanto, para que usuários terceiros realizem operações nos recursos autorizados, o principal que chama as APIs para gerar a URL pré-assinada deve possuir as permissões correspondentes.
Por exemplo, se um principal deseja fazer upload de um objeto via URL pré-assinada, conceda a permissão oss:PutObject a ele. Caso o objetivo seja baixar ou visualizar o objeto, a permissão necessária é a oss:GetObject.
Gere uma URL pré-assinada e forneça-a a um visitante para permitir acesso temporário. Durante a geração, defina o período de validade da URL para limitar o tempo de acesso do visitante a dados específicos.
Para gerar uma URL pré-assinada destinada ao acesso de recursos via HTTPS, configure o protocolo do endpoint como HTTPS.
A URL pré-assinada gerada pelo código de exemplo abaixo pode conter um sinal de mais (
+). Nesse caso, substitua o sinal de mais (+) na URL por%2B. Caso contrário, a URL pré-assinada poderá não funcionar corretamente para acessar o objeto.