Cette rubrique explique comment utiliser des identifiants d'accès temporaires fournis par le service Security Token Service (STS) d'Alibaba Cloud ou une URL pré-signée pour accéder temporairement aux ressources Object Storage Service (OSS).
Vous devez spécifier une durée de validité pour les identifiants d'accès temporaires STS et pour les URL pré-signées. Si vous utilisez des identifiants d'accès temporaires pour générer une URL pré-signée destinée à des opérations telles que le téléchargement ou la récupération de fichiers, c'est la durée de validité la plus courte qui s'applique. Par exemple, si la validité de vos identifiants STS est de 1 200 secondes et celle de l'URL pré-signée de 3 600 secondes, vous ne pourrez pas utiliser l'URL pour télécharger des fichiers au-delà de 1 200 secondes, car les identifiants STS auront expiré.
Notes
Dans cette rubrique, nous utilisons le point de terminaison public de la région Chine (Hangzhou). Si vous souhaitez accéder à OSS depuis d'autres services Alibaba Cloud situés dans la même région, utilisez un point de terminaison interne. Pour plus d'informations sur les régions et les points de terminaison OSS, consultez Régions et points de terminaison.
Cette rubrique illustre la création d'une instance OSSClient avec un point de terminaison OSS. Pour d'autres configurations, comme l'utilisation d'un domaine personnalisé ou l'authentification via des identifiants du service Security Token Service (STS), reportez-vous à Initialisation (SDK C).
Utiliser STS pour autoriser un accès temporaire
OSS prend en charge l'autorisation d'accès temporaire via le service Security Token Service (STS) d'Alibaba Cloud. STS est un service web qui fournit des jetons d'accès temporaires aux utilisateurs du cloud computing. Avec STS, vous pouvez émettre des identifiants d'accès dotés d'une durée de validité et d'autorisations personnalisées à des applications tierces ou à des sous-utilisateurs (utilisateurs dont vous gérez les identités). Pour en savoir plus sur STS, consultez Présentation de STS.
STS offre les avantages suivants :
Vous n'avez pas besoin d'exposer votre paire de clés AccessKey à long terme à des applications tierces. Vous pouvez plutôt générer un jeton d'accès et le fournir à l'application. Vous avez la possibilité de personnaliser les autorisations d'accès ainsi que la durée de validité de ce jeton.
Aucune gestion de la révocation des autorisations n'est nécessaire. Le jeton d'accès devient automatiquement invalide à son expiration.
Pour accéder à OSS à l'aide d'identifiants d'accès temporaires provenant de STS, procédez comme suit :
-
Obtenir des identifiants d'accès temporaires
Les identifiants d'accès temporaires comprennent une paire de clés AccessKey temporaire (un ID de clé AccessKey et un secret AccessKey) ainsi qu'un jeton de sécurité (SecurityToken). La durée de validité de ces identifiants est exprimée en secondes. La valeur minimale est de 900. La valeur maximale correspond à la durée de session maximale définie pour le rôle RAM actuel. Pour plus d'informations, consultez Définir la durée de session maximale d'un rôle RAM.
Vous pouvez obtenir des identifiants d'accès temporaires de l'une des manières suivantes.
-
Méthode 1
Appelez l'opération AssumeRole pour obtenir des identifiants d'accès temporaires.
-
Méthode 2
Utilisez les SDK STS pour obtenir des identifiants d'accès temporaires. Pour plus d'informations, consultez SDK STS.
-
-
Utilisez les identifiants STS pour créer une requête signée.
-
Utiliser une URL pré-signée pour autoriser un accès temporaire
Remarques d'utilisation
-
Lorsque vous utilisez un SDK OSS pour générer une URL pré-signée, le SDK applique un algorithme spécifique basé sur les informations de clé stockées sur l'ordinateur local afin de calculer une signature et de l'ajouter à l'URL, garantissant ainsi sa validité et sa sécurité. Les opérations de calcul et de construction de l'URL sont effectuées côté client. Aucune requête réseau vers le serveur n'est nécessaire. Ainsi, vous n'avez pas besoin d'accorder d'autorisations spécifiques à l'appelant lors de la génération de l'URL pré-signée. Toutefois, pour permettre aux utilisateurs tiers d'effectuer les opérations concernées sur les ressources autorisées par l'URL pré-signée, vous devez vous assurer que l'entité appelant les API pour générer l'URL dispose des autorisations correspondantes.
Par exemple, si une entité souhaite télécharger un objet via une URL pré-signée, vous devez lui accorder l'autorisation oss:PutObject. Si une entité souhaite récupérer ou prévisualiser un objet via une URL pré-signée, vous devez lui accorder l'autorisation oss:GetObject.
Vous pouvez générer une URL pré-signée et la communiquer à un visiteur pour un accès temporaire. Lors de la génération, vous avez la possibilité de définir la durée de validité de l'URL afin de limiter la période pendant laquelle le visiteur peut accéder aux données spécifiées.
Pour générer une URL pré-signée permettant d'accéder aux ressources via HTTPS, configurez le protocole du point de terminaison sur HTTPS.
L'URL pré-signée générée à l'aide de l'exemple de code suivant peut contenir un signe plus (
+). Dans ce cas, remplacez le signe plus (+) présent dans l'URL par%2B. À défaut, l'URL pré-signée risque de ne pas permettre l'accès à l'objet comme prévu.